Kubernetes在Ubuntu上的扩展性实现
一、扩展层次与总体思路
二、集群规模扩展
使用 kubeadm 扩容节点(通用 Ubuntu 场景)
sudo kubeadm token create --print-join-command。sudo kubeadm join <control-plane-host>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>。kubectl get nodes 确认新节点 Ready。以上流程适用于从单机到多节点、再到更大规模集群的演进。使用 Juju + MAAS 管理集群节点(自动化与资源约束)
juju add-unit kubernetes-master -n 3(按需增减单元数)。juju add-unit kubernetes-worker -n 2;可同时设定资源约束(如:--constraints "mem=6G cores=2"),或统一设置:juju set-constraints kubernetes-worker cores=2 mem=6G root-disk=16G。juju run-action kubernetes-worker/3 pause --wait,待工作负载迁移后再移除,降低业务中断风险。三、工作负载扩展
手动扩缩容
kubectl scale --replicas=<数量> deployment/<应用名>,适合突发流量或维护窗口的即时调整。自动扩缩容
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: your-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: your-app
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
应用:kubectl apply -f hpa.yaml。HPA 适合应对周期性或不可预期流量波动。四、实践建议