【摘要】基于青云LB来部署高可用的k8s集群。
前言
Kubernetes
和
KubeSphere
将不可用。因此,您需要为多个主节点配置负载均衡器,以搭建高可用集群。您可以使用任何云负载均衡器或任何硬件负载均衡器(例如 F5)。此外,您也可以使用
Keepalived+HAproxy
或
NGINX
搭建高可用集群。
2.1 负载均衡器创建高可用集群:
2.2 使用 Keepalived 和 HAproxy/Nginx 创建高可用 Kubernetes 集群:
高可用方案
3.1 云上:
使用
Keepalived
和HAproxy
创建高可用 Kubernetes 集群(有些云可能不支持keepalived)使用
Keepalived
和Nginx
创建高可用 Kubernetes 集群(有些云可能不支持keepalived)可以直接使用云上的
lb
,比如阿里云slb
,腾讯云elb
,青云lb
等(推荐)
3.2 非云上:
使用
Keepalived
和HAproxy
创建高可用 Kubernetes 集群使用
Keepalived
和Nginx
创建高可用 Kubernetes 集群
青云LB负载均衡使用
Load Balancer
,简称LB)提供安全快捷的流量分发服务,来自多个公网地址的访问流量经由 LB 可以自动分配到多台云服务器上,并支持自动检测并隔离故障云服务器,提供业务系统的服务能力和可用性。负载均衡支持千万级别并发访问请求,可轻松应对大流量访问,满足业务需求。
创建负载均衡器,指定ip地址或者自动生成IP
进入负载均衡器,创建监听器
选择TCP,
6443
端口(此端口可调整)添加master地址与监听
apiserver 6443
端口根据集群的部署位置,您可能需要在安全组中打开端口以确保外部流量不被屏蔽
可以同时配置内置负载均衡器和外置负载均衡器。为外置负载均衡器分配公共 IP 地址后,您可以使用该 IP 地址来访问集群,这里我们只用内置负载均衡器,利用青云VPN进行内网访问即可
4.1 部署k8s之前就是不可用状态,如下图所示:
4.2 k8s集群初始化:
kubeadm init --config kubeadm-init.yaml --upload-certs
##说明:upload-certs 标志用来将在所有控制平面实例之间的共享证书上传到集群,若是不加会报错如下:
不加upload-certs报错如下:
4.3 kubeadm-init.yaml的内容如下:
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 192.168.0.1 #本机ks-m1的ip
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
imagePullPolicy: IfNotPresent
name: ks-m1
taints:
- effect: NoSchedule
key: node-role.kubernetes.io/master
---
apiServer:
timeoutForControlPlane: 4m0s
certSANs:
- "172.17.0.252"
extraArgs:
authorization-mode: "Node,RBAC"
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
controlPlaneEndpoint: 172.17.0.252:6443 #此ip和端口是青云负载均衡器生成的内部负载ip+端口
clusterName: kubernetes
cgroupDriver: systemd
controllerManager: {}
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: 1.22.12
networking:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16
serviceSubnet: 10.10.0.0/16
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
4.4 master都加入集群后,负载均衡器状态如下:
文章转载自架构至美,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。