目录

一、简述安装环境

二、安装haproxy和keepalived

三、修改haproxy的配置文件

四、修改keepalived的配置文件

五、启动keepalived

六、启动haproxy

七、验证服务是否都正常启动

八、验证k8s访问环境

一、简述安装环境

操作系统: CentOS Linux release 7.5.1804 (Core)

已安装程序:kubernetes,docker

集群节点:master(192.168.52.150),node2(192.168.52.152)

二、安装haproxy和keepalived

在master和node2上分别执行如下代码

yum install -y haproxy keepalived

 三、修改haproxy的配置文件

 1.修改master和node2的配置文件,他们的配置文件相同

vim /etc/haporxy/haproxy.cfg
global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /var/run/haproxy-admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon
    nbproc 1

defaults
    log     global
    timeout connect 5000
    timeout client  10m
    timeout server  10m

listen  admin_stats
    bind 0.0.0.0:10080  #这里需要设置一个不和其他程序冲突的端口,查看端口是否占用:netstat -anp| grep 10080
    mode http
    log 127.0.0.1 local0 err
    stats refresh 30s
    stats uri /status
    stats realm welcome login\ Haproxy
    stats auth admin:123456
    stats hide-version
    stats admin if TRUE

listen kube-master
    bind 0.0.0.0:8443   #这个8443端口也可以修改为其他端口,主要是keepalived中用于端口检测的
    mode tcp
    option tcplog
    balance source
    server 192.168.52.150 192.168.52.150:6443 check inter 2000 fall 2 rise 2 weight 1  #6443端口为k8s集群中apiserver的端口,需要注意
    server 192.168.52.152 192.168.52.152:6443 check inter 2000 fall 2 rise 2 weight 1

需要注意和需要修改的地方我已经在段落后面添加了注释,其他地方不需要改动 ,将如上内容复制替换到2个集群服务器的/etc/haproxy/haproxy.cfg中即可

四、修改keepalived的配置文件 

 master和node2中keepalived的配置文件有些许的不一样,我会将2个配置文件内容都贴出来.

1.  下面是master的配置文件

global_defs {
    router_id lb-master-105
}

vrrp_script check-haproxy {
    script "killall -0 haproxy"
    interval 5
    weight -30
}

vrrp_instance VI-kube-master {
    state MASTER #需要将状态设置为(MASTER)
    priority 120
    dont_track_primary
    interface ens33  #这个地方需要特别注意,一个服务器有很多虚拟网卡,而这个网卡是真实网卡,可以通过ifconfig 命令查看你服务器中的名字,我的服务器中ip地址192.168.52.150对应的网卡名称就是ens33,这个不能写错
    virtual_router_id 68 #这个id可以是其他数字,但是该数字必须在master和node2中要保持一致,也可以照我这个写,不需要修改的
    advert_int 3
    track_script {
        check-haproxy
    }
    virtual_ipaddress {
        192.168.52.160  #这个就是虚拟出来的ip了,简称VIP,需要确保集群环境中不能有ip与这个vip冲突,其次需要确定该vip能和集群中所有节点ping的通
    }
}

2. 下面是node2的配置文件

global_defs {
    router_id lb-master-105
}

vrrp_script check-haproxy {
    script "killall -0 haproxy"
    interval 5
    weight -30
}

vrrp_instance VI-kube-master {
    state BACKUP  #此处需要设置为备份状态(BACKUP)
    priority 110
    dont_track_primary
    interface ens33  #这个地方需要特别注意,一个服务器有很多虚拟网卡,而这个网卡是真实网卡,可以通过ifconfig 命令查看你服务器中的名字,我的服务器中ip地址192.168.52.150对应的网卡名称就是ens33,这个不能写错
    virtual_router_id 68 #这个id可以是其他数字,但是该数字必须在master和node2中要保持一致,也可以照我这个写,不需要修改的
    advert_int 3
    track_script {
        check-haproxy
    }
    virtual_ipaddress {
        192.168.52.160  #这个就是虚拟出来的ip了,简称VIP,需要确保集群环境中不能有ip与这个vip冲突,其次需要确定该vip能和集群中所有节点ping的通
    }
}

五、启动keepalived并设置开机自启

 

#启动
systemctl start keepalived

#查看状态
systemctl status keepalived

#设置开机自启
systemctl enable keepalived

六、启动haproxy 

 

#启动
systemctl start haproxy

#查看状态
systemctl status haproxy

#设置开机自启
systemctl enable haproxy

注意:如果启动haproxy失败了的话,尝试执行下面这句话

setsebool -P haproxy_connect_any=1

七、验证服务是否都正常启动

 1.master

 2.node2

 

 八、验证k8s访问环境

 

 访问master

访问node2

 

访问vip

 

 由此,大功告成!

喜欢的朋友还望点个赞+关注,后期会有更多更新等你哦,(* ̄︶ ̄)

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐