
Node and Cluster學(xué)習(xí)參考Node查看節(jié)點# 查看集群所有節(jié)點清單輸出列NAME 節(jié)點名、STATUS 狀態(tài)、ROLES 角色control-plane 為控制面、AGE 運行時長、VERSION 版本rootmaster30:~# kubectl get nodesNAME STATUS ROLES AGE VERSION master30.laoma.cloud Ready control-plane 21d v1.30.2 worker31.laoma.cloud Readynone21d v1.30.2 worker32.laoma.cloud Readynone21d v1.30.2# 查看特定節(jié)點詳細信息describe 輸出資源詳情node 指定節(jié)點名 worker31.laoma.cloudrootmaster30:~# kubectl describe node worker31.laoma.cloud刪除節(jié)點以 worker31 節(jié)點為例。# 設(shè)置節(jié)點為維護模式排空drain 標記節(jié)點不可調(diào)度并驅(qū)逐其上的 Pod--ignore-daemonsets 忽略 DaemonSet 管理的 Podcalico-node、kube-proxy 等不參與驅(qū)逐rootmaster30:~# kubectl drain worker31.laoma.cloud --ignore-daemonsetsnode/worker31.laoma.cloud cordoned# 已對節(jié)點執(zhí)行封鎖cordon新 Pod 不再調(diào)度到該節(jié)點Warning: ignoring DaemonSet-managed Pods: kube-system/calico-node-v8jdn, kube-system/kube-proxy-27vl2# 警告DaemonSet 管理的 Pod 被忽略、不驅(qū)逐evicting pod kube-system/calico-kube-controllers-7cb4fd5784-jx2xl# 正在驅(qū)逐普通控制器創(chuàng)建的 Podpod/calico-kube-controllers-7cb4fd5784-jx2xl evicted# 該 Pod 已被驅(qū)逐node/worker31.laoma.cloud drained# 節(jié)點已排空完成可安全下線# 再次查看節(jié)點確認 worker31 已禁用調(diào)度rootmaster30:~# kubectl get nodesNAME STATUS ROLES AGE VERSION master30.laoma.cloud Ready control-plane 41h v1.30.2 worker31.laoma.cloud Ready,SchedulingDisablednone41h v1.30.2 worker32.laoma.cloud Readynone41h v1.30.2# worker31 的 STATUS 變?yōu)?Ready,SchedulingDisabled就緒但已關(guān)閉調(diào)度# 刪除 worker31 節(jié)點delete node 將該節(jié)點對象從集群中移除rootmaster30:~# kubectl delete node worker31.laoma.cloudnodeworker31.laoma.clouddeleted# 節(jié)點對象已刪除# 刪除后再次查看節(jié)點列表rootmaster30:~# kubectl get nodesNAME STATUS ROLES AGE VERSION master30.laoma.cloud Ready control-plane 41h v1.30.2 worker32.laoma.cloud Readynone41h v1.30.2# 列表中已無 worker31# 在被刪除的 worker31 節(jié)點上重置本機 kubeadm 配置reset 還原 kubeadm 所做的操作-f 強制重置、不交互確認rootworker31:~# kubeadm reset -f[preflight]Running pre-flight checks# 執(zhí)行重置前檢查W1019 07:37:44.2420237660removeetcdmember.go:106][reset]No kubeadm config, using etcd pod spec to get data directory# 警告未找到 kubeadm 配置按 etcd Pod 模板推斷數(shù)據(jù)目錄[reset]Deleted contents of the etcd data directory: /var/lib/etcd# 已刪除 etcd 數(shù)據(jù)目錄[reset]Stopping the kubeletservice# 已停止 kubelet 服務(wù)[reset]Unmounting mounted directoriesin/var/lib/kubelet# 已卸載 kubelet 相關(guān)掛載目錄[reset]Deleting contents of directories:[/etc/kubernetes/manifests /var/lib/kubelet /etc/kubernetes/pki]# 已刪除靜態(tài) Pod 清單、kubelet 目錄、pki 證書目錄[reset]Deleting files:[/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf]# 已刪除各組件的 kubeconfig 文件The reset process does not clean CNI configuration. Todoso, you must remove /etc/cni/net.d# 提示reset 不會清理 CNI 網(wǎng)絡(luò)配置需手動刪除 /etc/cni/net.dThe reset process does not reset or clean up iptables rules or IPVS tables. If you wish to reset iptables, you mustdoso manually by using theiptablescommand.# 提示reset 不會重置 iptables/IPVS 規(guī)則需手動使用 iptables 命令重置If your cluster was setup to utilize IPVS, run ipvsadm--clear(or similar)to reset your systems IPVS tables.# 提示若集群使用了 IPVS需執(zhí)行 ipvsadm --clear 清空 IPVS 表The reset process does not clean your kubeconfig files and you must remove them manually. Please, check the contents of the$HOME/.kube/config file.# 提示reset 不會清理 kubeconfig需手動刪除 $HOME/.kube/config刪除集群刪除集群流程刪除所有 node刪除所有 master具體步驟刪除所有node節(jié)點# 排空兩臺 worker 節(jié)點drain 驅(qū)逐節(jié)點上的 Pod--ignore-daemonsets 忽略 DaemonSet Pod--force 強制驅(qū)逐無控制器管理的裸 Podrootmaster30:~# kubectl drain worker31.laoma.cloud --ignore-daemonsets --forcerootmaster30:~# kubectl drain worker32.laoma.cloud --ignore-daemonsets --force# 從集群刪除兩臺 worker 節(jié)點delete node 可一次跟多個節(jié)點名rootmaster30:~# kubectl delete node worker31.laoma.cloud worker32.laoma.cloud# 重置節(jié)點注意執(zhí)行位置需分別登錄各 worker 本機執(zhí)行reset 還原 kubeadm 配置-f 強制重置不確認rootworker31:~# kubeadm reset -frootworker32:~# kubeadm reset -f刪除master節(jié)點# 刪除集群前獲取集群配置get cm 讀取 kube-system 命名空間的 kubeadm-config-n 指定命名空間-o yaml 以 YAML 輸出 重定向保存到 kubeadm.ymlrootmaster30:~# kubectl get cm kubeadm-config -n kube-system -o yaml kubeadm.yml# 修改kubeadm.yml內(nèi)容如下rootmaster30:~# vim kubeadm.yml# 先刪除22-28行后刪除1-3行效果如下apiServer: timeoutForControlPlane: 4m0s apiVersion: kubeadm.k8s.io/v1beta3 certificatesDir: /etc/kubernetes/pki clusterName: kubernetes controllerManager:{}dns:{}etcd: local: dataDir: /var/lib/etcd imageRepository: hub.laoma.cloud/kubernetes kind: ClusterConfiguration kubernetesVersion: v1.30.2 networking: dnsDomain: cluster.local podSubnet:10.224.0.0/16 serviceSubnet:10.96.0.0/12 scheduler:{}# 刪除 master 節(jié)點對象delete node 將 master30 從集群移除rootmaster30:~# kubectl delete node master30.laoma.cloud# 在 master 本機重置 kubeadm 配置reset -f 強制還原、不確認rootmaster30:~# kubeadm reset -f# 刪除 root 下的 kubeconfig 目錄 .kuberm -fr 強制遞歸刪除-r 遞歸、-f 不提示rootmaster30:~# rm -fr .kube/重建集群# 初始化集群使用配置文件方式kubeadm init 初始化控制面--config 指定 kubeadm.yml 配置文件rootmaster30:~# kubeadm init --config kubeadm.yml# 也可以使用之前的命令不用配置文件、直接帶參數(shù)初始化--kubernetes-version 指定 K8s 版本--pod-network-cidr 指定 Pod 網(wǎng)段--image-repository 指定私有鏡像倉庫rootmaster30:~# kubeadm init --kubernetes-versionv1.30.2 --pod-network-cidr10.224.0.0/16 --image-repository hub.laoma.cloud/kubernetes# 配置憑據(jù)創(chuàng)建 .kube 目錄mkdir -p 遞歸創(chuàng)建目錄、父目錄不存在時一并創(chuàng)建rootmaster30:~# mkdir -p $HOME/.kube# 復(fù)制集群管理員憑據(jù)到 .kube/configcp -i 覆蓋時提示確認源文件為 admin.confrootmaster30:~# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config# 將 config 文件屬主改為當前用戶chown 修改屬主$(id -u):$(id -g) 取當前用戶 UID:GIDrootmaster30:~# sudo chown $(id -u):$(id -g) $HOME/.kube/config# 配置網(wǎng)絡(luò)安裝 Calico 網(wǎng)絡(luò)插件kubectl apply -f 應(yīng)用清單文件 calico.yamlrootmaster30:~# kubectl apply -f calico.yaml# 加入集群worker31 加入join 連接控制面 10.1.8.30:6443--token 指定引導(dǎo)令牌--discovery-token-ca-cert-hash 校驗控制面 CA 證書哈希rootworker31:~# kubeadm join 10.1.8.30:6443 --token ky95b9.sjg0fn21pdi1m0xz --discovery-token-ca-cert-hash sha256xxxxxxx# worker32 加入集群命令同上rootworker32:~# kubeadm join 10.1.8.30:6443 --token ky95b9.sjg0fn21pdi1m0xz --discovery-token-ca-cert-hash sha256xxxxxxx