這是我在 2021 年使用 RKE1 與 Kubernetes 1.20.11 的部署筆記。RKE1 已於 2025 年 7 月 31 日結束支援;新建叢集請參考目前的 RKE2 文件。支援期限見 Rancher 公告。
當時為什麼選擇 RKE1
RKE1 讓我透過一份設定集中管理 cluster 元件。當時的機器混用 Ubuntu 20.04.3 LTS 與 CentOS 7,升級較難協調;RKE1 將 Kubernetes 元件以 Docker 容器執行,能減少部分環境差異。它也透過 SSH 設定各節點,因此不必手動在 control plane 逐一加入 worker。
以下是精簡的 RKE cluster.yml 範例:
nodes:
- address: 192.168.1.109
user: node
role: [controlplane, etcd, worker]
- address: 192.168.1.105
user: node
role: [worker]
labels:
app: ingress
cluster_name: mycluster
kubernetes_version: "v1.20.11-rancher1-2"
ingress:
provider: nginx
network_mode: hostPort
http_port: 8888
https_port: 9999
node_selector:
app: ingress
在此範例中,192.168.1.109 同時提供 control plane、etcd 與 worker;192.168.1.105 是 worker,並承載 Ingress。
建立叢集
下載與環境相符的 RKE binary,將 cluster.yml 放在相同目錄,然後執行:
./rke up
RKE 會產生 kube_config_cluster.yml。將它放到 kubectl 預設位置,或透過 --kubeconfig 明確指定:
cp kube_config_cluster.yml ~/.kube/config
kubectl get node
所有節點顯示 Ready 後,叢集即可使用。實務上應固定 RKE、Kubernetes 與 Docker 版本,並在升級前先備份 etcd 與測試相容性。
