Kubernetes在Ubuntu上的扩展方法
Kubernetes在Ubuntu上的扩展主要分为节点扩展(水平/垂直)和Pod自动扩缩容两类,以下是详细操作步骤及注意事项:
节点扩展是通过添加新节点或调整现有节点资源来提升集群承载能力的方式,分为水平扩展(添加节点)和垂直扩展(增加节点资源)。
水平扩展是最常见的扩展方式,通过添加新Ubuntu节点(物理机或虚拟机)来扩大集群规模,步骤如下:
sudo apt-get update sudo apt-get install -y docker.io # 安装Docker sudo systemctl enable --now docker 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 # 安装Kubernetes组件 sudo apt-mark hold kubelet kubeadm kubectl # 锁定组件版本,避免意外升级 kubeadm token create --print-join-command 输出示例:sudo kubeadm join 192.168.1.100:6443 --token abcdef.1234567890 --discovery-token-ca-cert-hash sha256:1234567890abcdefReady(表示节点已成功加入集群并可接收Pod调度):kubectl get nodes kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml 部署完成后,网络插件会自动为新节点配置网络,确保Pod间通信正常。垂直扩展是通过调整现有Ubuntu节点的资源限制(如CPU、内存)来提升节点承载能力,适用于节点硬件可升级的场景,步骤如下:
/var/lib/kubelet/config.yaml),调整cpuManagerPolicy(CPU管理策略)或resourceLimits(资源限制)。例如,将CPU管理策略改为static(静态策略,允许Pod独占CPU核心):cpuManagerPolicy: static sudo systemctl restart kubelet Pod自动扩缩容是根据应用负载(如CPU、内存使用率)动态调整Pod副本数量的机制,适用于需要弹性伸缩的应用场景(如Web服务、批处理任务)。
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml kubectl autoscale命令或YAML文件创建HPA。以下命令示例表示:当your-application Deployment的Pod平均CPU使用率超过80%时,自动增加副本数(最多10个),最少保持1个:kubectl autoscale deployment your-application --cpu-percent=80 --min=1 --max=10 或通过YAML文件(hpa.yaml)创建:apiVersion: autoscaling/v2beta2 kind: HorizontalPodAutoscaler metadata: name: your-application-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: your-application minReplicas: 1 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 80 应用HPA配置:kubectl apply -f hpa.yaml kubectl get hpa 若负载下降,HPA会自动减少Pod副本数;若负载上升,则增加副本数,确保应用性能稳定。/etc/kubernetes/pki目录需与主节点保持一致(或通过kubeadm自动同步),否则无法通过认证。