前言

k8s的部署,见以下两篇文档

1. node节点删除

1.1 master上删除节点

如果删除node,先在master上删除该node
如果删除master,先删除所有node

# kubectl drain node_name  --delete-local-data --force --ignore-daemonsets
# kubectl delete node node_name

1.2 重置kubeadm

在要卸载的节点上重置kubeadm状态

# kubeadm reset

1.3 重置网络

以flannel为例,如果是calico,可以参照删除calico网络操作。

  • 关闭服务
# systemctl stop kubelet
# systemctl stop docker
  • 删除网络配置文件
# rm -rf /var/lib/cni/
# rm -rf /var/lib/kubelet/*
# rm -rf /etc/cni/
  • 关闭网卡
# ifconfig cni0 down
# ifconfig flannel.1 down
# ifconfig docker0 down
  • 删除网络
# ip link delete cni0
# ip link delete flannel.1
  • 重启docker和kubelet
# systemctl restart kubelet
# systemctl restart docker

2. node节点加入

如上,节点删除之后仍可以重新加入。

2.1 生成接入命令

【master上执行】

  • 方法一

该方法不推荐,仅让大家了解一下接入命令。

  1. 生成token

说明:
token默认24小时内有效,
因此master安装完毕生成的接入命令24小时之内有效,不需要重新生成

# kubeadm  token create
20yceg.rxfke6wayjovfn2v

查看token

# kubeadm  token list
  1. 生成ca的sha256 hash值
# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
26db3431a8e9676f9777d0f3d9e60c788664a9ad16f86b39ea9b6c2f02a024f3
  1. 拼接安装命令

将刚才的token和证书hash值拼接成接入node的命令

 kubeadm join 18.16.202.35:6443 --token 20yceg.rxfke6wayjovfn2v --discovery-token-ca-cert-hash sha256:26db3431a8e9676f9777d0f3d9e60c788664a9ad16f86b39ea9b6c2f02a024f3
  • 方法二

推荐,直接使用以下命令即可。

# kubeadm token create --print-join-command

2.2 接入node节点

【在要加入的node节点操作】

在node节点执行刚才master上生成的接入命令。

 kubeadm join 18.16.202.35:6443 --token 20yceg.rxfke6wayjovfn2v --discovery-token-ca-cert-hash sha256:26db3431a8e9676f9777d0f3d9e60c788664a9ad16f86b39ea9b6c2f02a024f3

3. FAQ

3.1 删除docker0

# yum -y install bridge-utils
# ifconfig docker0 down
# brctl delbr docker0

3.2

  • 报错
    /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
  • 解决

开启bridge模式

# modprobe br_netfilter
# echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐