在安装master,修改kube-config.yaml文件添加
#配置文件信息
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: "192.168.100.100:6444"
controllerManager: {}
导入keepalived-k8s和haproxy-k8s镜像
docker pull registry.cn-hangzhou.aliyuncs.com/shitou-aliyun/haproxy-k8s
docker pull registry.cn-hangzhou.aliyuncs.com/shitou-aliyun/haproxy-k8s
下载配置包
https://github.com/wise2c-devops/haproxy-k8s.git
https://github.com/wise2c-devops/keepalived-k8s.git
修改配置文件
vim haproxy.cfg
#配置文件信息....
backend be_k8s_6443
mode tcp
timeout queue 1h
timeout server 1h
timeout connect 1h
log global
balance roundrobin
server rancher01 192.168.100.10:6443
server rancher02 192.168.100.1:6443
vim start-haproxy.sh
#!/bin/bash
MasterIP1=192.168.100.10
MasterIP2=192.168.100.1
MasterPort=6443
docker run -d --restart=always --name HAProxy-K8S -p 6444:6444 \
-e MasterIP1=$MasterIP1 \
-e MasterIP2=$MasterIP2 \
-e MasterIP3=$MasterIP3 \
-e MasterPort=$MasterPort \
-v /home/edjackson/kubernetes/good_master/data/lb/etc/haproxy.cfg \
wise2c/haproxy-k8s
vim start-keepalived.sh
#!/bin/bash
VIRTUAL_IP=192.168.100.100
INTERFACE=vboxnet0
NETMASK_BIT=24
CHECK_PORT=6444
RID=10
VRID=160
MCAST_GROUP=224.0.0.18
docker run -itd --restart=always --name=Keepalived-K8S \
--net=host --cap-add=NET_ADMIN \
-e VIRTUAL_IP=$VIRTUAL_IP \
-e INTERFACE=$INTERFACE \
-e CHECK_PORT=$CHECK_PORT \
-e RID=$RID \
-e VRID=$VRID \
-e NETMASK_BIT=$NETMASK_BIT \
-e MCAST_GROUP=$MCAST_GROUP \
wise2c/keepalived-k8s
启动执行
./start-haproxy.sh
./start-keepalived.sh
启动后查看网口是否挂载浮动地址
ip addr
安装master
kubeadm init --config=kubernetes-config.yaml --experimental-upload-certs | tee kubeadm-init.log
安装成功后按照上述步骤安装另一台master主机,先安装haproxy和keepalived。在执行安装master时输入
kubeadm join 192.168.100.100:6444 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:4c3342da96a073e77fe4be9087f600518dd14bda91065021dcb76d94a2c5f654 --control-plane --certificate-key 3795ff83ce3e28aff0ae012c20eefb4ed003218ad3f8be7cd4dd58ccb798c527
直接添加master节点,添加成功后创建,kube/config并赋权,如果没有/etc/kubenternetes/admin.conf文件时可以在master主节点上拷贝一个即可
如果在主master重启之后想要加入master从节点,找不到join信息可以通过以下命令查找拼接即可
kubeadm token create --print-join-command
kubeadm init phase upload-certs --experimental-upload-certs
添加成功后kubectl get nodes 可以看到添加的master节点信息此时将.kube/config中的地址修改为本机地址。