zoukankan      html  css  js  c++  java
  • lb

    yum install keepalived nginx -y
    yum install keepalived nginx -t
    
    
    
    ========================================================
    ========================================================
    nginx配置文件
    加上这一段:
    
    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.1.63:6443;
            server 192.168.1.64:6443;
        }
        server {
            listen 6443;
            proxy_pass k8s-apiserver;
        }
    }
    
    
    keepalived配置文件
    
    
    ! Configuration File for keepalived 
     
    global_defs { 
       notification_email { 
         acassen@firewall.loc 
         failover@firewall.loc 
         sysadmin@firewall.loc 
       } 
       notification_email_from Alexandre.Cassen@firewall.loc  
       smtp_server 127.0.0.1 
       smtp_connect_timeout 30 
       router_id NGINX_MASTER 
    } 
    
    vrrp_script check_nginx {
        script "/usr/local/nginx/sbin/check_nginx.sh"  ###检测脚本
    }
    
    vrrp_instance VI_1 { 
        state BACKUP
        interface enp0s3    ##改成你网卡的设备名去配置文件看看在写
        virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 (主备一致)
        priority 100      # 优先级,主比备高,备写90
        advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒 
        authentication { 
            auth_type PASS      ##密码验证
            auth_pass 1111 
        }  
        virtual_ipaddress {     ####vip地址
            192.168.1.60/24 
        } 
        track_script {      #指定脚本检测
            check_nginx
        } 
    }
    
    
    systemctl start nginx
    sysremctl start keepalived 
    
    总结:
    1,ip add查看master节点,会发现多出来一个ip地址60,这个就是vip,当master正常运行时,backup是没有这个ip的
    2,可以用ping命令检测,当master节点挂了,60这个ip会漂移到bakcup节点继续提供服务
    3,中间会有1次ping断层
    
    ========================================================
    ========================================================
    将node01和node02 添加到负载均衡集群中
    1,node01操作
    
    root@k8s-node01: /opt/kubernetes/cfg 16:00:20
    $ grep 60 *
    bootstrap.kubeconfig:    server: https://192.168.1.60:6443
    bootstrap.kubeconfig:    token: 0fb61c46f8991b718eb38d27b605b008
    kubelet.kubeconfig:    server: https://192.168.1.60:6443
    kube-proxy.kubeconfig:    server: https://192.168.1.60:6443
    root@k8s-node01: /opt/kubernetes/cfg 16:00:25
    $ 
    ##将grep出来的60位置原来是master节点ip,全部替换成60,指向负载ip地址,node-2同样操作
    重启node节点kubelet,kube-proxy
    
    2,验证
    lb-master查看日志,node节点通过两个master链接lb
    root@lb-master: /opt 14:36:30
    $ tail -f /var/log/nginx/k8s-access.log 
    192.168.1.65 192.168.1.64:6443 - [25/Mar/2019:11:43:02 +0800] 200 1119
    192.168.1.65 192.168.1.63:6443 - [25/Mar/2019:13:27:07 +0800] 200 1119
    192.168.1.66 192.168.1.63:6443 - [25/Mar/2019:13:27:07 +0800] 200 1119
    192.168.1.65 192.168.1.63:6443 - [25/Mar/2019:13:27:07 +0800] 200 1566
    192.168.1.66 192.168.1.63:6443 - [25/Mar/2019:13:27:07 +0800] 200 1118
    192.168.1.65 192.168.1.64:6443 - [25/Mar/2019:13:27:07 +0800] 200 1566
    192.168.1.66 192.168.1.64:6443 - [25/Mar/2019:13:27:07 +0800] 200 1566
    192.168.1.66 192.168.1.64:6443 - [25/Mar/2019:13:27:07 +0800] 200 1118
    192.168.1.65 192.168.1.64:6443 - [25/Mar/2019:13:27:07 +0800] 200 1117
    192.168.1.65 192.168.1.64:6443 - [25/Mar/2019:13:27:07 +0800] 200 1117
    
    
    ========================================================
    ========================================================
    k8s双master节点
    1,将master节点配置文件systemctl管理工具考到master02上
    scp -r /opt/kubernetes/ root@192.168.1.64:/opt/
    scp /usr/lib/systemd/system/{kube-apiserver,kube-scheduler,kube-controller-manager}.service root@192.168.1.64:/usr/lib/systemd/system/
    scp /usr/bin/kubectl root@192.168.1.64:/usr/bin/
    
    2,修改master02节点kube-apiserver,kube-scheduler,kube-controller-manager配置文件ip地址改成master02的
    
    root@master02: /opt/kubernetes/cfg 15:47:12
    $ pwd
    /opt/kubernetes/cfg
    root@master02: /opt/kubernetes/cfg 15:47:12
    $ ls
    kube-apiserver  kube-controller-manager  kube-scheduler  token.csv
    ##这是已经改完了的了,正常是grep 63,会显示文件中含有master01节点ip63的所有。
    root@master02: /opt/kubernetes/cfg 15:47:15
    $ grep 64 *
    kube-apiserver:--bind-address=192.168.1.64 
    kube-apiserver:--secure-port=6443 
    kube-apiserver:--advertise-address=192.168.1.64 
    root@master02: /opt/kubernetes/cfg 15:47:19
    $ 
    ps: 
     因为kube-ctroller-manager  kube-scheduler配置文件写的都是127.0.0.1所有没有改动
    3,启动master02
    systemctl restart kube-apiserver
    systemctl restart kube-ctroller-manager
    systemctl restart kube-scheduler
    
    4,验证
    root@master02: /opt/kubernetes/cfg 15:50:18
    $ kubectl get node
    NAME           STATUS   ROLES    AGE     VERSION
    192.168.1.65   Ready    <none>   63m     v1.13.4
    192.168.1.66   Ready    <none>   4d22h   v1.13.4
    root@master02: /opt/kubernetes/cfg 15:50:22
    $ kubectl get csr
    NAME                                                   AGE   REQUESTOR           CONDITION
    node-csr-XMad_RYrooh4SENAIOWeD2VIGEZOR-5jVG3QASPBZzA   65m   kubelet-bootstrap   Approved,Issued
    root@master02: /opt/kubernetes/cfg 15:50:25
    $ kubectl get cs
    NAME                 STATUS    MESSAGE             ERROR
    controller-manager   Healthy   ok                  
    scheduler            Healthy   ok                  
    etcd-0               Healthy   {"health":"true"}   
    etcd-2               Healthy   {"health":"true"}   
    etcd-1               Healthy   {"health":"true"}   
    root@master02: /opt/kubernetes/cfg 15:50:28
    $ kubectl get pod
    NAME                     READY   STATUS             RESTARTS   AGE
    java-84767655bc-5rlth    0/1     CrashLoopBackOff   15         57m
    nginx-7cdbd8cdc9-2jwmj   1/1     Running            0          51m
    nginx-7cdbd8cdc9-bwp9v   1/1     Running            0          57m
    nginx-7cdbd8cdc9-zc2rl   1/1     Running            0          57m
    root@master02: /opt/kubernetes/cfg 15:50:30
    $ 
    
    ========================================================
    ========================================================
  • 相关阅读:
    Docker镜像和容器
    Docker介绍
    Ansible实战:部署分布式日志系统
    Ansible之roles介绍
    Ansible之tags介绍
    Ansible之迭代、模板
    linux jenkins安装(四)
    linux maven安装(三)
    linux tomcat安装(二)
    linux JDK安装(一)
  • 原文地址:https://www.cnblogs.com/Carr/p/10595518.html
Copyright © 2011-2022 走看看