▪️k8s - 資源概要
2024-10-29
| 2025-3-19
字數 696閱讀時間 2 分鐘

概念


k8s 中,主要是藉由各個資源的操作,來管理叢集。
 
這些物件是 Kubernetes 的基本構建單元,通過這些物件,使用者可以定義和管理應用程式的部署、配置和運行狀態。
 
由以下三大類組合而成
  • group : 將相關 API 物件分組的命名空間
  • version : 標示 API 的版本號
    •  
可由兩種方式創建
 

資源類型 (Kind)


Pod

  • 最小的可部署單元,包含一個或多個容器。
  • 定義了容器的運行環境、資源需求和網絡配置。
  • 同一 pod 中的容器共享網路地址
  • Pod 會根據 Lifecycle 來操作
notion image

Service

  • 定義了一組 Pod 的穩定訪問地址。
  • 支持多種服務類型,如 ClusterIP、NodePort、LoadBalancer 和 ExternalName。

Deployment

  • 管理無狀態 Pod 的部署和擴展。
  • 支持滾動更新和回滾操作。
  • 會生成 ReplicaSet 來管理 Pod

ReplicaSet

  • 確保指定數量的 Pod 副本在任何時間點都在運行
  • 所以如果 Deployment 刪除 Pod,ReplicaSet 會重新建立 Pod

StatefulSet

  • 管理有狀態 Pod 的部署和擴展。
  • 確保 Pod 的穩定標識和持久存儲。

DaemonSet

  • 確保每個節點上都運行一個 Pod 副本。
  • 常用於運行集群級別的守護進程。

Job 和 CronJob

  • Job:管理一次性任務,確保任務成功完成。
  • CronJob:管理定時任務,按照預定的時間表運行 Job。

ConfigMap 和 Secret

  • ConfigMap:存儲非機密的配置數據。
  • Secret:存儲機密數據,如密碼、OAuth 令牌和 SSH 金鑰。

PersistentVolume (PV) 和 PersistentVolumeClaim (PVC)

  • PV:集群中的存儲資源。
  • PVC:用戶對存儲資源的請求。

Namespace

  • 用於將集群中的資源分組和隔離。
  • 支持多租戶環境。
 

資源分組 (Group)


  • core 群組:這是 Kubernetes 的核心 API 群組,通常不顯示群組名稱。包含 Pod、Service、ConfigMap 等基本資源。
  • apps 群組:包含 Deployment、StatefulSet、DaemonSet 等應用程式管理相關的資源。
  • batch 群組:包含 Job 和 CronJob 等批處理任務相關的資源。
  • networking.k8s.io 群組:包含 NetworkPolicy 和 Ingress 等網絡相關的資源。
 

資源版本 (Version)


  • v1:表示第一個穩定版本。
  • v1beta1v1beta2:表示 Beta 版本,功能較新但可能不穩定。
  • v1alpha1:表示 Alpha 版本,功能實驗性質較強,可能會有較大變動。
 
  • kubernetes
  • apply - 根據配置文件創建或更新資源api-versions - 列出所有可用API版本
    Loading...