- 已编辑
Kubekey v1.2.0-alpha.1 版本开始内置了 haproxy 作为负载均衡器,用户无需提前准备 haproxy+keepalive 等方式的负载均衡器,即可快速部署高可用的 kubernetes 集群。
架构
Kubekey 采用的高可用方式称作”本地负载均衡“。每台 master 节点的 kubelet 连接本地启动的 apiserver。每台 worker 节点部署了一个 haproxy 对所有 master 节点的 apiserver 地址进行代理,worker 的 kubelet 通过 https://127.0.0.1:{{ 端口号 }} 这个地址连接本地的 haproxy 进而根据“最少连接”策略被转发到其中一个 master 节点的 apiserver。
使用方式
- 获取 Kubekey v1.2.0-alpha.1, 以 amd64 为例:
curl -OL https://github.com/kubesphere/kubekey/releases/download/v1.2.0-alpha.1/kubekey-v1.2.0-alpha.1-linux-amd64.tar.gz
tar -zxvf kubekey-v1.2.0-alpha.1-linux-amd64.tar.gz
- 创建 Kubekey 的 config 文件:
./kk create config --with-kubesphere v3.1.0
- 编辑config文件:
# 集群主机信息自行填写,并开启如下的注释
controlPlaneEndpoint:
##Internal loadbalancer for apiservers
internalLoadbalancer: haproxy
domain: lb.kubesphere.local
address: ""
port: 6443
- 开始创建集群,并等待集群创建完毕:
./kk create cluster -f config-sample.yaml
- 查看结果:
[root@master1 ~]# kubectl get po -A -o wide | grep haproxy
kube-system haproxy-node1 1/1 Running 0 3m32s 192.168.0.8 node1
通过以下命令检查 kubelet 与 apiserver 的连接:
[root@node1 ~]# netstat -antpl |grep kubelet
tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 13730/kubelet
tcp 0 0 127.0.0.1:35103 0.0.0.0:* LISTEN 13730/kubelet
tcp 0 0 127.0.0.1:38840 127.0.0.1:6443 ESTABLISHED 13730/kubelet
tcp6 0 0 :::10250 :::* LISTEN 13730/kubelet
登录 web 界面查看 kubesphere:
以上结果表明集群高可用模式部署成功。