ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Metrics Server配置

2022-01-24 11:32:07  阅读:164  来源: 互联网

标签:6d16h metrics 配置 server Server Metrics io k8s True


目录

前提

在学习k8s的时候,用到kubectl top命令查看资源使用情况,出现命令不可用,使用kubectl top -h命令提示,This command requires Metrics Server to be correctly configured and working on the server.要求正确配置Metrics Server并在服务器上工作。因此下文为安装Metrics Server组件的步骤。

配置

下载需要的yaml文件

git clone https://github.com/kubernetes/kubernetes.git
cd ./kubernetes/cluster/addons/metrics-server
vim metrics-server-deployment.yaml
注意标注# 修改后的位置

apiVersion: v1
kind: ServiceAccount
metadata:
  name: metrics-server
  namespace: kube-system
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: metrics-server-config
  namespace: kube-system
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: EnsureExists
data:
  NannyConfiguration: |-
    apiVersion: nannyconfig/v1alpha1
    kind: NannyConfiguration
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: metrics-server-v0.5.2
  namespace: kube-system
  labels:
    k8s-app: metrics-server
    addonmanager.kubernetes.io/mode: Reconcile
    version: v0.5.2
spec:
  selector:
    matchLabels:
      k8s-app: metrics-server
      version: v0.5.2
  template:
    metadata:
      name: metrics-server
      labels:
        k8s-app: metrics-server
        version: v0.5.2
    spec:
      securityContext:
        seccompProfile:
          type: RuntimeDefault
      priorityClassName: system-cluster-critical
      serviceAccountName: metrics-server
      nodeSelector:
        kubernetes.io/os: linux
      containers:
      - name: metrics-server
        image: registry.aliyuncs.com/google_containers/metrics-server:v0.5.2 # 修改后
        command:
        - /metrics-server
        - --metric-resolution=30s
        - --kubelet-use-node-status-port
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
        - --cert-dir=/tmp
        - --secure-port=10250
        ports:
        - containerPort: 10250
          name: https
          protocol: TCP
        readinessProbe:
          httpGet:
            path: /readyz
            port: https
            scheme: HTTPS
          periodSeconds: 10
          failureThreshold: 3
        livenessProbe:
          httpGet:
            path: /livez
            port: https
            scheme: HTTPS
          periodSeconds: 10
          failureThreshold: 3
        volumeMounts:
        - mountPath: /tmp
          name: tmp-dir
      - name: metrics-server-nanny
        image: edwordmr/addon-resizer # 修改后
        resources:
          limits:
            cpu: 100m
            memory: 300Mi
          requests:
            cpu: 5m
            memory: 50Mi
        env:
          - name: MY_POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: MY_POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
        volumeMounts:
        - name: metrics-server-config-volume
          mountPath: /etc/config
        command:
          - /pod_nanny
          - --config-dir=/etc/config
          - --cpu=80m # 修改后
          - --extra-cpu=0.5m
          - --memory=80Mi # 修改后
          - --extra-memory=8Mi # 修改后
          - --threshold=5
          - --deployment=metrics-server-v0.5.2
          - --container=metrics-server
          - --poll-period=30000
          - --estimator=exponential
          # Specifies the smallest cluster (defined in number of nodes)
          # resources will be scaled to.
          # - --minClusterSize={{ metrics_server_min_cluster_size }} # 修改后
          # Use kube-apiserver metrics to avoid periodically listing nodes.
          - --use-metrics=true
      volumes:
      - name: metrics-server-config-volume
        configMap:
          name: metrics-server-config
      - emptyDir: {}
        name: tmp-dir
      tolerations:
        - key: "CriticalAddonsOnly"
          operator: "Exists"

执行kubectl apply -f .

[root@k8s-master metrics-server]# kubectl apply -f .
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
serviceaccount/metrics-server created
configmap/metrics-server-config created
deployment.apps/metrics-server-v0.5.2 created
service/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
[root@k8s-master metrics-server]# kubectl get pod -n kube-system
NAME                                     READY   STATUS    RESTARTS       AGE
coredns-6d8c4cb4d-4h42g                  1/1     Running   5 (16h ago)    6d16h
coredns-6d8c4cb4d-hfgsc                  1/1     Running   8 (12h ago)    6d16h
etcd-k8s-master                          1/1     Running   9 (12h ago)    6d16h
kube-apiserver-k8s-master                1/1     Running   9 (12h ago)    17h
kube-controller-manager-k8s-master       1/1     Running   4 (12h ago)    17h
kube-flannel-ds-4db68                    1/1     Running   8 (16h ago)    6d16h
kube-flannel-ds-gpbl2                    1/1     Running   7 (16h ago)    6d16h
kube-flannel-ds-t9tl8                    1/1     Running   11 (12h ago)   6d16h
kube-proxy-8s9m2                         1/1     Running   5 (16h ago)    6d16h
kube-proxy-8vxhp                         1/1     Running   9 (12h ago)    6d16h
kube-proxy-tshbr                         1/1     Running   5 (16h ago)    6d16h
kube-scheduler-k8s-master                1/1     Running   10 (12h ago)   6d16h
metrics-server-v0.5.2-7f45b6cf57-4bzg9   2/2     Running   0              75s
[root@k8s-master metrics-server]# kubectl get apiservices
NAME                                   SERVICE                      AVAILABLE   AGE
v1.                                    Local                        True        6d16h
v1.admissionregistration.k8s.io        Local                        True        6d16h
v1.apiextensions.k8s.io                Local                        True        6d16h
v1.apps                                Local                        True        6d16h
v1.authentication.k8s.io               Local                        True        6d16h
v1.authorization.k8s.io                Local                        True        6d16h
v1.autoscaling                         Local                        True        6d16h
v1.batch                               Local                        True        6d16h
v1.certificates.k8s.io                 Local                        True        6d16h
v1.coordination.k8s.io                 Local                        True        6d16h
v1.discovery.k8s.io                    Local                        True        6d16h
v1.events.k8s.io                       Local                        True        6d16h
v1.networking.k8s.io                   Local                        True        6d16h
v1.node.k8s.io                         Local                        True        6d16h
v1.policy                              Local                        True        6d16h
v1.rbac.authorization.k8s.io           Local                        True        6d16h
v1.scheduling.k8s.io                   Local                        True        6d16h
v1.storage.k8s.io                      Local                        True        6d16h
v1beta1.batch                          Local                        True        6d16h
v1beta1.discovery.k8s.io               Local                        True        6d16h
v1beta1.events.k8s.io                  Local                        True        6d16h
v1beta1.flowcontrol.apiserver.k8s.io   Local                        True        6d16h
v1beta1.metrics.k8s.io                 kube-system/metrics-server   True        103s
v1beta1.node.k8s.io                    Local                        True        6d16h
v1beta1.policy                         Local                        True        6d16h
v1beta1.storage.k8s.io                 Local                        True        6d16h
v1beta2.flowcontrol.apiserver.k8s.io   Local                        True        6d16h
v2.autoscaling                         Local                        True        6d16h
v2beta1.autoscaling                    Local                        True        6d16h
v2beta2.autoscaling                    Local                        True        6d16h
[root@k8s-master metrics-server]# kubectl top node
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-master   331m         8%     1518Mi          19%       
k8s-node1    91m          2%     569Mi           7%        
k8s-node2    139m         3%     634Mi           8%        

标签:6d16h,metrics,配置,server,Server,Metrics,io,k8s,True
来源: https://blog.csdn.net/weixin_43272486/article/details/122596865

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有