ubuntu

Kubernetes 集群扩展在 Ubuntu 上如何实现

小樊
56
2025-09-25 10:32:44
栏目: 智能运维

Kubernetes集群在Ubuntu上的扩展方法
在Ubuntu系统上扩展Kubernetes集群主要分为添加Worker节点(横向扩展计算资源)和添加Control Plane节点(纵向扩展集群管理能力)两类场景,以下是具体实现步骤及注意事项:

一、前提准备

无论是添加Worker还是Control Plane节点,均需确保新节点满足以下基础条件:

  1. 系统环境:Ubuntu 20.04及以上版本,系统已更新(sudo apt update && sudo apt upgrade -y);
  2. 容器运行时:安装Docker(或其他兼容运行时,如containerd),并配置native.cgroupdriver=systemd(参考Ubuntu安装K8s的Docker配置步骤);
  3. Kubernetes组件:安装kubeadmkubeletkubectl(通过apt添加Kubernetes源安装,安装后执行sudo apt-mark hold kubelet kubeadm kubectl锁定版本);
  4. 网络连通性:所有节点(包括Master)之间能通过SSH互相访问,且防火墙开放Kubernetes组件端口(如6443、10250等);
  5. 关闭Swap:执行sudo swapoff -a临时关闭,编辑/etc/fstab注释swap行永久关闭(Swap会影响Kubernetes性能)。

二、添加Worker节点(横向扩展计算资源)

Worker节点用于运行容器化应用Pod,是最常见的扩展方式。步骤如下:

  1. 在Master节点获取Join命令
    若Master节点未保存初始Join命令,可通过以下命令重新生成:
    kubeadm token create --print-join-command
    
    输出结果类似:
    kubeadm join <Master节点IP>:6443 --token <随机Token> --discovery-token-ca-cert-hash sha256:<证书哈希>
    
  2. 在Worker节点执行Join命令
    将Master节点生成的Join命令复制到Worker节点,以sudo权限执行。执行成功后,Worker节点会自动向Master注册。
  3. 验证节点状态
    在Master节点执行以下命令,查看Worker节点是否处于Ready状态:
    kubectl get nodes
    
    若Worker节点状态显示为Ready,则表示扩展成功。

三、添加Control Plane节点(纵向扩展管理能力)

Control Plane节点负责集群管理(如调度、API服务、数据存储),适用于需要提升集群管理能力或实现高可用的场景。步骤如下:

  1. 在Master节点备份etcd数据
    etcd是Kubernetes的核心数据存储,备份可防止数据丢失:
    ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot save /tmp/etcd-snapshot.db
    
  2. 在新增Control Plane节点安装组件
    参考Ubuntu安装K8s的步骤,在新增节点安装kubeadmkubeletkubectl,并确保系统环境满足要求。
  3. 在Master节点生成Join命令(带证书哈希)
    执行以下命令生成包含etcd证书哈希的Join命令:
    kubeadm token create --certificate-key $(kubeadm certs certificate-key) | sudo tee /tmp/join-command.sh
    
    内容类似:
    kubeadm join <Master节点IP>:6443 --token <Token> --discovery-token-ca-cert-hash sha256:<哈希> --control-plane --certificate-key <证书Key>
    
  4. 在新增Control Plane节点执行Join命令
    将生成的Join命令复制到新增节点,以sudo权限执行。执行后,新增节点会成为Control Plane节点。
  5. 验证Control Plane状态
    在Master节点执行以下命令,查看Control Plane节点是否处于Ready状态:
    kubectl get nodes
    kubectl get componentstatuses
    
    若所有Control Plane节点状态正常,则扩展成功。

四、扩展后的验证与优化

  1. 验证集群状态
    执行kubectl get nodes确认所有节点状态为Ready;执行kubectl get componentstatuses检查Master组件(如API Server、Controller Manager)是否正常。
  2. 监控集群性能
    使用kubectl top nodes查看节点资源使用情况,通过Prometheus+Grafana等工具监控集群指标(如CPU、内存、网络)。
  3. 配置高可用(可选)
    若需提升集群可用性,可部署多个Control Plane节点,并配置负载均衡(如Nginx、HAProxy)将API请求分发到多个Master节点。

注意事项

0
看了该问题的人还看了