差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:k3s [2025/11/26 11:41] – [NFS Subdir External Provisioner (動態佈建)] jonathan | tech:k3s [2026/03/06 11:22] (目前版本) – [7. 如何重啟 K3s cluster 主機] jonathan | ||
|---|---|---|---|
| 行 315: | 行 315: | ||
| kubectl get pvc app1-data-pvc -n default | kubectl get pvc app1-data-pvc -n default | ||
| - | # 查看 Pod 內的掛載情況 | + | # 查看 Pod-name |
| - | kubectl exec -it <pod-name> | + | kubectl get pods -n default | grep app1 |
| + | |||
| + | # 查看 Pod 內的掛載情況 | ||
| + | kubectl exec -it app1-584b58d766-qwrqk | ||
| # 測試寫入 | # 測試寫入 | ||
| - | kubectl exec -it <pod-name> | + | kubectl exec -it app1-584b58d766-qwrqk |
| # 在 NFS Server 上確認 | # 在 NFS Server 上確認 | ||
| - | # 檢查檔案是否出現在 192.168.1.159:/ | + | # 檢查檔案是否出現在 192.168.1.159:/ |
| </ | </ | ||
| 行 437: | 行 440: | ||
| </ | </ | ||
| + | === 2-1 如何建立給其他服務通用的 SSL 憑證 === | ||
| + | - 在 DNS 建立一筆萬用記錄, | ||
| + | - 沿用上面的 Cloudflare API Token Secret / ClusterIssuer | ||
| + | - 建立萬用字元憑證 Exp. *.k3s.ichiayi.com -> k3s-certificate.yaml <code yaml> | ||
| + | apiVersion: cert-manager.io/ | ||
| + | kind: Certificate | ||
| + | metadata: | ||
| + | name: wildcard-k3s-ichiayi-com | ||
| + | namespace: default | ||
| + | spec: | ||
| + | secretName: wildcard-k3s-ichiayi-com-tls | ||
| + | issuerRef: | ||
| + | name: letsencrypt-prod | ||
| + | kind: ClusterIssuer | ||
| + | commonName: " | ||
| + | dnsNames: | ||
| + | - " | ||
| + | </ | ||
| + | kubectl apply -f k3s-certificate.yaml | ||
| + | </ | ||
| + | ==== 3. 如何備份 Rancher Web UI ==== | ||
| + | * 參考 - https:// | ||
| + | - 透過 Web UI 的 App Chart 安裝 Rancher Backups \\ {{: | ||
| + | - 在選單新增的 Rancher Backups 選項點選 Buckups -> Create -> 選擇備份的目標 Exp. StorageClasses -> Edit YAML 設定每 8 小時備份一次 \\ {{: | ||
| + | |||
| + | ==== 4. 如何進行 Rancher Web UI 更新 ==== | ||
| + | - 更新 Helm Repository< | ||
| + | - 查看可用的版本< | ||
| + | - 備份當前配置< | ||
| + | - 執行更新< | ||
| + | helm upgrade rancher rancher-stable/ | ||
| + | --namespace cattle-system \ | ||
| + | --reuse-values | ||
| + | </ | ||
| + | - 驗證更新狀態< | ||
| + | kubectl -n cattle-system rollout status deploy/ | ||
| + | kubectl -n cattle-system get pods | ||
| + | </ | ||
| + | * 更新過程中 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> | ||