首页主机资讯Kubernetes 集群扩展在 Ubuntu 上如何实现

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

时间2025-10-01 23:05:04发布访客分类主机资讯浏览209
导读:Kubernetes集群在Ubuntu上的扩展方法 在Ubuntu系统上扩展Kubernetes集群主要分为添加Worker节点(横向扩展计算资源)和添加Control Plane节点(纵向扩展集群管理能力)两类场景,以下是具体实现步骤及注...

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节点。

注意事项

  • 版本一致性:所有节点的Kubernetes版本需保持一致(建议使用相同大版本,如1.28.x),避免兼容性问题;
  • 网络插件:若集群已部署网络插件(如Calico、Flannel),添加节点后无需重新部署,插件会自动为新节点配置网络;
  • 自动扩展:如需根据负载自动调整节点数量,可配置Cluster Autoscaler(需配合云服务商或裸金属集群使用)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Kubernetes 集群扩展在 Ubuntu 上如何实现
本文地址: https://pptw.com/jishu/716349.html
Ubuntu Kubernetes 网络策略如何设置 如何在 Ubuntu 上使用 Kubernetes Dashboard

游客 回复需填写必要信息