cloud

部署 Rancher Kubernetes Engine

使用 Rancher Kubernetes Engine,以 Docker 元件建立可設定的 Kubernetes 叢集。

English繁中
部署 Rancher Kubernetes Engine

這是我在 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 與測試相容性。