k8s集群新增节点
查看目前现有节点的详细信息
kubectl get nodes -o wide
结果如下
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
cloud3 Ready <none> 86d v1.23.17 192.168.64.11 <none> Ubuntu 20.04.6 LTS 5.4.0-125-generic docker://20.10.14
cloud4 Ready <none> 86d v1.23.17 192.168.64.12 <none> Ubuntu 20.04.6 LTS 5.4.0-113-generic docker://23.0.1
cloud5 Ready worker 86d v1.23.17 192.168.64.13 <none> Ubuntu 20.04.6 LTS 5.4.0-177-generic docker://23.0.1
初始及安装操作
# 1、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 2、关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
# 3、关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
sed -i 's/.*swap.*/#&/' /etc/fstab
swapoff -a # 临时
# 4、开启路由转发
sysctl -w net.ipv4.ip_forward=1
# 关闭完swap后,一定要重启一下虚拟机!!!
# 根据规划设置主机名
hostnamectl set-hostname <hostname>
# 5、在master节点添加
cat >> /etc/hosts << EOF
192.168.64.11 cloud3
192.168.64.12 cloud4
192.168.64.13 cloud5
192.168.64.14 cloud6
EOF
# 6、配置转发相关参数,将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
sysctl --system # 生效
# 7、 安装 kubeadm、kubelet、kubectl
sudo apt-get install -y --allow-downgrades kubeadm=1.23.17-00 kubelet=1.23.17-00 kubectl=1.23.17-00
# 8、配置关闭 Docker 的 cgroups,修改 /etc/docker/daemon.json,加入以下内容
"exec-opts": ["native.cgroupdriver=systemd"]
# 重启 docker
systemctl daemon-reload
systemctl restart docker
# 9、加入 Kubernetes Node
sudo kubeadm join 192.168.64.11:6443 --token 019u5f.6ew30apogag0l4n4
--discovery-token-ca-cert-hash sha256:cd7bf6bc0b2f693a2322ba74bce55cc167f896617047ba78c21cb8f4121a957e
# token 可以通过如下命令获取或者重新申请
# 如果 token 已经过期,就重新申请
kubeadm token create
# token 没有过期可以通过如下命令获取
kubeadm token list
# 获取 --discovery-token-ca-cert-hash 值,得到值后需要在前面拼接上 sha256:
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'
安装k8s 抛出异常提示Unable to locate package kubectl
改为国内的镜像地址
执行
echo deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main | sudo tee /etc/apt/sources.list.d/kubernetes.list
执行:apt-get update
报错NO_PUBKEY B53DC80D13EDEF05
执行:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B53DC80D13EDEF05(这个值在报错信息里)
重新执行:apt-get update