文章目錄
備註:首先在原先的apisever證書設置中要預先加入想要新增的master節點IP,這樣就不需要再重新申請證書
一定要把networkmanager關掉
kubeconfig
kubelet 提交證書請求給master——apiserver——記錄到etcd
proxy 網絡代理、負載均衡
部署多節點master的k8s集羣需要先具備單master節點的部署環境
一:k8s單節點集羣加入master節點
1.1優先關閉防火牆(或者開啓所需端口)和selinux服務
[root@localhost ~]# setenforce 0
[root@localhost ~]# hostnamectl set-hostname master2
[root@localhost ~]# su
[root@master2 ~]# systemctl stop NetworkManager
[root@master2 ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[root@master2 ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
[root@master2 ~]# iptables -F
[root@master2 ~]#
1.2 從master1上覆制工作目錄到master2
備註:master2也要有etcd的證書
[root@master1 ~]# scp -r /k8s [email protected]:/k8s
[root@master2 k8s]# ls
bin cfg etcd ssl
1.3 複製啓動腳本
[root@master1 ~]# scp /usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service [email protected]:/usr/lib/systemd/system/
[email protected]'s password:
kube-apiserver.service 100% 260 102.1KB/s 00:00
kube-controller-manager.service 100% 295 46.0KB/s 00:00
kube-scheduler.service 100% 259 88.8KB/s 00:00
1.4 修改關於apiserver的IP地址,從master1指向master2
[root@master1 cfg]# ls
kube-apiserver kube-controller-manager kube-scheduler token.csv
[root@master2 cfg]# vim kube-apiserver
--bind-address=192.168.247.148 \
--advertise-address=192.168.247.148 \
[root@master2 cfg]# vim kube-controller-manager
[root@master2 cfg]# vim kube-scheduler
1.5 開啓apiserver
[root@master2 cfg]# systemctl start kube-apiserver.service
[root@master2 cfg]# systemctl status kube-apiserver.service
● kube-apiserver.service - Kubernetes API Server
Loaded: loaded (/usr/lib/systemd/system/kube-apiserver.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2020-05-02 17:26:30 CST; 4s ago
Docs: https://github.com/kubernetes/kubernetes
Main PID: 21187 (kube-apiserver)
[root@master2 cfg]# systemctl enable kube-apiserver.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-apiserver.service to /usr/lib/systemd/system/kube-apiserver.service.
1.6 開啓scheduler
[root@master2 cfg]# systemctl start kube-scheduler.service
[root@master2 cfg]# systemctl enable kube-scheduler.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-scheduler.service to /usr/lib/systemd/system/kube-scheduler.service.
[root@master2 cfg]# systemctl status kube-scheduler.service
● kube-scheduler.service - Kubernetes Scheduler
Loaded: loaded (/usr/lib/systemd/system/kube-scheduler.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-05-02 17:27:32 CST; 12s ago
1.7 開啓controllet-manager
[root@master2 cfg]# systemctl start kube-controller-manager.service
[root@master2 cfg]# systemctl enable kube-controller-manager.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-controller-manager.service to /usr/lib/systemd/system/kube-controller-manager.service.
[root@master2 cfg]# systemctl status kube-controller-manager.service
● kube-controller-manager.service - Kubernetes Controller Manager
Loaded: loaded (/usr/lib/systemd/system/kube-controller-manager.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-05-02 17:28:32 CST; 12s ago
1.8 添加環境變量
[root@master2 cfg]# echo "PATH=$PATH:/k8s/bin/" >> /etc/profile
[root@master2 cfg]# source /etc/profile
[root@master2 cfg]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/k8s/bin/
1.9 驗證
[root@master2 cfg]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
192.168.247.143 Ready <none> 2d5h v1.12.3
192.168.247.144 Ready <none> 2d5h v1.12.3
此時多節點master搭建完畢