環(huán)境
centos 7.6
安裝前準(zhǔn)備
- 配置hostname
sudo hostnamectl set-hostname k8s-node156
- 配置ntp同步
#未安裝ntp
sudo hostnamectl set-hostname k8s-node156
#配置ntp服務(wù)器
ntpdate pool.ntp.org
#設(shè)置定時任務(wù)
echo '*/10 * * * * /usr/sbin/ntpdate pool.ntp.org' >>/var/spool/cron/root
- 關(guān)閉selinux,防火墻叛薯,swap
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
swapoff -a
echo "vm.swappiness=0" >> /etc/sysctl.conf
sysctl -pswapoff -a
- 修改內(nèi)核參數(shù)
yum install -y bridge-utils.x86_64
modprobe bridge
modprobe br_netfilter
echo "net.bridge.bridge-nf-call-iptables=1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables=1" >> /etc/sysctl.conf
sysctl -p
安裝docker , k8s
- 安裝docker 略過
- 安裝k8s馍乙,這里建議使用同其他節(jié)點(diǎn)同樣版本k8s+源
- 查看其他節(jié)點(diǎn)的k8s源
[root@k8s-master storage]# cat /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
- 配置新節(jié)點(diǎn)源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
- 查看其他機(jī)器上安裝的軟件包版本,并在新節(jié)點(diǎn)上安裝
[root@k8s-master storage]# yum list kubelet
已加載插件:fastestmirror, langpacks, priorities
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
* epel: hkg.mirror.rackspace.com
1 packages excluded due to repository priority protections
已安裝的軟件包
kubelet.x86_64 1.19.1-0 @kubernetes
可安裝的軟件包
kubelet.x86_64
[root@k8s-node156 ~]# yum -y install kubelet-1.19.1-0.x86_64
[root@k8s-node156 ~]# yum -y install kubeadm-1.19.1-0.x86_64
[root@k8s-node156 ~]# systemctl enable kubelet
- 加入集群
#在主節(jié)點(diǎn)上執(zhí)行以下命令梅垄,獲取加入集群命令
[root@k8s-master storage]# kubeadm token create --print-join-command --ttl 0
#然后將打印出來的命令在新節(jié)點(diǎn)上執(zhí)行即可
測試
[root@k8s-master storage]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 37d v1.19.1
k8s-node156 Ready <none> 3m7s v1.19.1
k8s-node213 Ready <none> 36d v1.19.1
k8s-node218 Ready <none> 36d v1.19.1
到這里我們集群節(jié)點(diǎn)就加成功啦,最后測試以下,新的pod會不會在新節(jié)點(diǎn)上跑
[root@k8s-master storage]# kubectl get pod -n midware -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mysql-0 1/1 Running 0 17h 10.34.0.13 k8s-node213 <none> <none>
mysql-1 1/1 Running 0 17h 10.44.0.13 k8s-node218 <none> <none>
mysql-2 1/1 Running 0 17h 10.44.0.16 k8s-node218 <none> <none>
nfs-common-nfs-client-provisioner-6d8c5c579b-fkpjw 1/1 Running 0 22h 10.44.0.11 k8s-node218 <none> <none>
[root@k8s-master storage]# kubectl delete pod -n midware mysql-2
pod "mysql-2" deleted
[root@k8s-master storage]# kubectl get pod -n midware -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mysql-0 1/1 Running 0 17h 10.34.0.13 k8s-node213 <none> <none>
mysql-1 1/1 Running 0 17h 10.44.0.13 k8s-node218 <none> <none>
mysql-2 0/1 Init:0/1 0 5s <none> k8s-node156 <none> <none>
nfs-common-nfs-client-provisioner-6d8c5c579b-fkpjw 1/1 Running 0 22h 10.44.0.11 k8s-node218 <none> <none>
[root@k8s-master storage]#