77: kubernetes dashboard、kubernetes 监控prometheus、kubernetes HPA集群、总结和答疑

Top

NSD CLOUD DAY10

  1. 案例1:安装部署metrics-server
  2. 案例2:安装部署dashboard
  3. 案例3:安装部署pometheus(一)
  4. 案例4:安装部署pometheus(二)
  5. 案例5:配置grafana
  6. 案例6:HPA集群

1 案例1:安装部署metrics-server

1.1 问题

本案例要求安装部署metrics-server,具体要求如下:

  1. 修改 apiserver 的启动参数,添加聚合API
  2. 配置文件路径 /etc/kubernetes/manifests/kube-apiserver.yaml
  3. - --enable-aggregator-routing=true
  4. 重启 kubelet 服务
  5. 导入镜像,部署metrics-server
  6. pdb.yaml, rbac.yaml
  7. deployment.yaml, service.yaml,apiservice.yaml
  8. 验证 kubectl top node

1.2 方案

metrics是一个监控系统资源使用的插件,可以监控node节点上的cpu、内存的使用率,或pod对资源的占用率,通过对资源占用的了解,可以更加合理的部署容器应用

1.3 步骤

实现此案例需要按照如下步骤进行。

没有安装部署metrics之前查看node节点信息会失败。

[root@master ~]# kubectl  top  node
Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)

步骤一:修改kube-apiserver配置文件(在master主机操作)

1)开启聚合服务

默认K8S不支持聚合服务就没法用metrics,这里首先需要修改配置文件开启该功能。

[root@master ~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml
#在该文件中找spec.containers.command ,在它的最下面手动添加如下一行内容:
- --enable-aggregator-routing=true

[root@master ~]# systemctl restart kubelet #重启服务

[root@master ~]# kubectl -n kube-system get pod
kube-apiserver-master -o yaml |grep enable-aggregator-routing
#修改完成后,将kube-apiserver的配置导出查看是否有刚刚添加的参数,有就代表成功了
#这一步是验证的操作

2)设置kubelet证书


[root@master ~]# vim /var/lib/kubelet/config.yaml    #在文件末尾手动添加如下一行
serverTLSBootstrap: true

[root@master ~]# systemctl restart kubelet #重启服务

等待几分钟后就能看到了

[root@master ~]# kubectl get certificatesigningrequests
NAME AGE REQUESTOR CONDITION
csr-nvd65 8m system:node:master Pending
csr-6qz7b 4m34s system:node:node-0003 Pending
csr-rft2l 4m46s system:node:node-0002 Pending
csr-t5fvc 5m2s system:node:node-0001 Pending
#这里查看到所有的主机都在等待证书的签发
#master主机的证书目前状态为Pending,代表正在等待证书的签发
#node-0003主机的证书目前状态为Pending,代表正在等待证书的签发
#node-0002主机的证书目前状态为Pending,代表正在等待证书的签发
#node-0001主机的证书目前状态为Pending,代表正在等待证书的签发

重要:修改配置文件开启证书后,所有主机的证书都没有签发,下面需要给所有主机都签发证书(等于是给证书签个名才能用)


注意:是所有主机的证书都需要签发,如何签发呢?具体语法格式如下:


kubectl certificate approve 名称


这里最后的名称就是上面kubectl get certificatesigningrequests命令查看到的名称


[root@master ~]# kubectl certificate approve csr-nvd65	# 签发证书
[root@master ~]# kubectl certificate approve csr-6qz7b # 签发证书
[root@master ~]# kubectl certificate approve csr-rft2l # 签发证书
[root@master ~]# kubectl certificate approve csr-t5fvc # 签发证书
#注意:最后的名称不能照抄,一定要自己通过kubectl get certificatesigningrequests查看

再次查看证书状态


[root@master ~]# kubectl get certificatesigningrequests
NAME AGE REQUESTOR CONDITION
csr-nvd65 16m system:node:master Approved,Issued
csr-t5fvc 13m system:node:node-0001 Approved,Issued
csr-rft2l 13m system:node:node-0002 Approved,Issued
csr-6qz7b 13m system:node:node-0003 Approved,Issued
#所有证书状态都是Approved(已经被签发了)

步骤二:安装metrics-server(在master主机操作)


1)导入镜像到私有镜像仓库(192.168.1.100服务器)


镜像及资源文件在云盘第四阶段kubernetes/v1.17.6/metrics/目录下,各位同学需要提前下载。


[root@master ~]# docker load -i metrics-server.tar.gz
[root@master ~]# docker images #查看metrics-server镜像的名称
[root@master ~]# docker tag 旧名称 192.168.1.100:5000/metrics-server:master
[root@master ~]# docker push 192.168.1.100:5000/metrics-server:master

2)修改资源文件


所有资源文件在云盘第四阶段kubernetes/v1.17.6/metrics/目录下,各位同学需要提前下载。


[root@master metrics]# vim deployment.yaml
29: image: 192.168.1.100:5000/metrics-server:master

该行原文指向官网地址,我们需要修改为自己的私有镜像仓库

启动metrics-server容器时就从私有仓库下载镜像然后再启动容器,否则默认是连接官网找镜像

3)依次创建所有资源

[root@master metrics]# kubectl apply -f rbac.yaml 
[root@master metrics]# kubectl apply -f pdb.yaml 
[root@master metrics]# kubectl create -f deployment.yaml 
[root@master metrics]# kubectl apply -f service.yaml 
[root@master metrics]# kubectl apply -f apiservice.yaml 

4)验证

[root@master metrics]# kubectl -n kube-system get pod   		# 验证POD
NAME             	    READY   	STATUS    	RESTARTS   AGE
metrics-server-xxx 	1/1  	Running 	     0          9m15s
... ...

[root@master metrics]# kubectl -n kube-system get apiservices # 验证API
NAME SERVICE AVAILABLE AGE
v1beta1.metrics.k8s.io kube-system/metrics-server True 15m

[root@master metrics]# kubectl top node
error: metrics not available yet # 你需要等几分钟,还没有收集数据

[root@master metrics]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master 73m 3% 1196Mi 68%
node-0001 20m 1% 729Mi 41%
… …



2 案例2:安装部署dashboard


2.1 问题


本案例要求安装部署dashboard,具体要求如下:



  1. 导入镜像到私有仓库
  • 修改配置文件recommended.yaml
  • 添加NodePort端口
  • 修改镜像地址
  • 部署dashboard
  • 创建管理用户admin-user
  • 使用token登录页面访问
  • 2.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:部署dashboard(在master主机操作)

    所有镜像及资源文件在云盘 kubernetes/v1.17.6/dashboard/目录,各位同学提前下载素材。

    1)导入镜像到私有镜像仓库(192.168.1.100服务器)

    镜像文件在云盘第四阶段kubernetes/v1.17.6/dashboard/目录下,各位同学需要提前下载。

    需要导入的镜像包括:

    • dashboard.tar.gz 主服务镜像
    • metrics-scraper.tar.gz 收集监控信息插件
    [root@master ~]# docker load  -i dashboard.tar.gz
    [root@master ~]# docker images			#查看dashboard镜像的名称
    [root@master ~]# docker tag  旧名称   192.168.1.100:5000/dashboard:v2.0.0
    [root@master ~]# docker push  192.168.1.100:5000/dashboard:v2.0.0
    

    [root@master ~]# docker load -i metrics-scraper.tar.gz
    [root@master ~]# docker images #查看metrics-scraper镜像的名称
    [root@master ~]# docker tag 旧名称 192.168.1.100:5000/metrics-scraper:v1.0.4
    [root@master ~]# docker push 192.168.1.100:5000/metrics-scraper:v1.0.4

    2)创建相关资源完成部署


    资源文件在云盘 kubernetes/v1.17.6/dashboard/目录,各位同学提前下载素材。


    [root@master dashboard]# vim recommended.yaml      #手动修改该文件
    spec:
    containers:
    - name: kubernetes-dashboard
    image: 192.168.1.100:5000/dashboard:v2.0.0 # 镜像地址
    spec:
    containers:
    - name: dashboard-metrics-scraper
    image: 192.168.1.100:5000/metrics-scraper:v1.0.4 # 镜像地址
    #默认是链接官网找镜像并启动容器,这里需要把镜像链接修改为私有仓库
    #这样以后创建资源会使用私有仓库中的镜像创建资源,启动容器

    3)验证


    浏览器访问任意节点IP的30090端口(http://任意节点:30090 端口


    )即可查看Web页面,效果如图-1所示。




    图-1



    4)创建管理用户


    素材在云盘 kubernetes/v1.17.6/dashboard/admin-token.yaml


    [root@master dashboard]# cat admin-token.yaml          #查看、学习资源文件

    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: admin-user
    namespace: kubernetes-dashboard

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
    #cold_bold name: admin-user
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: cluster-admin
    subjects:

    • kind: ServiceAccount
      name: admin-user
      namespace: kubernetes-dashboard

    [root@master dashboard]# kubectl create -f admin-token.yaml #创建资源

    5)查看登录的Token信息


    先通过get screts查看名称,该名称是随机的,然后再通过查询到的名称继续查询对应的Token信息。


    [root@master ~]# kubectl -n kubernetes-dashboard get secrets
    NAME TYPE
    admin-user-token-xxx kubernetes.io/service-account-token … …

    [root@master ~]# kubectl -n kubernetes-dashboard describe secrets
    … …
    token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjJyTE9nZWpWLWFhTXV6cnJla3U4aX
    NngxVTZjV2M5Y0FYOWR0ancifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9 … …

    再次使用浏览器访问任意节点IP的30090端口(http://任意节点:30090 端口


    )即可查看Web页面,输入Token,效果如图-2所示。




    图-2





    3 案例3:安装部署pometheus(一)


    3.1 问题


    本案例安装部署pometheus,具体要求如下:



    1. 安装Prometheus operator
  • 安装Prometheus adapter
  • 安装metrics-state
  • 安装node-exporter
  • 安装Prometheus server
  • 3.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:导入所有后续需要的镜像到私有镜像仓库(在master主机操作操作)

    所有镜像文件在云盘第四阶段kubernetes/v1.17.6/prometheus/images目录下,各位同学需要提前下载。

    需要导入的镜像包括:

    • prometheus.tar.gz
    • prometheus-operator.tar.gz
    • prometheus-config-reloader.tar.gz
    • prometheus-adapter.tar.gz
    • node-exporter.tar.gz
    • kube-rbac-proxy.tar.gz
    • kube-metrics.tar.gz
    • grafana.tar.gz
    • configmap-reload.tar.gz
    • alertmanager.tar.gz

    注意:tab修改标签时,只需要修改服务器即可,禁止修改镜像原来的名称与标签。

    [root@master ~]# docker load -i prometheus.tar.gz
    [root@master ~]# docker images			#查看镜像的名称
    [root@master ~]# docker tag  旧名称   192.168.1.100:5000/prometheus:v2.11.0
    [root@master ~]# docker push  192.168.1.100:5000/prometheus:v2.11.0
    

    [root@master ~]# docker load -i prometheus-operator.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/prometheus-operator:v0.35.1
    [root@master ~]# docker push 192.168.1.100:5000/prometheus-operator:v0.35.1

    [root@master ~]# docker load -i prometheus-config-reloader.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/prometheus-config-reloader:v0.35.1
    [root@master ~]# docker push
    192.168.1.100:5000/prometheus-config-reloader:v0.35.1

    [root@master ~]# docker load -i prometheus-adapter.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/prometheus-operator:v0.35.1
    [root@master ~]# docker push 192.168.1.100:5000/prometheus-operator:v0.35.1

    [root@master ~]# docker load -i node-exporter.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/node-exporter:v1.0.0
    [root@master ~]# docker push 192.168.1.100:5000/node-exporter:v1.0.0

    [root@master ~]# docker load -i kube-rbac-proxy.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/kube-rbac-proxy:v0.4.1
    [root@master ~]# docker push 192.168.1.100:5000/kube-rbac-proxy:v0.4.1

    [root@master ~]# docker load -i kube-metrics.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/kube-state-metrics:v1.9.2
    [root@master ~]# docker push 192.168.1.100:5000/kube-state-metrics:v1.9.2

    [root@master ~]# docker load -i alertmanager.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/grafana:6.4.3
    [root@master ~]# docker push 192.168.1.100:5000/grafana:6.4.3

    [root@master ~]# docker load -i configmap-reload.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/configmap-reload:v0.3.0
    [root@master ~]# docker push 192.168.1.100:5000/configmap-reload:v0.3.0

    [root@master ~]# docker load -i alertmanager.tar.gz
    [root@master ~]# docker images #查看镜像的名称
    [root@master ~]# docker tag
    旧名称 192.168.1.100:5000/alertmanager:v0.18.0
    [root@master ~]# docker push 192.168.1.100:5000/alertmanager:v0.18.0

    步骤二:修改资源文件部署各种容器服务(在master主机操作操作)


    所有资源的素材文件都在云盘第四阶段kubernetes/v1.17.6/Prometheus/目录下。各位同学需要提前下载整个目录到master主机。


    1)安装operator


    需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。


    [root@master prometheus]# vim setup/prometheus-operator-deployment.yaml
    27 - --config-reloader-image=192.168.1.100:5000/configmap-reload:v0.3.0
    28 - --prometheus-config-reloader=192.168.1.100:5000/prometheus-config-reloader:v0.35.1
    29 image: 192.168.1.100:5000/prometheus-operator:v0.35.1
    #提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。

    [root@master prometheus]# kubectl apply -f setup/

    2)安装prom-adapter


    需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。


    [root@master prometheus]# vim prom-adapter/prometheus-adapter-deployment.yaml
    28 image: 192.168.1.100:5000/k8s-prometheus-adapter-amd64:v0.5.0
    #提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。

    [root@master prometheus]# kubectl apply -f prom-adapter/

    3)安装metrics-state


    需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。


    [root@master prometheus]# vim metrics-state/kube-state-metrics-deployment.yaml
    24 image: 192.168.1.100:5000/kube-rbac-proxy:v0.4.1
    41 image: 192.168.1.100:5000/kube-rbac-proxy:v0.4.1
    58 image: 192.168.1.100:5000/kube-state-metrics:v1.9.2
    #提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。

    [root@master prometheus]# kubectl apply -f metrics-state/

    4)安装node-exporter


    需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。


    [root@master prometheus]# vim node-exporter/node-exporter-daemonset.yaml
    27 image: 192.168.1.100:5000/node-exporter:v1.0.0
    57 image: 192.168.1.100:5000/kube-rbac-proxy:v0.4.1
    #提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。

    [root@master prometheus]# kubectl apply -f node-exporter/

    5)安装Prometheus server


    需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。


    [root@master prometheus]# vim prom-server/prometheus-prometheus.yaml
    14 baseImage: 192.168.1.100:5000/prometheus
    34 version: v2.11.0
    #提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。

    [root@master prometheus]# kubectl apply -f prom-server/

    步骤三:对外发布Prometheus容器服务(在master主机操作操作)


    相关资源文件共享在云盘第四阶段kubernetes/v1.17.6/prometheus/prom-server/prometheus-service.yaml。


    下面使用使用nodePort发布服务将容器的9090端口映射到真机节点的30001端口。


    [root@master prometheus]# vim  prom-server/prometheus-service.yaml
    … …
    spec:
    type: NodePort
    ports:
    • name: web
      #cold_bold port: 9090
      #cold_bold nodePort: 30001
      targetPort: web
      … …
      [root@master prometheus]# kubectl apply -f prom-server/prometheus-service.yaml

      使用浏览器访问任意节点的30001端口,即可访问到Web网页,效果如图-3所示。

      图-3

      4 案例4:安装部署pometheus(二)

      4.1 问题

      本案例延续前面的案例3,继续部署pometheus,具体要求如下:

      1. 安装alertmanager
  • 安装Prometheus grafana
  • 4.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:安装alertmanager(在master主机操作)

    需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。

    [root@master prometheus]# vim alertmanager/alertmanager-alertmanager.yaml
    09	 baseImage: 192.168.1.100:5000/alertmanager
    18	 version: v0.18.0
    #提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。
    

    [root@master prometheus]# kubectl apply -f alertmanager/

    步骤二:安装grafana(在master主机操作)


    需要修改资源文件,默认资源文件制定的是从官网下载镜像启动容器,我们需要修改为自己的192.168.1.100私有镜像仓库的路径。


    [root@master prometheus]# vim grafana/grafana-deployment.yaml
    19 - image: 192.168.1.100:5000/grafana:6.4.3
    #提示:上面这些镜像的链接路径如果不知道,可以使用docker images查看。

    [root@master prometheus]# kubectl apply -f grafana/

    步骤三:对外发布grafana服务(在master主机操作)


    相关资源文件共享在云盘第四阶段kubernetes/v1.17.6/prometheus/ grafana/grafana-service.yaml。


    下面使用使用nodePort发布服务将容器的3000端口映射到真机节点的30002端口。


    [root@master prometheus]# vim grafana/grafana-service.yaml
    … …
    spec:
    type: NodePort
    ports:
    • name: http
      port: 3000
      nodePort: 30002
      targetPort: http
      … …
      [root@master prometheus]# kubectl apply -f grafana/grafana-service.yaml

      使用浏览器访问任意节点的30002端口,即可访问到Web网页,效果如图-4所示。

      图-4

      5 案例5:配置grafana

      5.1 问题

      本案例要求配置grafana,具体要求如下。

      1. 配置数据源
  • 展示监控页面
  • 5.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:配置grafana(在任意主机操作)

    1)登录

    登录的默认用户和密码:admin/admin

    第一次登录需要修改密码,效果如图-5所示。

    图-5

    2)修改数据源地址

    我们添加的数据为prometheus

    数据源就是 Prometheus service 的地址

    可以填写prometheus的Service内部的DNS名称

    http://prometheus-k8s.monitoring.svc.cluster.local:9090

    如何查看到这个DNS的域名呢?可以执行如下的命令即可。

    [root@master ~]# kubectl -n monitoring get service
    NAME		       TYPE	         CLUSTER-IP	   EXTERNAL-IP	PORT(S)
    grafana          NodePort	   10.254.169.248	    	     3000:30002/TCP
    prometheus-k8s  NodePort	   10.254.44.72    	          9090:30001/TCP
    ... ...
    # 找到这里的prometheus-k8s名称后
    # 在它的后面附加一个固定的monitoring.svc.cluster.local:9090
    # 连接在一起就是:http://prometheus-k8s.monitoring.svc.cluster.local:9090
    

    点击如图-6和图-7所示的按钮,修改数据源。

    添加数据源Prometheus,名字随意,URL需要填写Prometheus内部的DNS名称,

    默认端口号 9090。

    图-6

    图-7

    3)导入模板

    导入模板,需要正确配置后点击保存和测试后开始添加仪表盘

    点开import,输入模板ID,效果如图-8所示。

    图-8

    常用的模块为315,如图-9所示。

    图-9

    数据源就是刚刚定义的 Prometheus,如图-10所示。

    图-10

    最后查看监控效果,如图-11和图-12所示。

    图-11

    图-12

    6 案例6:HPA集群

    6.1 问题

    本案例利用监控指标实现HPA集群,具体要求如下。

    1. 完成一个弹性集群

    6.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:部署一个弹性集群(在master主机操作)

    1)查看、学习资源文件

    资源在云盘共享第四阶段kubernetes/v1.17.6/config/hpa-example.yaml。

    [root@master ~]# cat hpa-example.yaml          #查看、学习资源文件
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: myweb
    spec:
      selector:
        matchLabels:
          app: apache
      replicas: 1
      template:
        metadata:
          labels:
            app: apache
        spec:
          containers:
          - name: apache
            image: 192.168.1.100:5000/myos:httpd
            ports:
            - containerPort: 80
            resources:
              requests:
                cpu: 200m
          restartPolicy: Always
    

    apiVersion: v1
    kind: Service
    metadata:
    name: web-service
    spec:
    ports:

    • protocol: TCP
      port: 80
      targetPort: 80
      selector:
      app: apache
      type: ClusterIP

    apiVersion: autoscaling/v1
    kind: HorizontalPodAutoscaler
    metadata:
    name: myweb
    spec:
    minReplicas: 1
    maxReplicas: 3
    scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myweb
    targetCPUUtilizationPercentage: 50
    [root@master ~]# kubectl apply -f hpa-example.yaml
    deployment.apps/myweb created
    service/web-service created

    2)创建相关资源


    [root@master ~]# kubectl apply -f hpa-example.yaml        #创建资源
    deployment.apps/myweb created
    service/web-service created
    horizontalpodautoscaler.autoscaling/myweb created

    [root@master ~]# kubectl get hpa
    NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
    myweb Deploy/myweb /50% 1 3 0 10s

    [root@master ~]# kubectl get hpa # 等待几分钟后执行
    NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
    myweb Deploy/myweb 3%/50% 1 3 0 10s

    步骤二:压力测试


    想办法对前面创建的容器进行压力测试,消耗容器CPU资源!!!


    步骤三:查看动态扩容效果


    [root@master ~]# kubectl get hpa
    NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
    myweb Deployment/myweb 287%/50% 1 3 3 16m

    [root@master ~]# kubectl get pod
    NAME READY STATUS RESTARTS AGE
    myweb-7f89fc7b66-kzhj5 1/1 Running 0 16m
    myweb-7f89fc7b66-nh4kn 1/1 Running 0 21s
    myweb-7f89fc7b66-q2jnf 1/1 Running 0 21s
    #当容器CPU占用过高时,集群可以自动扩容


    [root@master ~]# kubectl get hpa
    NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
    myweb Deployment/myweb 1%/50% 1 3 3 20m

    [root@master ~]# kubectl get pod
    NAME READY STATUS RESTARTS AGE
    myweb-7f89fc7b66-kzhj5 1/1 Running 0 22m

    当容器CPU占用率恢复正常时,容器可以自动缩减

你可能感兴趣的:(达内云计算培训笔记,docker)