• 【k8s】metrics-server


    环境

    1. kubernetes 1.20.6
    2. Spring Boot 2.5.0-RC1

    目标

    metrics-server 可以收集 k8s 集群的资源使用情况,并通过 dashboard 展示出来。

    示例

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        k8s-app: metrics-server
      name: metrics-server
      namespace: kube-system
    spec:
      ports:
        - name: https
          port: 443
          protocol: TCP
          targetPort: https
      selector:
        k8s-app: metrics-server
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        k8s-app: metrics-server
      name: metrics-server
      namespace: kube-system
    spec:
      selector:
        matchLabels:
          k8s-app: metrics-server
      strategy:
        rollingUpdate:
          maxUnavailable: 0
      template:
        metadata:
          labels:
            k8s-app: metrics-server
        spec:
          containers:
            - args:
                - --cert-dir=/tmp
                - --secure-port=443
                - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
                - --kubelet-use-node-status-port
                - --metric-resolution=15s
                - --kubelet-insecure-tls
              image: jiangbo920827/metrics-server:v0.5.0
              imagePullPolicy: IfNotPresent
              livenessProbe:
                failureThreshold: 3
                httpGet:
                  path: /livez
                  port: https
                  scheme: HTTPS
                periodSeconds: 10
              name: metrics-server
              ports:
                - containerPort: 443
                  name: https
                  protocol: TCP
              readinessProbe:
                failureThreshold: 3
                httpGet:
                  path: /readyz
                  port: https
                  scheme: HTTPS
                initialDelaySeconds: 20
                periodSeconds: 10
              securityContext:
                readOnlyRootFilesystem: true
                runAsNonRoot: true
                runAsUser: 1000
              volumeMounts:
                - mountPath: /tmp
                  name: tmp-dir
          nodeSelector:
            kubernetes.io/os: linux
          priorityClassName: system-cluster-critical
          serviceAccountName: admin
          volumes:
            - emptyDir: {}
              name: tmp-dir
    ---
    apiVersion: apiregistration.k8s.io/v1
    kind: APIService
    metadata:
      labels:
        k8s-app: metrics-server
      name: v1beta1.metrics.k8s.io
    spec:
      group: metrics.k8s.io
      groupPriorityMinimum: 100
      insecureSkipTLSVerify: true
      service:
        name: metrics-server
        namespace: kube-system
      version: v1beta1
      versionPriority: 100
    

    其中的 admin 服务账号,需要自己创建,如果之前的 rbac 示例执行过,默认就有。
    如果没有,可以见附录。

    查看资源

    metrics-server.png

    总结

    介绍了 metric server 查看资源使用的图形界面。

    附录

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: admin
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: admin-binding
    subjects:
      - kind: ServiceAccount
        name: admin
        namespace: kube-system
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    
  • 相关阅读:
    vim进阶:better,faster and stronger
    转:开发者如何提升和推销自己
    python 列表及字典(按key、按value排序)
    python繁体中文到简体中文的转换
    svm支持向量机分类方法
    git与svn
    wchar_t与char转换、wstring与string转换
    mysql 事务
    mysql_real_escape_string() vs addslashes() vs addcslashes()
    Safe3 Web漏洞扫描系统 v9.6免费版
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14957002.html
Copyright © 2020-2023  润新知