k8s的HPA

简介: 实现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
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Prometheus Kubernetes 监控
深入探索Kubernetes中的Pod自动扩展(Horizontal Pod Autoscaler, HPA)
深入探索Kubernetes中的Pod自动扩展(Horizontal Pod Autoscaler, HPA)
|
Prometheus Kubernetes 监控
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
560 1
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
|
Kubernetes 应用服务中间件 API
kubernetes HPA-超详细中文官方文档
kubernetes HPA-超详细中文官方文档
|
Kubernetes 容器 Perl
在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
|
Kubernetes 监控 Perl
在K8S中,hpa原理是什么?
在K8S中,hpa原理是什么?
|
Kubernetes 监控 API
在K8S中,如何使用HPA实现自动扩缩容?
在K8S中,如何使用HPA实现自动扩缩容?
|
Prometheus Kubernetes API
在k8S中,HPA V1 V2的区别是什么?
在k8S中,HPA V1 V2的区别是什么?
|
Kubernetes 监控 API
在K8S中,HPA原理是什么?
在K8S中,HPA原理是什么?
|
Kubernetes jenkins 持续交付
容器服务ACK常见问题之HPA触发记录查看失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
存储 Kubernetes 关系型数据库
【Kubernetes的Configmap、SecretMetric service及HPA、Wordpress应用Mysql主从PVPVCSCHPA】
【Kubernetes的Configmap、SecretMetric service及HPA、Wordpress应用Mysql主从PVPVCSCHPA】
278 0

热门文章

最新文章