iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0

今天來簡介一下 Kubernetes 的主要 Objects,以及一些使用場景會碰到的問題。

Pods

Pod 是 Kubernetes 中可部署的最小單位。Pod 包含一個或多個 Containers,它們共享網路、儲存、IP Address、Port 和 Volume(Shared Persistent Disks)。

Pod 的狀態

  • Running
  • Pending
  • Succeeded
  • Failed
  • Unknown

Deployments

Deployment 是用於部署和管理 Pods 的資源。Deployments 可以確保應用程式始終以最新版本運行。

ReplicaSets

ReplicaSet 確保為特定微服務版本運行特定數量的 Pod。即使其中一個 Pod 被殺死,ReplicaSet 也會啟動一個新的 Pod。

Services

Service 是用於公開 Pods 的資源。Services 可以將流量路由到 Pods,即使 Pods 在集群中移動或重新啟動。

Service 的類型

  • Cluster IP:將服務暴露在集群內部 IP 上。
  • LoadBalancer:使用雲提供商的負載均衡器將服務外部公開。
  • NodePort:以靜態端口(NodePort)將服務暴露在每個節點的 IP 上。

Ingress

Ingress 是 Kubernetes 中提供外部訪問服務的一種推薦方法。它提供了負載均衡和 SSL Termination,並允許您通過在 Ingress 資源上定義規則來控制流量。

使用 Ingress 公開微服務的方法如下:

  1. 為微服務創建 NodePort Service。
  2. 創建一個路由流量到 NodePort Service 的 Ingress 資源。
  3. 使用所需的規則配置 Ingress 資源。例如,您可以配置 Ingress 資源來終止 SSL 流量並將其路由到微服務。

配置 Ingress 後,您可以使用 Ingress IP 地址和端口從集群外部訪問微服務。

Container Registry

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 镜像並提高其安全性和可靠性。

GKE Scenarios

  • 場景 1:您想降低成本並優化您的 GKE 實施
    • 使用 Preemptible VMs
    • 選擇合適的 Region(每個 Region 的收費可能不同)
    • 使用 Commited-use discounts
    • 使用 E2 機器類型(E2 機器類型比 N1 機器類型更便宜)
    • 選擇合適的環境來滿足您的工作負載類型(如果需要,可以使用多個 Node Pools)
  • 場景 2:您想要一個高效、完全自動縮放的 GKE 解決方案
    • 為 Deployments 配置 HPA
    • 為 Node Pool 配置 Cluster AutoScaler
  • 場景 3:您想在 Kubernetes 集群中執行不受信任的第三方代碼
    • 創建一個使用 GKE Sandbox 的新 Node Pool。將不受信任的代碼部署到 Sandbox Node Pool。
  • 場景 4:您想僅在 Kubernetes 集群中的微服務部署之間啟用內部通信
    • 創建類型為 ClusterIP 的 Service。
  • 場景 5:Pod 處於 Pending
    • Pod 可能無法調度到節點(例如,資源不足)
  • 場景 6:Pod 處於 Waiting
    • Pod 可能無法 Pull Image

上一篇
Day 22:GKE Cluster
下一篇
Day 24:Block Storage
系列文
30天準備GCP Professional Cloud Architect30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言