洞察如何通过FinClip提升国产操作系统App开发效能与安全性
941
2022-11-30
Kubernetes 青云QingCloud 主机上部署 KubeSphere
记录的主要是如何测试负载均衡那块
介绍
对于生产环境,需要考虑集群的高可用性。如果关键组件(例如 kube-apiserver、kube-scheduler 和 kube-controller-manager)在相同的主节点上运行,一旦主节点出现故障,Kubernetes 和KubeSphere 将不可用。因此,您需要为多个主节点配置负载均衡器,以搭建高可用集群。
准备工作
如果搭建生产环境,建议您提前准备持久化存储并创建 StorageClass。如果搭建开发测试环境,您可以直接使用集成的 OpenEBS 配置 LocalPV 存储服务。
集群架构
本教程使用六台机器。您需要创建两个负载均衡器,并在其中的三台机器上部署三个主节点和 etcd 节点。您可以在 KubeKey 创建的 config-sample.yaml 文件中配置上述节点(config-sample.yaml 为文件的默认名称,可以手动更改)。
根据 Kubernetes 官方文档高可用拓扑选项,Kubernetes 高可用集群有两种拓扑配置形式,即堆叠 etcd 拓扑和外部 etcd 拓扑。在搭建高可用集群前,您需要根据该文档仔细权衡两种拓扑的利弊。本教程采用堆叠 etcd 拓扑搭建高可用集群作为示例。
步骤 1:创建负载均衡器
在创建-后需要检查负载均衡器的防火墙规则。请确保 6443 端口已添加到防火墙规则中并且外部流量可以通过 6443 端口,否则安装将会失败。在青云QingCloud 平台上,您可以在安全下的安全组页面查看相关信息。
测试master防火墙是否关闭:
第一步在三个master上使用下面命令模拟启动三个6443端口
###验证服务地址
#python 2ssh k.m1 python -m SimpleHTTPServer 6443ssh k.m2 python -m SimpleHTTPServer 6443ssh k.m3 python -m SimpleHTTPServer 6443#python3ssh k.m1 python -m 6443ssh k.m2 python -m 6443ssh k.m3 python -m 6443
查看本地python的版本确定使用哪个启动端口命令
[root@master01 ~]# python -VPython 2.7.5[root@master01 ~]# python -m SimpleHTTPServer 7777Serving HTTP on 0.0.0.0 port 7777 ...[root@master01 ~]# netstat -tpln | grep 7777tcp 0 0 0.0.0.0:7777 0.0.0.0:* LISTEN 14210/python
第二步测试端口是否起来
Serving HTTP on 0.0.0.0 port 6443 ... 测试三个服务端口是否开放,怕有防火墙限制
[root@master01 ~]# python -m SimpleHTTPServer 6443[root@master02 ~]# python -m SimpleHTTPServer 6443[root@master03 ~]# python -m SimpleHTTPServer 6443
然后使用telnet测试,如果卡着说明端口是起来的,没问题的
[root@master02 ~]# telnet 192.168.0.15 6443Trying 192.168.0.15...Connected to 192.168.0.15.Escape character is '^]'.^C^C^C^C^CConnection closed by foreign host.You have new mail in /var/spool/mail/root[root@master02 ~]# telnet 192.168.0.14 6443Trying 192.168.0.14...Connected to 192.168.0.14.Escape character is '^]'.^CConnection closed by foreign host.[root@master02 ~]# telnet 192.168.0.16 6443Trying 192.168.0.16...Connected to 192.168.0.16.Escape character is '^]'.
测试负载均衡器端口是否有防火墙限制(负载均衡器 192.168.0.252 端口6443)
[root@master02 ~]# telnet 192.168.0.252 6443Trying 192.168.0.252...Connected to 192.168.0.252.Escape character is '^]'.
创建LB
创建-,-使用TCP协议,然后创建后端,后端是上面使用python模拟的端口所在的主机IP和地址。三台机器telnet三次,因为都是轮询。
[root@master01 ~]# telnet 192.168.0.252 6443Trying 192.168.0.252...Connected to 192.168.0.252.Escape character is '^]'.^CConnection closed by foreign host.[root@master01 ~]# telnet 192.168.0.252 6443Trying 192.168.0.252...Connected to 192.168.0.252.Escape character is '^]'.^CConnection closed by foreign host.[root@master01 ~]# telnet 192.168.0.252 6443Trying 192.168.0.252...Connected to 192.168.0.252.Escape character is '^]'.^CConnection closed by foreign host.
上面没有问题然后再看看图形界面是否为活越状态
先测试lb然后再去修改config文件拉起ks集群
步骤 3:设置集群节点
当您采用包含堆叠控制平面节点的高可用拓扑时,主节点和 etcd 节点在相同的三台机器上。
描述 | |
| 所有节点的详细信息 |
| etcd 节点名称 |
| 主节点名称 |
| 工作节点名称 |
在 etcd 和 master 参数下分别设置主节点的名称(master1、master2 和 master3)使得三台机器同时作为主节点和 etcd 节点。etcd 节点的数量必须是奇数。此外,由于 etcd 内存占用较高,不建议将 etcd 安装在工作节点上。
步骤 4:配置负载均衡器
在前述 YAML 文件中除了需要配置节点信息外,还需要配置负载均衡器信息。本步骤需要用到创建内部负载均衡器时记录的内网 VIP 地址。在本示例中,内部负载均衡器的 VIP 地址和监听端口分别为 192.168.0.253 和 6443。您可以参考如下 YAML 文件配置。
config-sample.yaml 文件示例
## Internal LB config example## apiserver_loadbalancer_domain_name: "lb.kubesphere.local" controlPlaneEndpoint: domain: lb.kubesphere.local address: "192.168.0.253" port: "6443"
在config-sample.yaml 文件中,address 和port 字段应缩进两个空格,同时 address 字段的值应为 VIP 地址。负载均衡器的默认域名为lb.kubesphere.local,用于内部访问。您可以在domain 字段修改域名。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~