k8s高可用架构
发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,概述地址sealos, 让kubernetes高可用不再需要keepalived haproxy和ansible,sealyun定制超级版kubeadm通过ipvs代理多个master,优雅解决k8s
千家信息网最后更新 2024年11月16日k8s高可用架构概述
地址sealos, 让kubernetes高可用不再需要keepalived haproxy和ansible,sealyun定制超级版kubeadm通过ipvs代理多个master,优雅解决k8s高可用问题。
环境介绍ip role10.103.97.200 master010.103.97.201 master010.103.97.202 master010.103.97.2 virtulIP
apiserver.cluster.local apiserver解析名
下载kubernetes1.14.0+离线包在每个节点上初始化
tar zxvf kube1.14.0.tar.gz && cd kube/shell && sh init.sh
用下载的kubeadm替换掉包内的kubeadm:
cp kubeadm /usr/bin/kubeadmkubeadm配置文件
cat kubeadm-config.yaml :
apiVersion: kubeadm.k8s.io/v1beta1kind: ClusterConfigurationkubernetesVersion: v1.14.0controlPlaneEndpoint: "apiserver.cluster.local:6443" # 使用解析名去访问APIserverapiServer: certSANs: - 127.0.0.1 - apiserver.cluster.local - 172.20.241.205 - 172.20.241.206 - 172.20.241.207 - 172.20.241.208 - 10.103.97.2 # 虚拟IP等都加入到证书中---apiVersion: kubeproxy.config.k8s.io/v1alpha1kind: KubeProxyConfigurationmode: "ipvs"ipvs: excludeCIDRs: - "10.103.97.2/32" # 如果不加这个k8s会定时清理用户创建的IPVS规则,导致代理失败
在 master0 10.103.97.200 上
echo "10.103.97.200 apiserver.cluster.local" >> /etc/hostskubeadm init --config=kubeadm-config.yaml --experimental-upload-certs mkdir ~/.kube && cp /etc/kubernetes/admin.conf ~/.kube/configkubectl apply -f https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml # 安装calico
执行完会输出一些日志,里面包含join需要用的 命令
在 master1 10.103.97.201 上
# 注意,在安装之前解析到master0, 安装成功后解析改成自己,因为kubelet kube-proxy配置的都是这个解析名,如果不改解析master0宕机整个集群就不可用了echo "10.103.97.200 apiserver.cluster.local" >> /etc/hosts kubeadm join 10.103.97.200:6443 --token 9vr73a.a8uxyaju799qwdjv \ --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 \ --experimental-control-plane \ --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07 sed "s/10.103.97.200/10.103.97.201/g" -i /etc/hosts # 解析改也自己本机地址
在 master2 10.103.97.202 上,同master1
echo "10.103.97.200 apiserver.cluster.local" >> /etc/hostskubeadm join 10.103.97.200:6443 --token 9vr73a.a8uxyaju799qwdjv \ --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 \ --experimental-control-plane \ --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07 sed "s/10.103.97.200/10.103.97.201/g" -i /etc/hosts在Node节点上
通过虚拟IP join到master上, 这个 命令 会在node节点上创建一条ipvs规则,virturl server就是虚拟IP, realserver就是三个master。 然后再以一个static pod起一个守护进程守护这些规则,一旦哪个apiserver不可访问了就清除realserver, apiserver通了之后再次添加回来
echo "10.103.97.2 apiserver.cluster.local" >> /etc/hosts # using vipkubeadm join 10.103.97.2:6443 --token 9vr73a.a8uxyaju799qwdjv \ --master 10.103.97.200:6443 \ --master 10.103.97.201:6443 \ --master 10.103.97.202:6443 \ --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 Architecture
+----------+ +---------------+ virturl server: 10.103.97.2:6443 | mater0 |< ----------------------| ipvs nodes | real servers: +----------+ |+---------------+ 10.103.97.200:6443 | 10.103.97.201:6443 +----------+ | 10.103.97.202:6443 | mater1 |<---------------------+ +----------+ | | +----------+ | | mater2 |<---------------------+ +----------+
集群每个node节点都会创建一条ipvs规则用于代理所有的master节点。类似kube-proxy的ipvs实现。
然后起一个守护进程就健康检查
apiservers /etc/kubernetes/manifests/sealyun-lvscare.yaml
节点
规则
代理
命令
地址
就是
进程
集群
建一
配置
优雅
健康
成功
三个
会创
再次
名下
多个
文件
日志
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技英语互联网新词翻译
学习数据库管理技术
淄博招聘管理hr软件开发公司
计算机网络技术有关问题
杭州风享网络技术有限公司
公安接处警工作的软件开发
娱网棋牌代理服务器
硬件开发和软件开发哪个
重庆黑白猫网络技术
网络安全事件看法
深圳讯雷网络技术公司
菏泽服务器管理系统设备
宁波起山哥软件开发团队
上海图书馆古籍书目数据库
绍兴网络安全准入控制
广州博睿互联网科技有限公司
半年培训软件开发是真的吗
网络安全法第一章十二条
企友3e配置数据库
数据库少用having
江夏定制软件开发方案
把sql脚本倒进数据库
服务器开启管理节点
企业数据较全的数据库有哪些
张掖市邮储银行网络安全
方正证券软件开发待遇怎么样
来电话显示无法连接到服务器
软件开发培训班有哪些
南沙区什么是网络技术开发工艺
企友3e配置数据库