創建計算資源

Kubernetes 需要一些機器去搭建管理 Kubernetes 的控制平臺, 也需要一些工作節點(work node)來運行容器。在這個實驗中你將會創建一些虛擬機,並利用 GCE Compute Zone 來運行安全且高可用的 Kubernetes 集群。

請確定默認 Compute Zone 和 Region 已按照 事前準備 的設定步驟完成。

網絡

Kubernetes 網絡模型 假設使用扁平網路能讓每個容器與節點都可以相互通信。 在這裏我們先忽略用於控制容器網絡隔離的 Network policies(Network Policies 不在本指南的範圍內)。

虛擬私有網絡(VPC)

本節將會創建一個專用的 Virtual Private Cloud (VPC) 網絡來搭建我們的 Kubernetes 集群。

首先創建一個名爲 kubernetes-the-hard-way 的 VPC 網絡:

gcloud compute networks create kubernetes-the-hard-way --subnet-mode custom

爲了給 Kubernetes 集群的每個節點分配私有 IP 地址,需要創建一個含有足夠大 IP 地址池的子網。 在 kubernetes-the-hard-way VPC 網絡中創建 kubernetes 子網:

gcloud compute networks subnets create kubernetes \
  --network kubernetes-the-hard-way \
  --range 10.240.0.0/24

10.240.0.0/24 IP 地址範圍, 可以分配 254 個計算節點。

防火牆規則

創建一個防火牆規則允許內部網路通過所有協議進行通信:

gcloud compute firewall-rules create kubernetes-the-hard-way-allow-internal \
  --allow tcp,udp,icmp \
  --network kubernetes-the-hard-way \
  --source-ranges 10.240.0.0/24,10.200.0.0/16

創建一個防火牆規則允許外部 SSH、ICMP 以及 HTTPS 等通信:

外部負載均衡器 被用來暴露 Kubernetes API Servers 給遠端客戶端。

列出在 kubernetes-the-hard-way VPC 網絡中的防火牆規則:

輸出爲

Kubernetes 公網 IP 地址

分配固定的 IP 地址, 被用來連接外部的負載平衡器至 Kubernetes API Servers:

驗證 kubernetes-the-hard-way 固定 IP 地址已經在默認的 Compute Region 中創建出來:

輸出爲

計算實例

本節將會創建基於 Ubuntu Server 20.04 的計算實例,原因是它對 containerd 容器引擎有很好的支持。每個虛擬機將會分配一個私有 IP 地址用以簡化 Kubernetes 的設置。

Kubernetes 控制節點

建立三個控制節點用以配置 Kubernetes 控制平面:

Kubernetes 工作節點

每臺 worker 節點都需要從 Kubernetes 集群 CIDR 範圍中分配一個 Pod 子網。 Pod 子網分配將會在之後的容器網路章節做練習。在 worker 節點內部可以通過 pod-cidr 元數據來獲得 Pod 子網的分配結果。

Kubernetes 集群 CIDR 的範圍可以通過 Controller Manager 的 --cluster-cidr 參數來設定。在本次教學中我們會設置爲 10.200.0.0/16,它支持 254 個子網。

創建三個計算節點用來作爲 Kubernetes Worker 節點:

驗證

列出所有在默認 Compute Zone 的計算節點:

輸出爲:

配置 SSH

本教程使用 SSH 來配置控制節點和工作節點。當通過 gcloud compute ssh 第一次連接計算實例時,會自動生成 SSH 證書,並保存在項目或者實例的元數據中

驗證 controller-0 的 SSH 訪問

因爲這是第一次訪問,此時會生成 SSH 證書。按照提示操作

此時,SSH 證書回保存在你的項目中:

SSH 證書更新後,你就可以登錄到 controller-0 實例中了:

執行 exit 命令退出 controller-0 實例

下一步:配置 CA 和創建 TLS 證書

Last updated