經過昨天的基礎設施整合,我們的數位牧場已經有了完整的網路架構!今天要施展 Custom Cluster 的魔法,透過 Rancher 的 Web 介面召喚出第一個工作叢集。這就像是在牧場中圍出新的牧區,讓更多的工作負載能夠在不同的節點上安全運行!
Custom Cluster 是 Rancher 的叢集建立方式之一,讓你可以:
在生產環境中,建議將節點角色分離:
# 檢查各節點的基本狀態
ssh calvin@192.168.0.234 # rancher-master-1
ssh calvin@192.168.0.238 # rancher-worker-1
# 在每個節點上檢查
sudo systemctl status docker
free -h
df -h
在所有節點上安裝基本工具:
# 在 rancher-master-1 和 rancher-worker-1 上執行
sudo apt update
sudo apt install -y vim dnsutils iptables
# 檢查 iptables 安裝
iptables --version
# 確認 DNS 解析
nslookup ithome-rancher.duckdns.org
重要提醒:iptables 是 RKE2 網路功能的必要組件!
# 開啟瀏覽器前往
https://ithome-rancher.duckdns.org
# 使用管理員帳號登入
ithome-dev
開發測試用叢集
重要設定:
為什麼選擇 Cilium?
點擊 「Create」 按鈕,Rancher 會生成節點註冊指令。
在 rancher-master-1 (192.168.0.234) 執行:
# SSH 到 rancher-master-1
ssh calvin@192.168.0.234
# 執行 Rancher 生成的 RKE2 安裝指令(範例)
curl -fL https://ithome-rancher.duckdns.org/system-agent-install.sh | sudo sh -s - \
--server https://ithome-rancher.duckdns.org \
--label 'cattle.io/os=linux' \
--token <your-cluster-token> \
--etcd --controlplane
在 rancher-worker-1 (192.168.0.238) 執行:
# SSH 到 rancher-worker-1
ssh calvin@192.168.0.238
# 執行 Rancher 生成的 RKE2 安裝指令(範例)
curl -fL https://ithome-rancher.duckdns.org/system-agent-install.sh | sudo sh -s - \
--server https://ithome-rancher.duckdns.org \
--label 'cattle.io/os=linux' \
--token <your-cluster-token> \
--worker
# 在各節點檢查 RKE2 服務狀態
sudo journalctl -xef -u rke2-server # Control Plane 節點
sudo journalctl -xef -u rke2-agent # Worker 節點
sudo journalctl -xef -u rancher-system-agent # 所有節點
# 檢查 rancher-system-agent 狀態
sudo systemctl status rancher-system-agent
ithome-dev
叢集# 在 MacBook 上編輯 kubeconfig
vim ~/.kube/config
# 按照 Kubernetes 標準格式加入新叢集配置
# 範例結構:
apiVersion: v1
kind: Config
clusters:
- cluster:
certificate-authority-data: <certificate-data>
server: https://ithome-rancher.duckdns.org/k8s/clusters/<cluster-id>
name: ithome-dev
contexts:
- context:
cluster: ithome-dev
user: ithome-dev
name: ithome-dev
current-context: ithome-dev
users:
- name: ithome-dev
user:
token: <your-token-here>
# 測試連線
kubectl get nodes -o wide
kubectl get pods -A
推薦工具:Lens Desktop 是優秀的 Kubernetes IDE
~/.kube/config
檔案ithome-dev
叢集硬體資源說明:
# 檢查網路連通性
ping ithome-rancher.duckdns.org
# 檢查 DNS 解析
nslookup ithome-rancher.duckdns.org
# 檢查 rancher-system-agent 狀態
sudo systemctl status rancher-system-agent
# 檢查 rancher-system-agent 日誌
sudo journalctl -u rancher-system-agent -f
# 檢查 RKE2 服務日誌
sudo journalctl -u rke2-server -f # Control Plane
sudo journalctl -u rke2-agent -f # Worker
# 在每個節點上執行清理指令
sudo rke2-killall.sh
sudo rm -rf /etc/rancher
sudo rm -rf /var/lib/rancher
# 停止 rancher-system-agent
sudo systemctl stop rancher-system-agent
sudo systemctl disable rancher-system-agent
今天我們成功施展了 Custom Cluster 魔法!透過 Rancher 的直覺化介面,輕鬆建立了第一個工作叢集,並將兩個節點以適當的角色分工加入其中。
重點回顧:
明天我們將整合第三方登入系統,學習如何串接 GitHub、GitLab 或 Azure AD 等企業級認證服務,提升 Rancher 的安全性和使用便利性!
💡 牧場主小提示:節點角色分離是生產環境的最佳實務!Control Plane 負責大腦功能,Worker 負責勞動工作,分工合作效率更高。記住 iptables 是必裝的,沒有它 RKE2 的網路功能會出問題!另外,如果叢集建立太慢,耐心等待是必要的,急不得!