k8s -hpa

hpa定义弹性自动伸缩

1、横向伸缩,当定义的cpu、mem指标达到hpa值时,会触发pods伸展

2、安装metrics-server  收集pods的cpu。mem信息供hpa参照

     安装helm

     curl -fsSl -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3

用helm安装metrics-server

helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/
 helm repo update
 helm install metrics-server metrics-server/metrics-server   --namespace kube-system   --set args="{--kubelet-insecure-tls,--requestheader-allowed-names=,--requestheader-extra-headers-prefix=X-Remote-Extra-,-requestheader-group-headers=X-Remote-Group,--requestheader-username-headers=X-Remote-User,--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname}"   --set serviceAccount.create=true   --set serviceAccount.name=metrics-server

过程中发现pods未启动

kubectl describe pods metrics-server-7f8c89bbd6-m2g5n -n kube-system  发现镜像拉不下来。估计是网络的原因。

### 配置和使用Prometheus Adapter #### 安装Prometheus Adapter 为了使Prometheus Adapter正常工作,在Kubernetes集群中必须先部署Prometheus实例[^1]。一旦Prometheus成功运行并收集到所需的度量指标,就可以通过Helm Chart或其他方式来安装Prometheus Adapter。 对于基于Helm的安装过程,通常会涉及如下命令: ```bash helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm install prometheus-adapter prometheus-community/prometheus-adapter \ --namespace monitoring \ --set logLevel=debug \ --set customMetrics.enabled=true \ --set rules.default.rules.targetLimit=500 ``` 此脚本不仅启用了自定义度量的支持还设置了日志级别以便更好地调试任何潜在问题[^2]。 #### 自定义资源定义(CRD) Prometheus Adapter支持两种类型的CRD:`ServiceMonitor` 和 `PodMonitor` 。前者允许指定服务作为目标;后者则针对特定pod进行监控。当创建这些对象时,Adapter能够自动发现新的端点并将它们加入抓取列表中。 #### API聚合层集成 为了让API服务器识别来自Prometheus Adapter的新路径,需修改apiserver配置文件以包含外部插件选项: ```yaml apiVersion: apiservice.k8s.io/v1beta1 kind: APIService metadata: name: v1beta1.custom.metrics.k8s.io spec: service: namespace: "monitoring" name: "prometheus-adapter" group: "custom.metrics.k8s.io" version: "v1beta1" ``` 上述YAML片段展示了如何注册一个新的APIServices条目给定名称空间内的Prometheus Adapter服务[^4]。 #### 使用示例 假设已经有一个正在运行的应用程序,并希望根据CPU利用率调整其副本数量,则可以在Horizontal Pod Autoscaler (HPA) 中利用Prometheus Adapter提供的接口实现这一功能: ```yaml apiVersion: autoscaling/v2beta2 kind: HorizontalPodAutoscaler metadata: name: example-app-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: example-app-deployment minReplicas: 1 maxReplicas: 10 metrics: - type: Pods pods: metricName: cpu_usage_ratio_per_pod targetAverageValue: 70m ``` 在此例子中,`cpu_usage_ratio_per_pod`是一个由Prometheus Adapter暴露出来的自定义度量标准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值