今天來簡介一下 Kubernetes 的主要 Objects,以及一些使用場景會碰到的問題。
Pod 是 Kubernetes 中可部署的最小單位。Pod 包含一個或多個 Containers,它們共享網路、儲存、IP Address、Port 和 Volume(Shared Persistent Disks)。
Pod 的狀態
Deployment 是用於部署和管理 Pods 的資源。Deployments 可以確保應用程式始終以最新版本運行。
ReplicaSets
ReplicaSet 確保為特定微服務版本運行特定數量的 Pod。即使其中一個 Pod 被殺死,ReplicaSet 也會啟動一個新的 Pod。
Service 是用於公開 Pods 的資源。Services 可以將流量路由到 Pods,即使 Pods 在集群中移動或重新啟動。
Service 的類型
Ingress 是 Kubernetes 中提供外部訪問服務的一種推薦方法。它提供了負載均衡和 SSL Termination,並允許您通過在 Ingress 資源上定義規則來控制流量。
使用 Ingress 公開微服務的方法如下:
配置 Ingress 後,您可以使用 Ingress IP 地址和端口從集群外部訪問微服務。
Container Registry 是 Google Cloud Platform (GCP) 上的一項服務,可用於存儲和管理 Docker 镜像。它是一種完全託管的服務,因此您無需擔心設置或管理任何基礎設施。
可與 CI/CD 工具集成將 Docker Image push 到 registry 中。還可以使用 Container Registry 來保護您的 Docker 镜像,並掃描漏洞和實施部署策略。
Container Registry 的命名規則如下:
HostName/ProjectID/Image:Tag
例如,以下是一個 Docker 镜像的完整名稱:
gcr.io/projectname/helloword:v1
其中:
gcr.io
是 Container Registry 的 HostName。projectname
是 GCP 專案的 ID。helloword
是 Docker 镜像的名稱v1
是 Docker 镜像的標籤。Container Registry 是一個強大的工具,可用於管理您的 Docker 镜像並提高其安全性和可靠性。