差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:k3s [2025/12/05 10:38] – 4. 如何進行 Rancher Web UI 更新 jonathan | tech:k3s [2026/03/06 11:22] (目前版本) – [7. 如何重啟 K3s cluster 主機] jonathan | ||
|---|---|---|---|
| 行 480: | 行 480: | ||
| * 更新過程中 Rancher UI 會暫時無法訪問 | * 更新過程中 Rancher UI 會暫時無法訪問 | ||
| + | ==== 5. 如何設定與取消 K3s 自動更新 ==== | ||
| + | === 設定 K3s 自動更新 === | ||
| + | - 安裝 System Upgrade Controller< | ||
| + | kubectl apply -f https:// | ||
| + | </ | ||
| + | - 建立自動升級計畫(監看 k3s 的 stable channel 版本自動升級)< | ||
| + | cat <<EOF | kubectl apply -f - | ||
| + | --- | ||
| + | # Server 升級計畫 | ||
| + | apiVersion: upgrade.cattle.io/ | ||
| + | kind: Plan | ||
| + | metadata: | ||
| + | name: server-plan | ||
| + | namespace: system-upgrade | ||
| + | spec: | ||
| + | concurrency: | ||
| + | cordon: true | ||
| + | nodeSelector: | ||
| + | matchExpressions: | ||
| + | - key: node-role.kubernetes.io/ | ||
| + | operator: In | ||
| + | values: | ||
| + | - " | ||
| + | serviceAccountName: | ||
| + | upgrade: | ||
| + | image: rancher/ | ||
| + | channel: https:// | ||
| + | drain: | ||
| + | force: false | ||
| + | ignoreDaemonSets: | ||
| + | deleteLocalData: | ||
| + | timeout: 300s # 5 分鐘超時 | ||
| + | --- | ||
| + | # Agent 升級計畫 | ||
| + | apiVersion: upgrade.cattle.io/ | ||
| + | kind: Plan | ||
| + | metadata: | ||
| + | name: agent-plan | ||
| + | namespace: system-upgrade | ||
| + | spec: | ||
| + | concurrency: | ||
| + | cordon: true | ||
| + | nodeSelector: | ||
| + | matchExpressions: | ||
| + | - key: node-role.kubernetes.io/ | ||
| + | operator: DoesNotExist | ||
| + | prepare: | ||
| + | args: | ||
| + | - prepare | ||
| + | - server-plan | ||
| + | image: rancher/ | ||
| + | serviceAccountName: | ||
| + | upgrade: | ||
| + | image: rancher/ | ||
| + | channel: https:// | ||
| + | drain: | ||
| + | force: false | ||
| + | ignoreDaemonSets: | ||
| + | deleteLocalData: | ||
| + | timeout: 300s | ||
| + | EOF | ||
| + | </ | ||
| + | - 查看升級進度< | ||
| + | # 查看升級計畫 | ||
| + | kubectl get plans -n system-upgrade | ||
| + | |||
| + | # 查看升級任務 | ||
| + | kubectl get jobs -n system-upgrade | ||
| + | |||
| + | # 查看節點狀態 | ||
| + | watch kubectl get nodes | ||
| + | </ | ||
| + | * ++看執行命令的輸出結果|< | ||
| + | jonathan@k3s-master-171: | ||
| + | NAME IMAGE | ||
| + | agent-plan | ||
| + | server-plan | ||
| + | jonathan@k3s-master-171: | ||
| + | NAME STATUS | ||
| + | apply-agent-plan-on-k3s-worker-173-with-776e91b05dc4d9c78-42442 | ||
| + | apply-server-plan-on-k3s-master-171-with-776e91b05dc4d9c7-b57b4 | ||
| + | jonathan@k3s-master-171: | ||
| + | NAME STATUS | ||
| + | apply-agent-plan-on-k3s-worker-172-with-776e91b05dc4d9c78-0fa71 | ||
| + | apply-agent-plan-on-k3s-worker-173-with-776e91b05dc4d9c78-42442 | ||
| + | apply-server-plan-on-k3s-master-171-with-776e91b05dc4d9c7-b57b4 | ||
| + | jonathan@k3s-master-171: | ||
| + | NAME STATUS | ||
| + | apply-agent-plan-on-k3s-worker-172-with-776e91b05dc4d9c78-0fa71 | ||
| + | apply-agent-plan-on-k3s-worker-173-with-776e91b05dc4d9c78-42442 | ||
| + | apply-server-plan-on-k3s-master-171-with-776e91b05dc4d9c7-b57b4 | ||
| + | </ | ||
| + | * ++看 Rancher Cluster Nodes 的畫面|{{: | ||
| + | |||
| + | === 取消 K3s 自動更新 === | ||
| + | - 刪除 Plan(停止所有自動升級)< | ||
| + | - 修改為固定版本 Exp. v1.33.6+k3s1(不再自動追蹤新版本)< | ||
| + | - 刪除整個 controller(完全停用)< | ||
| + | |||
| + | ==== 6. 如何設定 K3s 自動更新結果透過 Discord 通知 ==== | ||
| + | - 取得 Discord Webhook URL Exp. https:// | ||
| + | - 修改配置並部署< | ||
| + | # 下載 k3s-discord-notifier.yaml | ||
| + | curl -o k3s-discord-notifier.yaml https:// | ||
| + | |||
| + | # 替換你的 Discord Webhook URL Exp. https:// | ||
| + | sed -i ' | ||
| + | |||
| + | # 修改叢集名稱(可選) Exp. ichiayi K3s | ||
| + | sed -i ' | ||
| + | |||
| + | # 部署 Discord 通知 | ||
| + | kubectl apply -f k3s-discord-notifier.yaml | ||
| + | </ | ||
| + | - 驗證部署< | ||
| + | # 檢查 notifier 是否運行 | ||
| + | kubectl get deployment -n system-upgrade k3s-upgrade-notifier | ||
| + | |||
| + | # 查看日誌 | ||
| + | kubectl logs -n system-upgrade -l app=k3s-upgrade-notifier -f | ||
| + | |||
| + | # 測試 Discord 升級成功通知 | ||
| + | cat <<EOF | kubectl apply -f - | ||
| + | apiVersion: batch/v1 | ||
| + | kind: Job | ||
| + | metadata: | ||
| + | name: test-notify-success | ||
| + | namespace: system-upgrade | ||
| + | labels: | ||
| + | upgrade.cattle.io/ | ||
| + | upgrade.cattle.io/ | ||
| + | spec: | ||
| + | template: | ||
| + | metadata: | ||
| + | labels: | ||
| + | upgrade.cattle.io/ | ||
| + | spec: | ||
| + | containers: | ||
| + | - name: test | ||
| + | image: busybox | ||
| + | command: [" | ||
| + | restartPolicy: | ||
| + | backoffLimit: | ||
| + | EOF | ||
| + | |||
| + | # 測試 Discord 升級失敗通知 | ||
| + | cat <<EOF | kubectl apply -f - | ||
| + | apiVersion: batch/v1 | ||
| + | kind: Job | ||
| + | metadata: | ||
| + | name: test-notify-fail | ||
| + | namespace: system-upgrade | ||
| + | labels: | ||
| + | upgrade.cattle.io/ | ||
| + | upgrade.cattle.io/ | ||
| + | spec: | ||
| + | template: | ||
| + | metadata: | ||
| + | labels: | ||
| + | upgrade.cattle.io/ | ||
| + | spec: | ||
| + | containers: | ||
| + | - name: test | ||
| + | image: busybox | ||
| + | command: [" | ||
| + | restartPolicy: | ||
| + | backoffLimit: | ||
| + | EOF | ||
| + | |||
| + | |||
| + | 清理測試 Job | ||
| + | # 刪除測試 Job | ||
| + | kubectl delete job test-notify-success test-notify-fail -n system-upgrade | ||
| + | </ | ||
| + | * Discord 頻道應該可以看到這樣的測試通知訊息 \\ {{: | ||
| + | |||
| + | ==== 7. 如何確認目前K3s 穩定版最新的版本 ==== | ||
| + | * < | ||
| + | <a href=" | ||
| + | </ | ||
| + | * 穩定版 : **v1.34.5+k3s1** | ||
| + | |||
| + | ==== 8. 如何重啟 K3s cluster 主機 ==== | ||
| + | * 原則 : 先重啟 Server 完成恢復服務後, | ||
| + | * 可參考執行 [[tech/ | ||
| {{tag> | {{tag> | ||