10. K8s 弹性伸缩

1.HPA

(Horizontal Pod Autoscaler)是用来控制Pod水平伸缩的控制器,HPA周期性检查Pod的度量数据,计算满足HPA资源所配置的目标数值所需的副本数量,进而调整目标资源(如Deployment)的replicas字段。



想要做到自动弹性伸缩,先决条件就是能感知到各种运行数据,例如集群节点、Pod、容器的CPU、内存使用率等等。而这些数据的监控能力Kubernetes也没有自己实现,是通过Metrics Server采集的。

2.Metrics Server

下载官方yaml文件

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

替换image的下载位置为docker-hub的镜像

sed -r -i '/image:/s@(image: ).*@\1bitnami/metrics-server:latest@' components.yaml

不验证客户端证书

sed -i -r '/kubelet-use-node-status-port/a\ \ \ \ \ \ \ \ - --kubelet-insecure-tls' components.yaml

开放Pod 可以使用宿主机的网络名字空间

sed -i -r '/containers:/i\      hostNetwork: true' components.yaml

拉起Metrics Server

kubectl apply -f components.yaml

验证Pod拉起正常



验证top命令

kubectl top nodes
kubectl top pods

你可能感兴趣的:(10. K8s 弹性伸缩)