k8s Metrics Server 获取资源指标与 hpa 部署

使用 helm 部署 Metrics Server

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install bitnami/metrics-server   会有报错,执行以下命令
helm upgrade loopy-saola bitnami/metrics-server     --set apiService.create=true

$  kubectl get pod   查看节点
loopy-saola-metrics-server-58796b4bc7-4mv4t      1/1     Running   0          16m

$ kubectl top nodes  不能获取资源指标,需要修改 deployment

$  kubectl get   deployment   loopy-saola-metrics-server       -o yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "3"
  creationTimestamp: "2019-12-06T10:18:00Z"
  generation: 3
  labels:
    app.kubernetes.io/instance: loopy-saola
    app.kubernetes.io/managed-by: Tiller
    app.kubernetes.io/name: metrics-server
    helm.sh/chart: metrics-server-4.1.0
  name: loopy-saola-metrics-server
  namespace: default
  resourceVersion: "77963814"
  selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/loopy-saola-metrics-server
  uid: ae24b7b2-1811-11ea-a9a8-b8ca3a614e64
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/instance: loopy-saola
      app.kubernetes.io/name: metrics-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/instance: loopy-saola
        app.kubernetes.io/managed-by: Tiller
        app.kubernetes.io/name: metrics-server
        helm.sh/chart: metrics-server-4.1.0
    spec:
      containers:
      - command:
        - metrics-server
        - --secure-port=8443
        - --v=8                                         以下三行为修改的内容
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP
        image: docker.io/bitnami/metrics-server:0.3.6-debian-9-r27
        imagePullPolicy: IfNotPresent
        name: metrics-server
        ports:
        - containerPort: 8443
          hostPort: 8443                                   增加 host port
          name: https
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: loopy-saola-metrics-server
      serviceAccountName: loopy-saola-metrics-server
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2019-12-06T10:17:05Z"
    lastUpdateTime: "2019-12-06T10:17:05Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2019-12-06T10:16:54Z"
    lastUpdateTime: "2019-12-06T10:40:41Z"
    message: ReplicaSet "loopy-saola-metrics-server-58796b4bc7" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 3
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1


$ kubectl top node
NAME                          CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-master01.gdfsxxds.rjyun   423m         1%     28532Mi         44%       
k8s-master02.gdfsxxds.rjyun   334m         1%     5932Mi          9%        
k8s-master03.gdfsxxds.rjyun   361m         1%     4107Mi          6%        
k8s-node01                    242m         1%     10696Mi         8%        
k8s-node02                    560m         1%     12201Mi         18%       
k8s-node03                    1811m        5%     28904Mi         45%       

$ kubectl top pod
NAME                                             CPU(cores)   MEMORY(bytes)   
a9vg-project-v2-deployment-7bc4968b44-mzp5n      2m           273Mi           
a9vg-static-deployment-7bb7576cd8-hcmgm          1m           26Mi            
cm-acme-http-solver-x8tkd                        1m           7Mi     
成功获取资源指标数据

 

部署 hpa
$ kubectl get pod  |grep ssr             部署前查看是一个pod 
tgbus-ssr-deployment-85df9c9c59-2s4lw            1/1     Running   0          23h
$ cat hpa.yaml 
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: tgbus-ssr-deployment
  namespace: default
spec:
  maxReplicas: 15
  minReplicas: 2
  scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: Deployment
    name: tgbus-ssr-deployment
  targetCPUUtilizationPercentage: 50


$ kubectl create -f hpa.yaml 
$ kubectl get pod  |grep ssr
tgbus-ssr-deployment-85df9c9c59-2s4lw            1/1     Running   0          23h
tgbus-ssr-deployment-85df9c9c59-k75xh            1/1     Running   0          42s
发现已创建出新的pod    后续会根据负载情况动态增加减少pod 数量

  

你可能感兴趣的:(k8s Metrics Server 获取资源指标与 hpa 部署)