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自动同步),否则无法通过认证。