惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - 勤劳の洗碗机

pyinstaller打包exe故障解析 curl 访问k8s api statefulset 及storageclass hadoop 伪分布式 完全分布式 及HA部署 LDAP部署及实践 docker 制作自己的mysql镜像 k8s 压测工具之perf-test mysql相关(三)、主从复制 shell执行mysql脚本 分布式minio image-syncer 误删libc.so.6文件补救 docker 使用bind 动态扩容pvc k8s备份工具之velero jmeter使用 docker 制作ssh镜像 docker 制作自定义的nginx镜像 docker部署sharding-proxy
k8s 之HPA应用
勤劳の洗碗机 · 2020-12-02 · via 博客园 - 勤劳の洗碗机

1、创建测试deployment

apiVersion: v1
kind: Service
metadata:
  name: my-app
  namespace: default
spec:
  type: NodePort
  selector: 
    app: my-app
    release: canary
  ports:
  - name: http
    nodePort: 30327
    port: 80
  
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deploy
  namespace: default
spec:
  replicas: 3
  selector: 
    matchLabels:
      app: my-app
      release: canary
  template:
    metadata:
      labels:
        app: my-app
        release: canary
    spec:
      containers:
      - name: my-app
        image: ikubernetes/myapp:v2
        ports: 
        - name: http
          containerPort: 80
        resources:
requests:
cpu: 128m
memory: 128Mi
limits:
cpu: 128m
memory: 128Mi
kubectl create -f app.yaml
[root@10 ingress]#  kubectl get pod | grep my-app
my-app-deploy-76f86b954b-5r5n7                                    1/1     Running            0          3m25s
my-app-deploy-76f86b954b-8n2dp                                    1/1     Running            0          3m25s
my-app-deploy-76f86b954b-d95d8                                    1/1     Running            0          3m25s
[root@10 ingress]# kubectl get svc | grep my-app 
my-app                                                NodePort       192.168.192.192   <none>        80:30327/TCP                                                   3m29s
[root@10 ingress]# 

2、创建HPA

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: my-app-hpa # 名称
  namespace: default #k8s命名空间
spec:
  maxReplicas: 10  # 最大副本数
  minReplicas: 3   # 最小副本数
  scaleTargetRef:   
    apiVersion: apps/v1beta1
    kind: Deployment  
    name: my-app-deploy   # 监控名为my-app-deploy的Deployment
  targetCPUUtilizationPercentage: 20  # cpu 阈值
kubectl create -f hap.yaml

[root@10 zhangpan]# kubectl get hpa
NAME         REFERENCE                  TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
my-app-hpa   Deployment/my-app-deploy   <unknown>/80%   2         10        3          77s
[root@10 zhangpan]# 

也可以直接用命令创建hpa

kubectl autoscale deployment myapp --min=2 --max=10 --cpu-percent=20

如果出现unknown,可以查看原始deployment的resource有没有设置cpu的限制,或者没有找到deployment,也有可能是由于heapster组件没有安装,也有可能是数据没有检测到,默认heapster采集时间为1分,需要稍等一会看一下状态。

可以用kubectl describe hpa my-app-hpa 查看具体原因

正常后显示如下:

[root@10 zhangpan]# kubectl get hpa
NAME         REFERENCE                  TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
my-app-hpa   Deployment/my-app-deploy   0%/20%    2         10        2          6m29s
[root@10 zhangpan]#