k8s的HPA

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 实现pod的自动伸缩

依赖metrics-server& 安装metrics

  1. git clone https://github.com/kubernetes-incubator/metrics-server.git
  2. cd metrics-server/deploy/1.8+/
  3. 修改deployment的参数
增加
- --metric-resolution=30s
- --kubelet-preferred-address-types=InternalIP,
  1. kubectl create -f .

部署完成问题排查

  1. 查看apiserver
kubectl get apiservices

v1beta1.metrics.k8s.io                 kube-system/metrics-server   False (FailedDiscoveryCheck)   31m
  1. 查看 apiservices/v1beta1.metrics.k8s.io
kubectl describe apiservices/v1beta1.metrics.k8s.io -n kube-system
Name:         v1beta1.metrics.k8s.io
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  apiregistration.k8s.io/v1
Kind:         APIService
Metadata:
  Creation Timestamp:  2019-12-19T05:43:01Z
  Resource Version:    1321294
  Self Link:           /apis/apiregistration.k8s.io/v1/apiservices/v1beta1.metrics.k8s.io
  UID:                 77883025-7c16-4c5f-8939-e3036d81118f
Spec:
  Group:                     metrics.k8s.io
  Group Priority Minimum:    100
  Insecure Skip TLS Verify:  true
  Service:
    Name:            metrics-server
    Namespace:       kube-system
    Port:            443
  Version:           v1beta1
  Version Priority:  100
Status:
  Conditions:
    Last Transition Time:  2019-12-19T05:43:01Z
    Message:               failing or missing response from https://10.201.2.18:443/apis/metrics.k8s.io/v1beta1: Get https://10.201.2.18:443/apis/metrics.k8s.io/v1beta1: dial tcp 10.201.2.18:443: connect: connection refused
    Reason:                FailedDiscoveryCheck
    Status:                False
    Type:                  Available
Events:                    <none>


其中10.201.2.18 是mestric的svc地址,所以原因为master节点连不通mestric的svc地址,需要在master节点部署kube-proxy

实验自动伸缩

  1. 命令
kubectl autoscale deployment nginx --cpu-percent=50 --min=1 --max=10
  1. 查看hpa
kubectl get hpa
kubectl top node
kubectl top pod
  1. yaml文件
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: nginx
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: nginx
  minReplicas: 1
  maxReplicas: 10
  targetCPUUtilizationPercentage: 50
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
Prometheus Kubernetes 监控
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
|
3月前
|
Kubernetes 容器 Perl
在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
|
3月前
|
Kubernetes 监控 Perl
在K8S中,hpa原理是什么?
在K8S中,hpa原理是什么?
|
3月前
|
Kubernetes 监控 API
在K8S中,如何使用HPA实现自动扩缩容?
在K8S中,如何使用HPA实现自动扩缩容?
|
3月前
|
Prometheus Kubernetes API
在k8S中,HPA V1 V2的区别是什么?
在k8S中,HPA V1 V2的区别是什么?
|
3月前
|
Kubernetes 监控 API
在K8S中,HPA原理是什么?
在K8S中,HPA原理是什么?
|
Kubernetes 应用服务中间件 API
kubernetes HPA-超详细中文官方文档
kubernetes HPA-超详细中文官方文档
|
6月前
|
Kubernetes jenkins 持续交付
容器服务ACK常见问题之HPA触发记录查看失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
Kubernetes 测试技术 Perl
16-Kubernetes-Pod控制器详解-Horizontal Pod Autoscaler(HPA)
16-Kubernetes-Pod控制器详解-Horizontal Pod Autoscaler(HPA)
|
存储 Kubernetes 关系型数据库
【Kubernetes的Configmap、SecretMetric service及HPA、Wordpress应用Mysql主从PVPVCSCHPA】
【Kubernetes的Configmap、SecretMetric service及HPA、Wordpress应用Mysql主从PVPVCSCHPA】
115 0

推荐镜像

更多