前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TKE nginx-ingress实例禁用HPA参考

TKE nginx-ingress实例禁用HPA参考

原创
作者头像
白鹏飞
修改2023-06-14 20:28:31
4290
修改2023-06-14 20:28:31
举报
文章被收录于专栏:拥抱云原生拥抱云原生

一 背景介绍

TKE容器服务,支持用户部署nginx-ingress 实例来实现7层的负载均衡。创建实例时,如果用户选择自定义Deployment+HPA部署,平台侧会自动下发一个HPA对象,来自动伸缩nginx控制器副本。

后续使用期间,如果用户手动删除了该HPA对象,随着平台API-Server滚动更新或者nginx-controller-operator pod重启,系统内部会再次对账,重新下发这个HPA。新下发的HPA可能会伸缩nginx controller pod数量,对业务造成影响。

站在使用角度,用户如果不再需要该HPA,可参考以下内容禁用HPA的创建,规避上述风险。

二 禁用nginx-ingress HPA方法

1 登陆集群

(1)您可以选择,控制台直接登陆集群worker node(CVM机器);

(2)也可以使用SSH,直连workerd node(CVM机器)——需要机器有外网IP并放通安全组;

备注:这里请确保有集群管理员权限,来进行kubectl 操作。

2 获取nginx-ingress实例

kubectl get nginxingresses,可以获取集群内部所有的nginx-ingress 实例对象。

代码语言:javascript
复制
$ kubectl get nginxingresses
NAME                AGE
nginx-001           318d
nginx-ingress-002   120d

3 禁用HPA

假设用户删除了nginx-001 的HPA,日常不再使用它来伸缩nginx 控制器,编辑实例nginx-001,进入编辑模式:

代码语言:javascript
复制
$ kubectl edit nginxingresses nginx-001  

# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: cloud.tencent.com/v1alpha1
kind: NginxIngress
metadata:
  creationTimestamp: "2022-07-30T13:03:28Z"
  generation: 1
  name: nginx-001
  resourceVersion: "1945754174"
  selfLink: /apis/cloud.tencent.com/v1alpha1/nginxingresses/nginx-001
  uid: 98fe81ae-4c0b-47a1-8f9b-667fdf3aba80
spec:
  ingressClass: nginx-001
  service:
    annotation:
      service.kubernetes.io/qcloud-loadbalancer-clusterid: ***
      service.kubernetes.io/qcloud-loadbalancer-internal-subnetid: ***
      service.kubernetes.io/qcloud-loadbalancer-internet-charge-type: TRAFFIC_POSTPAID_BY_HOUR
      tke.cloud.tencent.com/networks: tke-route-eni
      tke.cloud.tencent.com/vpc-ip-claim-delete-policy: Never
    type: LoadBalancer
  workLoad:
    hpa:
      enable: true
      maxReplicas: 2
      metrics:
      - pods:
          metricName: k8s_pod_rate_cpu_core_used_limit
          targetAverageValue: "80"
        type: Pods
      minReplicas: 1
    template:
      affinity:
        nodeAffinity: {}
      container:
        image: ccr.ccs.tencentyun.com/paas/nginx-ingress-controller:v0.49.3
        resources:
          limits:
            cpu: "0.5"
            memory: 1024Mi
          requests:
            cpu: "0.25"
            memory: 256Mi
    type: deployment

只有一行改动,编辑 spec.workLoad.hpa.enable 为 false 就可以了 ,截图如下:

添加描述

参考vi 命令,保存生效即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 背景介绍
  • 二 禁用nginx-ingress HPA方法
    • 1 登陆集群
      • 2 获取nginx-ingress实例
        • 3 禁用HPA
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档