准备环境
软件环境:
软件 |
版本 |
操作系统 |
CentOS7.8_x64 (mini) |
Docker |
20-ce |
Kubernetes |
1.25 |
服务器整体规划:
角色 |
IP |
其他单装组件 |
k8s-master1 |
192.168.1.71 |
docker,etcd,nginx,keepalived |
k8s-master2 |
192.168.1.72 |
docker,etcd,nginx,keepalived |
k8s-node1 |
192.168.1.73 |
docker,etcd |
负载均衡器对外IP |
192.168.1.88 (VIP) |
架构图:
nbsp; Nginx是一个主流Web服务和反向代理服务器,这里用四层实现对apiserver实现负载均衡。
nbsp; Keepalived是一个主流高可用软件,基于VIP绑定实现服务器双机热备,在上述拓扑中,Keepalived主要根据Nginx运行状态判断是否需要故障转移(偏移VIP),例如当Nginx主节点挂掉,VIP会自动绑定在Nginx备节点,从而保证VIP一直可用,实现Nginx高可用。
注:为了节省机器,这里与K8s master节点机器复用。也可以独立于k8s集群之外部署,只要nginx与apiserver能通信就行。
安装软件包(主/备)
keepalived配置文件(Nginx Master)
nbsp; vrrp_script:指定检查nginx工作状态脚本(根据nginx状态判断是否故障转移)
nbsp; virtual_ipaddress:虚拟IP(VIP)
准备上述配置文件中检查nginx运行状态的脚本:
注:keepalived根据脚本返回状态码(0为工作正常,非0不正常)判断是否故障转移。
启动并设置开机启动
查看keepalived工作状态
Nginx+Keepalived高可用测试
闭主节点Nginx,测试VIP是否漂移到备节点服务器。
在Nginx Master执行 pkill nginx 在Nginx Backup,ip addr命令查看已成功绑定VIP。
部署Etcd集群
如果你在学习中遇到问题或者文档有误可联系阿良~ 微信: k8init
Etcd 是一个分布式键值存储系统,Kubernetes使用Etcd进行数据存储,kubeadm搭建默认情况下只启动一个Etcd Pod,存在单点故障,生产环境强烈不建议,所以我们这里使用3台服务器组建集群,可容忍1台机器故障,当然,你也可以使用5台组建集群,可容忍2台机器故障。
节点名称 |
IP |
etcd-1 |
192.168.1.71 |
etcd-2 |
192.168.1.72 |
etcd-3 |
192.168.1.73 |
注:为了节省机器,这里与K8s节点机器复用。也可以独立于k8s集群之外部署,只要apiserver能连接到就行。
准备cfssl证书生成工具
fssl是一个开源的证书管理工具,使用json文件生成证书,相比openssl更方便使用。
找任意一台服务器操作,这里用Master节点。
生成Etcd证书
自签证书颁发机构(CA)
创建工作目录:
自签CA:
生成证书:
会生成ca.pem和ca-key.pem文件。
使用自签CA签发Etcd HTTPS证书
创建证书申请文件:
注:上述文件hosts字段中IP为所有etcd节点的集群内部通信IP,一个都不能少!为了方便后期扩容可以多写几个预留的IP。
生成证书:
从Github下载二进制文件
下载地址:https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz
部署Etcd
创建工作目录并解压二进制包
创建etcd配置文件
nbsp; ETCD_NAME:节点名称,集群中唯一
nbsp; ETCD_DATA_DIR:数据目录
nbsp; ETCD_LISTEN_PEER_URLS:集群通信监听地址
nbsp; ETCD_LISTEN_CLIENT_URLS:客户端访问监听地址
nbsp; ETCD_INITIAL_ADVERTISEPEERURLS:集群通告地址
nbsp; ETCD_ADVERTISE_CLIENT_URLS:客户端通告地址
nbsp; ETCD_INITIAL_CLUSTER:集群节点地址
nbsp; ETCD_INITIAL_CLUSTER_TOKEN:集群Token
nbsp; ETCD_INITIAL_CLUSTER_STATE:加入集群的当前状态,new是新集群,existing表示加入已有集群
systemd管理etcd
拷贝刚才生成的证书
把刚才生成的证书拷贝到配置文件中的路径:
启动并设置开机启动
来源:弓长三虎
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!