Kubernetes 青云QingCloud 主机上部署 KubeSphere

网友投稿 857 2022-11-30

Kubernetes 青云QingCloud 主机上部署 KubeSphere

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 节点在相同的三台机器上。

参数

描述

​hosts​

所有节点的详细信息

​etcd​

etcd 节点名称

​master​

主节点名称

​worker​

工作节点名称

在 ​​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小时内删除侵权内容。

上一篇:jenkins中/usr/bin/env: node: No such file or directory
下一篇:spring validation多层对象校验教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~