注意:该K8S多节点部署是在以上一篇技术文档《简单易懂的Kubernetes(K8S)单节点二进制部署详细步骤》全部部署完成的前提下进行的。
------先具备单master节点部署环境------
-----master02部署-----
1、关闭防火墙和selinux服务
[root@master2 ~]# systemctl stop firewalld.service
[root@master2 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@master2 ~]# setenforce 0
[root@master2 ~]# iptables -F
-----在master01上操作-----
1、复制kubernetes目录到master02
[root@master1 ~]# scp -r /opt/kubernetes/ root@192.168.200.20:/opt
2、复制master中的三个组件启动脚本kube-apiserver.service 、 kube-controller-manager.service 、kube-scheduler.service
[root@master1 ~]# scp /usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service root@192.168.200.20:/usr/lib/systemd/system/
3、拷贝master01上已有的etcd证书给master02使用(特别注意:master02一定要有etcd证书)
[root@master1 ~]# scp -r /opt/etcd/ root@192.168.200.20:/opt/
-----master02上操作-----
1、修改配置文件kube-apiserver中的IP
[root@master2 ~]# cd /opt/kubernetes/cfg/
[root@master2 cfg]# vim kube-apiserver
KUBE_APISERVER_OPTS="--logtostderr=true \
--v=4 \
--bind-address=192.168.200.20 \ #修改为master2的IP
--secure-port=6443 \
--advertise-address=192.168.200.20 \ #修改为master2的IP
--allow-privileged=true \
--service-cluster-ip-range=10.0.0.0/24 \
--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,NodeRestriction \
--authorization-mode=RBAC,Node \
--kubelet-https=true \
--enable-bootstrap-token-auth \
--token-auth-file=/opt/kubernetes/cfg/token.csv \
--service-node-port-range=30000-50000 \
--tls-cert-file=/opt/kubernetes/ssl/server.pem \
--tls-private-key-file=/opt/kubernetes/ssl/server-key.pem \
--client-ca-file=/opt/kubernetes/ssl/ca.pem \
--service-account-key-file=/opt/kubernetes/ssl/ca-key.pem \
--etcd-cafile=/opt/etcd/ssl/ca.pem \
--etcd-certfile=/opt/etcd/ssl/server.pem \
--etcd-keyfile=/opt/etcd/ssl/server-key.pem"
2、启动master02中的三个组件服务
[root@master2 cfg]# systemctl start kube-apiserver.service
[root@master2 cfg]# systemctl start kube-controller-manager.service
[root@master2 cfg]# systemctl start kube-scheduler.service
3、增加环境变量
[root@master2 cfg]# vim /etc/profile
#末尾添加
export PATH=$PATH:/opt/kubernetes/bin/
[root@master2 cfg]# source /etc/profile
[root@master2 cfg]# kubectl get node
NAME STATUS ROLES AGE VERSION
192.168.200.40 Ready <none> 21h v1.12.3
192.168.200.60 Ready <none> 20h v1.12.3