本次部署说明
在上一篇文章中,就已经完成了二进制k8s集群部署的搭建,但是单机master并不适用于企业的实际运用(因为单机master中,仅仅只有一台master作为节点服务器的调度指挥,一旦宕机。就意味着整个集群的瘫痪,所以成熟的k8s的集群一定要考虑到master的高可用。)企业的运用一般至少存在两台master及其以上的部署,本次将根据前面的部署,再添加一台master(三个master或者更多,也可以根据本次添加步骤重复添加)。添加master后,我们会将借助keepalived+nginx的架构,来实现高可用的master【也可以使用haproxy+keepalived或则是keepalived+lvs(不推荐,步骤过于复杂)】
除此之外,我们还将搭建出k8s的ui管理界面
本次部署的架构组件

架构说明:
node节点的kubelet只能对接一个master节点的apiserver,不可能同时对接多个master节点的apiserver。简而言之,node节只能有一个master来领导。
kubelet和kube-proxy是通过kubelet.kubeconfig和kube-proxy.kubeconfig文件中的server参数进行对接 master节点的。
所以在多master节点的环境下,需要有nginx负载均衡器来进行调度,而且需要进行keepalived高可用的构建(主从两个节点) ,防止主节点宕机导致整个k8s集群的不可用。
  
1. 新master节点的搭建

1.1 对master02 进行初始化配置
1.2 将master01的配置移植到master02
2.负载均衡的部署
 #配置load balancer集群双机热备负载均衡(nginx实现负载均衡,keepalived实现双机热备)
  
  #----------------- 1、两台负载均衡器配置nginx -------------------------------------
  
  #配置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 {
      worker_connections  1024;
  }
  
  #添加
  stream {
      log_format  main  '$remote_addr $upstream_addr - [$time_local] $status 
      $upstream_bytes_sent';
      
      access_log  /var/log/nginx/k8s-access.log  main;
  
      upstream k8s-apiserver {
          server 192.168.73.105:6443;    #master01
          server 192.168.73.110:6443;    #master02
      }
      server {
          listen 6443;
          proxy_pass k8s-apiserver;
      }
  }
  
  http {
  ......
  
  
  #检查配置文件语法
  nginx -t   
  
  #启动nginx服务,查看已监听6443端口
  systemctl start nginx
  systemctl enable nginx
   
  ss -lntp|grep nginx 
  
  

#------------------ 2、两台负载均衡器配置keepalived ------------------------------
  
  #部署keepalived服务
  yum install keepalived -y
  
  #修改keepalived配置文件
  vim /etc/keepalived/keepalived.conf
 ! Configuration File for keepalived
  
 global_defs {
    router_id nginx_master
 }
  
 vrrp_script check_nginx {
    script "/etc/nginx/check_nginx.sh"   #指定检测脚本的路径,并且该脚本充当心跳检测脚本
 }
  
 vrrp_instance VI_1 {
     state MASTER        #指定状态为master节点,109为BACKUP备用节点
     interface ens33
     virtual_router_id 51
     priority 100    #108优先级为100 109为90,优先级决定着主备的位置
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 1111
     }
     virtual_ipaddress {
         192.168.73.66
     }
     track_script {
      check_nginx        #追踪脚本的进程
     }
 }
  
 #将该文件 发送给备用调度器,并且将其中的配置修改为备用调度器的属性
 cd /etc/keepalived/
 scp keepalived.conf  root@192.168.73.109:`pwd`
  
  
 #创建nginx状态检查脚本 
 vim /etc/nginx/check_nginx.sh
  
 #!/bin/bash
 killall -0 nginx &>/dev/null
 if [ $? -ne 0 ];then
   systemctl stop keepalived
 fi
  
  
  chmod +x /etc/nginx/check_nginx.sh  #为脚本增加执行权限
  
 #将该脚本发送给备用调度器
 cd /etc/nginx
 scp check_nginx.conf  root@192.168.73.109:`pwd`
  
  
  
  
  #两台主备调度器启动keepalived服务(一定要先启动了nginx服务,再启动keepalived服务)
  systemctl start keepalived
  systemctl enable keepalived
  ip addr             #查看主节点的VIP是否生成
  
  


 
 



 
3. k8s的web UI界面的搭建





 












