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

Ubuntu上Kubernetes集群如何扩展

时间2025-10-27 12:01:03发布访客分类主机资讯浏览1022
导读:Ubuntu上Kubernetes集群扩展指南 Kubernetes集群扩展主要分为水平扩展(添加节点)、**垂直扩展(增加节点资源)和自动扩展(HPA)**三类,以下是针对Ubuntu系统的详细操作步骤及注意事项: 一、水平扩展:添加新节...

Ubuntu上Kubernetes集群扩展指南

Kubernetes集群扩展主要分为水平扩展(添加节点)、**垂直扩展(增加节点资源)自动扩展(HPA)**三类,以下是针对Ubuntu系统的详细操作步骤及注意事项:

一、水平扩展:添加新节点

水平扩展是通过增加工作节点提升集群整体容量,适用于需要处理更多工作负载的场景。

1. 准备新节点

  • 系统要求:选择一台Ubuntu服务器(建议22.04及以上版本),确保满足Kubernetes最低硬件配置(如2核CPU、2GB内存、≥10GB存储)。
  • 安装基础组件
    # 更新软件包并安装Docker(容器运行时)
    sudo apt-get update
    sudo apt-get install -y docker.io
    sudo systemctl enable --now docker
    
    # 安装kubeadm、kubelet、kubectl(Kubernetes核心工具)
    sudo apt-get install -y apt-transport-https curl
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo apt-get update
    sudo apt-get install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl  # 锁定版本避免自动升级
    

2. 获取集群加入凭证

在**主节点(Master)**上执行以下命令,生成用于新节点加入集群的命令:

kubeadm token create --print-join-command

输出示例:

sudo kubeadm join 192.168.1.100:6443 --token abcdef.1234567890 --discovery-token-ca-cert-hash sha256:1234567890abcdef...

注意:请复制完整命令(包含IP、端口、token及证书哈希),后续需在新节点上执行。

3. 新节点加入集群

将主节点生成的kubeadm join命令粘贴到新节点终端,执行后等待节点初始化完成:

sudo kubeadm join 192.168.1.100:6443 --token abcdef.1234567890 --discovery-token-ca-cert-hash sha256:1234567890abcdef...

4. 验证节点状态

回到主节点,运行以下命令查看节点列表,确认新节点状态为Ready

kubectl get nodes

输出示例:

NAME           STATUS   ROLES    AGE   VERSION
k8s-master-01  Ready    master   10d   v1.28.2
k8s-worker-03  Ready    <
    none>
       5m    v1.28.2  # 新节点已加入

5. 部署网络插件(可选但必要)

若集群未安装网络插件(如Calico),需在新节点上部署以确保Pod间通信:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

等待插件状态变为Running

kubectl get pods -n calico-system

二、垂直扩展:增加节点资源

垂直扩展是通过调整现有节点的资源限制(如CPU、内存)提升单节点承载能力,适用于节点资源不足的场景。

1. 编辑kubelet配置

修改节点上的kubelet配置文件(默认路径/var/lib/kubelet/config.yaml),调整资源分配策略:

# 示例:开启CPU管理策略为static(允许Pod独占CPU核心)
cpuManagerPolicy: static
# 示例:调整Pod资源限制(需根据节点实际资源调整)
resolvConf: /run/systemd/resolve/resolv.conf

2. 重启kubelet使配置生效

sudo systemctl daemon-reload
sudo systemctl restart kubelet

注意:垂直扩展需确保节点硬件支持(如CPU核心数足够),且操作可能导致节点短暂不可用,建议在低负载时段进行。

三、自动扩展:Horizontal Pod Autoscaler(HPA)

HPA可根据Pod的CPU/内存使用率自动调整副本数量,实现动态扩缩容,适用于流量波动大的应用。

1. 确保Metrics Server已安装

HPA依赖Metrics Server收集资源指标,若未安装,执行以下命令:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

等待Metrics Server启动:

kubectl get pods -n kube-system | grep metrics-server

2. 创建HPA资源

通过kubectl autoscale命令或YAML文件创建HPA。以下命令示例为your-application Deployment设置自动扩缩容规则:

kubectl autoscale deployment your-application --cpu-percent=80 --min=1 --max=10

参数说明:

  • --cpu-percent=80:当Pod平均CPU使用率超过80%时触发扩容;
  • --min=1:最小副本数为1;
  • --max=10:最大副本数为10。

3. 验证HPA状态

查看HPA详情,确认其是否正常工作:

kubectl get hpa

输出示例:

NAME              REFERENCE                     TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
your-application  Deployment/your-application   45%/80%   1         10        3          10m

说明TARGETS列表示当前Pod的CPU使用率(45%)与目标阈值(80%)的比值,若超过阈值,HPA会自动增加副本数。

四、扩展注意事项

  1. 网络配置:确保新节点与集群内所有节点的防火墙允许Kubernetes通信(如6443端口用于API Server、10250端口用于kubelet API、30000-32767端口用于NodePort服务)。
  2. 版本兼容性:所有节点的Kubernetes版本需保持一致(建议主节点与工作节点版本差≤1个小版本),避免兼容性问题。
  3. 证书一致性:若使用自签名证书,新节点需将主节点/etc/kubernetes/pki目录下的证书复制到相同路径,确保证书信任链有效。
  4. 负载均衡:多Master节点场景需配置负载均衡器(如HAProxy、Nginx)代理API Server请求,避免单点故障。
  5. 监控与日志:扩容后需通过Prometheus、Grafana等工具监控集群状态(如节点资源使用率、Pod状态),及时排查异常。

通过以上步骤,您可快速扩展Ubuntu上的Kubernetes集群,满足业务增长需求。操作前建议备份重要数据,并在测试环境验证流程的正确性。

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


若转载请注明出处: Ubuntu上Kubernetes集群如何扩展
本文地址: https://pptw.com/jishu/735565.html
linux中phpstorm使用技巧有哪些 Debian getconf命令兼容性问题

游客 回复需填写必要信息