一. 资源监控
二. metrics-server资源下载配置
官网:资源下载:https://github.com/kubernetes-incubator/metrics-server
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
1. 将文件中所需要的镜像路径修改下载并上传到仓库 vim.components.yaml
docker pull bitnami/metrics-server:0.6.2
docker tag bitnami/metrics-server:0.6.2 reg.westos.org/library/metrics-server:0.6.2
docker push reg.westos.org/library/metrics-server:0.6.2
2. 添加这个选项
3. 应用文件后查看是否成功
部署时可能遇到的错误
三.dashboard资源下载配置
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
1. 将文件中所需要镜像下载并上传到仓库 vim recommended.yaml
docker pull kubernetesui/metrics-scraper:v1.0.8
docker tag kubernetesui/metrics-scraper:v1.0.8 reg.westos.org/kubernetesui/metrics-scraper:v1.0.8
docker push reg.westos.org/kubernetesui/metrics-scraper:v1.0.8docker pull kubernetesui/dashboard:v2.7.0
docker tag kubernetesui/dashboard:v2.7.0 reg.westos.org/kubernetesui/dashboard:v2.7.0
docker push reg.westos.org/kubernetesui/dashboard:v2.7.0
2. 应用文件查看是否成功
四.hpa工作原理
HorizontalPodAutoscaler 演练 | KubernetesHorizontalPodAutoscaler(简称 HPA ) 自动更新工作负载资源(例如 Deployment 或者 StatefulSet), 目的是自动扩缩工作负载以满足需求。水平扩缩意味着对增加的负载的响应是部署更多的 Pod。 这与“垂直(Vertical)”扩缩不同,对于 Kubernetes, 垂直扩缩意味着将更多资源(例如:内存或 CPU)分配给已经为工作负载运行的 Pod。如果负载减少,并且 Pod 的数量高于配置的最小值, HorizontalPodAutoscaler 会指示工作负载资源(Deployment、StatefulSet 或其他类似资源)缩减。本文档将引导你完成启用 HorizontalPodAutoscaler 以自动管理示例 Web 应用程序的扩缩的示例。 此示例工作负载是运行一些 PHP 代码的 Apache httpd。准备开始 你必须拥有一个 Kubernetes 的集群,同时你必须配置 kubectl 命令行工具与你的集群通信。 建议在至少有两个不作为控制平面主机的节点的集群上运行本教程。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面的 Kubernetes 练习环境之一:Killercoda 玩转 Kubernetes 你的 Kubernetes 服务器版本必须不低于版本 1.23. 要获知版本信息,请输入 kubectl version. 如果你运行的是旧版本的 Kubernetes,请参阅该版本的文档版本 (可用的文档版本)。按照本演练进行操作,你需要一个部署并配置了 Metrics Server 的集群。 Kubernetes Metrics Server 从集群中的 kubelets 收集资源指标, 并通过 Kubernetes API 公开这些指标, 使用 APIService 添加代表指标读数的新资源。https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
1. 下载并上传镜像到私有仓库
2.创建编辑文件 vim hpa.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-apache
spec:
selector:
matchLabels:
run: php-apache
replicas: 1
template:
metadata:
labels:
run: php-apache
spec:
containers:
- name: php-apache
image: hpa-example
ports:
- containerPort: 80
resources:
limits:
cpu: 500m
requests:
cpu: 200m
---
apiVersion: v1
kind: Service
metadata:
name: php-apache
labels:
run: php-apache
spec:
ports:
- port: 80
selector:
run: php-apache
3. 创建hpa动态弹缩
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
4. 增加负载 不断给CPU施压
kubectl run -i --tty load-generator --rm --image=busybox --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
触发hpa扩容pod 此时查看到已经拉伸到8个pod
pod负载上升
5. 停止施压
ctrl+c
此时发现占有CUP会下降
此时看到仍然没有缩容因为有冷却五分钟
到时间后在查看已经缩容为1个
实验完成直接删除pod即可
多项量度指标
修改文件,增加内存指标
kubectl get hpa php-apache -o yaml > hpa-v2.yaml