暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mac 上学习k8s系列(37)metrics-server

     top
    PID COMMAND %CPU TIME #TH #WQ #PORT MEM PURG CMPRS PGRP
    37210 com.docker.h 155.4 31:23.69 13/4 0 36 11G+ 0B 7922M- 36866
    发现docker占用内存11G

    top发现我们docker占用的内存特别大,去docker desktop的resource里面检查下发现设置的是8G加2G的swap,感觉有点大,能缩小吗?我们的pod实际占用了多少呢?

      然后具体看下哪个pod占用比较多
      % kubectl top pod
      error: Metrics API not available

      默认没有安装metric-server安装下https://github.com/kubernetes-sigs/metrics-server/releases

        % kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.0/components.yaml
        serviceaccount/metrics-server created
        clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
        clusterrole.rbac.authorization.k8s.io/system:metrics-server created
        rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
        clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
        clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
        service/metrics-server created
        deployment.apps/metrics-server created
        apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created

        由于国内原因,镜像k8s.gcr.io/metrics-server/metrics-server:v0.6.0拉不下来

          % kubectl -n kube-system get pod metrics-server-65b979d49c-kdtg2 
          NAME READY STATUS RESTARTS AGE
          metrics-server-65b979d49c-kdtg2   0/1     ImagePullBackOff   0          7m34s
             % kubectl top pod
            Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)

            去docker hub找一个

              % docker pull bitnami/metrics-server:latest
              latest: Pulling from bitnami/metrics-server
              edb9df82989e: Pull complete
              fd4ce8181ca9: Pull complete
              dd7359543396: Pull complete
              b515c7504db3: Pull complete
              a4af5d5f09ef: Pull complete
              48f8bc37bc18: Pull complete
              37af7a161a3c: Pull complete
              Digest: sha256:6f8bdb06de083988b13b6c08dee3e40e061194e07e6b780fa3d4de6c487fbd25
              Status: Downloaded newer image for bitnami/metrics-server:latest
              docker.io/bitnami/metrics-server:latest

              发现pod启动失败

                % kubectl -n kube-system logs metrics-server-57f695cd54-zf8fz 
                .go:188] "Failed probe" probe="metric-storage-ready" err="not metrics to serve"
                E0123 03:38:08.027869 1 scraper.go:139] "Failed to scrape node" err="GET \"https://192.168.65.4:10250/stats/summary?only_cpu_and_memory=true\": bad status code \"403 Forbidden\"" node="docker-desktop"
                I0123 03:38:13.498399 1 server.go:188] "Failed probe" probe="metric-storage-ready" err="not metrics to serve"

                原因是没有配置https认证,我们本机学习,不用配置,修改下yaml

                   - --kubelet-insecure-tls=true

                  发现还是不行,原因是默认的rbac授权权限不够,修改下

                    apiVersion: rbac.authorization.k8s.io/v1
                    kind: ClusterRole
                    metadata:
                    name: system:metrics-server
                    rules:
                    - apiGroups:
                    - ""
                    resources:
                    - pods
                    - nodes
                    - nodes/stats
                    - namespaces
                    verbs:
                    - get
                    - list
                    - watch
                    - apiGroups:
                    - "extensions"
                    resources:
                    - deployments
                    verbs:
                    - get
                    - list
                    - watch

                    检查下,发现已经启动成功了

                      % kubectl -n kube-system get pods metrics-server-664ffd5b45-mn4r8 
                      NAME READY STATUS RESTARTS AGE
                      metrics-server-664ffd5b45-mn4r8 1/1 Running 0 6m22s

                      看下我们的内存和cpu占用

                        % kubectl top pod -n istio-system
                        NAME CPU(cores) MEMORY(bytes)
                        grafana-6ccd56f4b6-wp798 6m 42Mi
                        istio-egressgateway-687f4db598-rj2mg 5m 45Mi
                        istio-ingressgateway-8d5985f54-cvlcw 6m 42Mi
                        istiod-5698b78654-lm7r6 4m 49Mi
                        istiod-5698b78654-lwg4p 6m 52Mi
                        istiod-5698b78654-r2vp8 7m 46Mi
                        jaeger-5d44bc5c5d-mt9cq 3m 25Mi
                        kiali-79b86ff5bc-srf9k 1m 12Mi
                        prometheus-64fd8ccd65-rn9lc 24m 406Mi

                        看下所有的占用

                           % kubectl top node docker-desktop
                          NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
                          docker-desktop 902m 22% 4147Mi 52%


                          文章转载自golang算法架构leetcode技术php,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论