【Kubernetes】二进制部署k8s集群(下)之多master节点负载均衡以及高可用

!!!接着之前两篇的部署!!!

目录

一.在所有node节点上部署coreDNS

1.在所有 node 节点上操作

2.在 master01 节点上操作

二.完成master02节点的初始化操作

三.在master01节点基础上,完成master02节点部署

1.在master01 节点操作

2.在master02 节点操作

四.部署nginx做负载均衡器

1.在01 节点上操作

2.在02 节点上操作

五.部署keepalived服务做k8s集群负载均衡器高可用

1.在01 节点上操作

2.在02 节点上操作

3.在01 节点上操作

4.在02 节点上操作

5.在01 节点上操作

六.修改node节点上的配置引导文件中的server对应的ip为VIP

1.node01 和node02 相同操作

2.去01 节点查看

七.所有的master节点的集群引导配置文件都指向本机apiserver的ip和端口


一.在所有node节点上部署coreDNS

1.在所有 node 节点上操作

#上传 coredns.tar 到 /opt 目录中
cd /opt
docker load -i coredns.tar

2.在 master01 节点上操作

#上传 coredns.yaml 文件到 /opt/k8s 目录中,部署 CoreDNS 
cd /opt/k8s
kubectl apply -f coredns.yaml

kubectl get pods -n kube-system 

二.完成master02节点的初始化操作

参考文章【Kubernetes】二进制部署k8s集群(上)之搭建单机matser和etcd集群-CSDN博客

顺便回顾一下组件部署

升级一下组件部署

master节点
master01192.168.80.101kube-apiserver kube-controller-manager kube-scheduler etcd
master02192.168.80.106
 node节点
node01192.168.80.102kubelet kube-proxy docker (容器引擎)
node02192.168.80.103kubelet kube-proxy docker (容器引擎)
etcd  cluster集群
etcd节点1192.168.80.101(mater01)etcd
etcd节点2

192.168.80.102

(node01)

etcd
etcd节点3

192.168.80.103

(node02)

etcd
负载均衡节点
nginx+keepalive01

192.168.80.104

(01)

master
nginx+keepalive02

192.168.80.105

(02)

backup

三.在master01节点基础上,完成master02节点部署

1.在master01 节点操作

//从 master01 节点上拷贝证书文件、各master组件的配置文件和服务管理文件到 master02 节点
scp -r etcd/ kubernetes/ master02:/opt

cd 

scp -r .kube/ master02:/root

cd /usr/lib/systemd/system

scp kube-* master02:`pwd`

cd /usr/local/bin/

scp kubectl master02:/usr/local/bin/

2.在master02 节点操作

修改IP
vim kube-apiserver

设置服务开机自启
systemctl enable --now kube-apiserver.service kube-controller-manager.service kube-scheduler.service
验证一下
systemctl status --now kube-apiserver.service kube-controller-manager.service kube-scheduler.service

查看node节点状态
ln -s /opt/kubernetes/bin/* /usr/local/bin/
kubectl get nodes
kubectl get nodes -o wide			#-o=wide:输出额外信息;对于Pod,将输出Pod所在的Node名
//此时在master02节点查到的node节点状态仅是从etcd查询到的信息,而此时node节点实际上并未与master02节点建立通信连接,因此需要使用一个VIP把node节点与master节点都关联起来

四.部署nginx做负载均衡器

记得关闭防火墙

1.在01 节点上操作

192.168.80.104

//配置nginx的官方在线yum源,配置本地nginx的yum源
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
EOF

yum install nginx -y

修改nginx配置文件,配置四层反向代理负载均衡,指定k8s群集2台master的节点ip和6443端口
vim /etc/nginx/nginx.conf
events {
    use epoll
    worker_connections  1024;
}

#添加
stream {
      upstream k8s-apiserver {
        server 192.168.80.101:6443;
        server 192.168.80.106:6443;
    }
    server {
        listen 6443;
        proxy_pass k8s-apiserver;
    }
}

//检查配置文件语法
nginx -t   

//启动nginx服务,查看已监听6443端口
systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx 

复制过去
scp nginx.conf 192.168.80.105:`pwd`

2.在02 节点上操作

192.168.80.105

其他同上

五.部署keepalived服务做k8s集群负载均衡器高可用

1.在01 节点上操作

yum install -y keepalived

创建nginx状态检查脚本
touch nginx_check.sh
chmod +x nginx_check.sh
#!/bin/bash

if ! killall -0 nginx &> /dev/null
     then
     systemctl stop keepalived
fi

相关测试

修改keepalived配置文件

vim keepalived.conf

复制到02主机上
scp keepalived.conf nginx_check.sh 192.168.80.105:`pwd`

2.在02 节点上操作

vim /etc/keepalived/keepalived.conf

3.在01 节点上操作

systemctl enable --now keepalived.service

ip a

关闭nginx服务
systemctl stop nginx

4.在02 节点上操作

systemctl enable --now keepalived.service
ip a

5.在01 节点上操作

systemctl start nginx keepalived.service

六.修改node节点上的配置引导文件中的server对应的ip为VIP

1.node01 和node02 相同操作

cd /opt/kubernetes/cfg/
[root@node01 cfg]# vim kubelet.kubeconfig 
[root@node01 cfg]# vim kube-proxy.kubeconfig 
[root@node01 cfg]# vim bootstrap.kubeconfig
systemctl restart kubelet.service kube-proxy.service

剩下两个也是一样修改成

192.168.80.100(vip地址)

2.去01 节点查看

netstat -natp | grep nginx

七.所有的master节点的集群引导配置文件都指向本机apiserver的ip和端口

在两个master节点修改
将原来的ip修改成vip地址
192.168.80.100

检察一下 
kubectl get nodes

kubectl get svc

kubectl get cs

[root@master02 ~]# systemctl restart kube-apiserver.service 
[root@master02 ~]# systemctl restart kube-controller-manager.service 
[root@master02 ~]# systemctl restart kube-scheduler.service

到此k8s集群已经部署完毕了

终于可以使用了!!!

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值