k8s-高可用集群實現(keepalived+haproxy)


一 環境說明:

需要單獨拿出三台機器安裝keep+haproxy,我這里為了方便,就和k8s一起共用了三台機器

master01  192.168.1.200
master02  192.168.1.210
master03  192.168.1.211
vip:192.168.1.222

1.1 安裝keepalived(3台都安裝)

yum install keepalived

1.2 編輯keepalived配置文件

global_defs {
   script_user root 
   enable_script_security

}

vrrp_script chk_haproxy {
    script "/bin/bash -c 'if [[ $(netstat -nlp | grep 9443) ]]; then exit 0; else exit 1; fi'"  # haproxy 檢測
    interval 2  # 每2秒執行一次檢測
    weight 11 # 權重變化}

vrrp_instance VI_1 {interface eth0

  state MASTER # backup節點設為BACKUP
  virtual_router_id 51 # id設為相同,表示是同一個虛擬路由組
  priority 100 #初始權重
nopreempt #可搶占

  unicast_peer {}

  virtual_ipaddress {
     192.168.1.222 #vip
  }

  authentication {
    auth_type PASS
    auth_pass password
  }

  track_script {
      chk_haproxy
  }

  notify "/container/service/keepalived/assets/notify.sh"}

二 安裝haproxy(3台都安裝)

2.1編輯haproxy配置文件(三台機器配置一樣)

global
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

defaults
    mode                    tcp #支持https
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000


    #use_backend static          if url_static
    #default_backend             app
listen stats #網頁形式
    mode http
    bind *:9443
    stats  uri       /admin/stats
    monitor-uri      /monitoruri
frontend showDoc
   
    bind *:8000
    use_backend      app #必須和下面的名稱一致

backend app
    balance     roundrobin
    server  app1 192.168.1.210:6443 check
    server  app2 192.168.1.211:6443 check
    server  app3 192.168.1.200:6443 check


三網頁訪問

vip+9443

四 安裝k8s

省略,在加入集群的時候,ip地址是vip+8000

五 測試

在/root/.kube/config 這個文件里可以改成haproxy的ip和端口看是否可以正常查看,也可以改成vip測試一下
如圖所示:

然后在運行kubectl get nodes,如果可以正常訪問,代表是成功的

六 集群訪問流程

node節點---vip(keepalived)--master(根據haproxy負載選中指定的master)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM