K8s 节点管理:查看、维护与集群删除操作

02-Node and Cluster

文章目录

学习参考:Node

查看节点

bash 复制代码
# 查看节点清单
root@master30:~# kubectl get nodes
NAME                    STATUS   ROLES           AGE   VERSION
master30.xiaoma.cloud   Ready    control-plane   21d   v1.30.2
worker31.xiaoma.cloud   Ready    <none>          21d   v1.30.2
worker32.xiaoma.cloud   Ready    <none>          21d   v1.30.2
# 查看特定节点详细信息
root@master30:~# kubectl describe node worker31.xiaoma.cloud

删除节点

以 worker31 节点为例。

bash 复制代码
# 设置节点为维护模式
root@master30:~# kubectl drain worker31.xiaoma.cloud --ignore-daemonsets
node/worker31.xiaoma.cloud cordoned
Warning: ignoring DaemonSet-managed Pods: kube-system/calico-node-v8jdn, kube-
system/kube-proxy-27vl2
evicting pod kube-system/calico-kube-controllers-7cb4fd5784-jx2xl
pod/calico-kube-controllers-7cb4fd5784-jx2xl evicted
node/worker31.xiaoma.cloud drained
root@master30:~# kubectl get nodes
NAME                  STATUS                     ROLES           AGE   VERSION
master30.xiaoma.cloud   Ready                      control-plane   41h   v1.30.2
worker31.xiaoma.cloud   Ready,SchedulingDisabled   <none>          41h   v1.30.2
worker32.xiaoma.cloud   Ready                      <none>          41h   v1.30.2
# 删除 worker31 节点
root@master30:~# kubectl delete node worker31.xiaoma.cloud
node"worker31.xiaoma.cloud" deleted
root@master30:~# kubectl get nodes
NAME                  STATUS   ROLES           AGE   VERSION
master30.xiaoma.cloud   Ready    control-plane   41h   v1.30.2
worker32.xiaoma.cloud   Ready    <none>          41h   v1.30.2
# 重置删除的 worker31 节点
root@worker31:~# kubeadm reset -f
[preflight] Running pre-flight checks
W1019 07:37:44.242023    7660 removeetcdmember.go:106] [reset] No kubeadm config,
using etcd pod spec to get data directory
[reset] Deleted contents of the etcd data directory: /var/lib/etcd
[reset] Stopping the kubelet service
[reset] Unmounting mounted directories in"/var/lib/kubelet"
[reset] Deleting contents of directories: [/etc/kubernetes/manifests
/var/lib/kubelet /etc/kubernetes/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]
The reset process does not clean CNI configuration. To do so, you must remove
/etc/cni/net.d
The reset process does not reset or clean up iptables rules or IPVS tables.
If you wish to reset iptables, you must do so manually by using the "iptables"
command.
If your cluster was setup to utilize IPVS, run ipvsadm --clear (or similar)
to reset your system's IPVS tables.
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.

删除集群

删除集群流程:

    1. 删除所有 node
    1. 删除所有 master
      具体步骤:
    1. 删除所有node节点
bash 复制代码
root@master30:~# kubectl drain worker31.xiaoma.cloud --ignore-daemonsets --force
root@master30:~# kubectl drain worker32.xiaoma.cloud --ignore-daemonsets --force
root@master30:~# kubectl delete node worker31.xiaoma.cloud worker32.xiaoma.cloud
# 重置节点,注意执行位置
root@worker31:~# kubeadm reset -f
root@worker32:~# kubeadm reset -f
    1. 删除master节点
bash 复制代码
# 删除集群前获取集群配置
root@master30:~# kubectl get cm kubeadm-config -n kube-system -o yaml >
kubeadm.yml
# 修改kubeadm.yml内容如下:
root@master30:~# 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.xiaoma.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: {}
root@master30:~# kubectl delete node master30.xiaoma.cloud
root@master30:~# kubeadm reset -f
root@master30:~# rm -fr .kube/

重建集群

bash 复制代码
# 初始化集群
root@master30:~# kubeadm init --config kubeadm.yml
# 也可以使用之前的命令
root@master30:~# kubeadm init --kubernetes-version=v1.30.2 --pod-network-
cidr=10.224.0.0/16 --image-repository hub.xiaoma.cloud/kubernetes
# 配置凭据
root@master30:~# mkdir -p $HOME/.kube
root@master30:~# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
root@master30:~# sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 配置网络
root@master30:~# kubectl apply -f calico.yaml
# 加入集群
root@worker31:~# kubeadm join 10.1.8.30:6443 --token ky95b9.sjg0fn21pdi1m0xz    -
-discovery-token-ca-cert-hash sha256xxxxxxx
相关推荐
闲云自留地1 天前
K8s 的记忆大脑!ETCD 集群部署、etcdctl 命令与备份恢复全通关
容器·kubernetes·etcd
weirong1 天前
Operator 上生产前补的 6 件事,和 5 件我明确不做的
kubernetes
孙克旭_1 天前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
java_logo2 天前
Docker 部署 EmulatorJS:轻松搭建浏览器复古游戏平台
游戏·docker·容器·复古游戏·轩辕镜像·emulatorjs·红白机
吴声子夜歌2 天前
Kubernetes权威指南——网络原理(一)
网络·容器·kubernetes
方便面不加香菜2 天前
Docker Container --容器及容器的操作案例详解
运维·docker·容器
无言听风雨丶2 天前
Kubernetes Service Mesh 与 mTLS 实战:从网络可达走向零信任服务通信
网络·kubernetes·service_mesh
weirong2 天前
跟原生 HPA 做对照压测:五轮里前四轮全废,最后一个结论也被我自己降级
kubernetes
无人生还别怕2 天前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
YYYing.3 天前
【K8s系列 (一) 】Docker与容器(上篇)
docker·云原生·容器·kubernetes