前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubesphere添加新节点

Kubesphere添加新节点

作者头像
jwangkun
发布2021-12-27 11:45:43
1.3K0
发布2021-12-27 11:45:43
举报
文章被收录于专栏:John Wong's Blog

KubeSphere 使用一段时间之后,由于工作负载不断增加,您可能需要水平扩展集群。自 KubeSphere v3.0.0 起,您可以使用全新的安装程序 KubeKey 将新节点添加到集群。从根本上说,该操作是基于 Kubelet 的注册机制。换言之,新节点将自动加入现有的 Kubernetes 集群。KubeSphere 支持混合环境,这意味着新添加的主机操作系统可以是 CentOS 或者 Ubuntu。若要水平扩展多节点集群,操作步骤基本相同。

准备工作

添加工作节点

使用 KubeKey 检索集群信息。以下命令会创建配置文件 (sample.yaml)。

代码语言:javascript
复制
./kk create config --from-cluster 

备注 如果您的机器上已有配置文件,就可以跳过此步骤。例如,若要将节点添加到由 KubeKey 设置的多节点集群,如果您没有删除该集群,则可能仍拥有该配置文件。

在配置文件中,将新节点的信息放在 hostsroleGroups 之下。该示例添加了两个新节点(即 node1node2)。这里的 master1 是现有节点。

代码语言:javascript
复制
··· spec:
   hosts:
      - {name: master1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: root,
password: Qcloud@123}   
      - {name: node1, address: 192.168.0.4, internalAddress: 192.168.0.4, user: root, 
password: Qcloud@123}  
      - {name: node2, address: 192.168.0.5, internalAddress: 192.168.0.5, user: root, 
password: Qcloud@123}  
    roleGroups:
      etcd:
      - master1
      master:     
      - master1    
       worker:     
       - node1     
       - node2 
       ··· 

备注

有关更多配置文件的信息,请参见编辑配置文件

添加新节点时,请勿修改现有节点的主机名。

用自己的主机名替换示例中的主机名。

执行以下命令:

代码语言:javascript
复制
./kk add nodes -f sample.yaml 

安装完成后,您将能够在 KubeSphere 的控制台上查看新节点及其信息。在集群管理页面,选择左侧菜单节点管理下的集群节点,或者执行命令 kubectl get node 以检查更改。

代码语言:javascript
复制

$ kubectl get node 
NAME STATUS     ROLES              AGE   VERSION 
master1 Ready   master,worker   20d   v1.17.9 
node1 Ready     worker            31h   v1.17.9 
node2 Ready     worker            31h   v1.17.9 

添加主节点以实现高可用

添加主节点的步骤与添加工作节点的步骤大体一致,不过您需要为集群配置负载均衡器。您可以使用任何云负载均衡器或者硬件负载均衡器(例如 F5)。另外,Keepalived 和 HAproxy、或者 Nginx 也是创建高可用集群的替代方案。

使用 KubeKey 创建配置文件。

代码语言:javascript
复制
./kk create config --from-cluster 

打开文件,可以看到一些字段预先填充了值。将新节点和负载均衡器的信息添加到文件中。以下示例供您参考:

代码语言:javascript
复制
apiVersion: kubekey.kubesphere.io/v1alpha1 kind: Cluster metadata:   name: sample spec:   hosts: # You should complete the ssh information of the hosts   - {name: master1, address: 172.16.0.2, internalAddress: 172.16.0.2, user: root, password: Testing123}   - {name: master2, address: 172.16.0.5, internalAddress: 172.16.0.5, user: root, password: Testing123}   - {name: master3, address: 172.16.0.6, internalAddress: 172.16.0.6, user: root, password: Testing123}   - {name: worker1, address: 172.16.0.3, internalAddress: 172.16.0.3, user: root, password: Testing123}   - {name: worker2, address: 172.16.0.4, internalAddress: 172.16.0.4, user: root, password: Testing123}   - {name: worker3, address: 172.16.0.7, internalAddress: 172.16.0.7, user: root, password: Testing123}   roleGroups:     etcd:     - master1     - master2     - master3     master:     - master1     - master2     - master3     worker:     - worker1     - worker2     - worker3   controlPlaneEndpoint: # If loadbalancer is used, 'address' should be set to loadbalancer's ip.     domain: lb.kubesphere.local     address: 172.16.0.253     port: 6443   kubernetes:     version: v1.17.9     imageRepo: kubesphere     clusterName: cluster.local     proxyMode: ipvs     masqueradeAll: false     maxPods: 110     nodeCidrMaskSize: 24   network:     plugin: calico     kubePodsCIDR: 10.233.64.0/18     kubeServiceCIDR: 10.233.0.0/18   registry:     privateRegistry: "" 

请注意 controlPlaneEndpoint 字段。

代码语言:javascript
复制
 controlPlaneEndpoint:     # If you use a load balancer, the address should be set to the load balancer's ip. domain: lb.kubesphere.local address: 172.16.0.253 port: 6443 

负载均衡器的域名默认为 lb.kubesphere.local,用于内部访问。您可以按需进行更改。

大多数情况下,您需要为 address 字段提供负载均衡器的私有 IP 地址。然而,不同的云厂商可能为负载均衡器进行不同的配置。例如,如果您在阿里云上配置服务器负载均衡 (SLB),该平台会为 SLB 分配一个公共 IP 地址,这意味着您需要为 address 字段指定公共 IP 地址。

port 字段指代 api-server 的端口。

保存文件并执行以下命令以应用配置。

代码语言:javascript
复制
./kk add nodes -f sample.yaml 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 添加工作节点
  • 添加主节点以实现高可用
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档