zoukankan      html  css  js  c++  java
  • Kubernetes Metrics-Server

    github地址:https://github.com/kubernetes-incubator/metrics-server

    官网介绍:https://kubernetes.io/docs/tasks/debug-application-cluster/core-metrics-pipeline/

    Starting from Kubernetes 1.8, resource usage metrics, such as container CPU and memory usage, are available in Kubernetes through the Metrics API. These metrics can be either accessed directly by user, for example by using kubectl top command, or used by a controller in the cluster, e.g. Horizontal Pod Autoscaler, to make decisions.

    metrics-server.yaml

    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: metrics-server
      namespace: kube-system
    
    ---
    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
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: system:metrics-server
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: system:metrics-server
    subjects:
    - kind: ServiceAccount
      name: metrics-server
      namespace: kube-system
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: metrics-server-auth-reader
      namespace: kube-system
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: extension-apiserver-authentication-reader
    subjects:
    - kind: ServiceAccount
      name: metrics-server
      namespace: kube-system
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: metrics-server:system:auth-delegator
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: system:auth-delegator
    subjects:
    - kind: ServiceAccount
      name: metrics-server
      namespace: kube-system
    
    ---
    apiVersion: apiregistration.k8s.io/v1beta1
    kind: APIService
    metadata:
      name: v1beta1.metrics.k8s.io
    spec:
      service:
        name: metrics-server
        namespace: kube-system
      group: metrics.k8s.io
      version: v1beta1
      insecureSkipTLSVerify: true
      groupPriorityMinimum: 100
      versionPriority: 100
    
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: metrics-server
      namespace: kube-system
      labels:
        k8s-app: metrics-server
    spec:
      selector:
        matchLabels:
          k8s-app: metrics-server
      template:
        metadata:
          name: metrics-server
          labels:
            k8s-app: metrics-server
        spec:
          serviceAccountName: metrics-server
          volumes:
          # mount in tmp so we can safely use from-scratch images and/or read-only containers
          - name: tmp-dir
            emptyDir: {}
          containers:
          - name: metrics-server
            image: k8s.gcr.io/metrics-server-amd64:v0.3.0
            command:
            - /metrics-server
            - --kubelet-insecure-tls
            - --kubelet-preferred-address-types=InternalIP
            volumeMounts:
            - name: tmp-dir
              mountPath: /tmp
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: metrics-server
      namespace: kube-system
      labels:
        kubernetes.io/name: "Metrics-server"
    spec:
      selector:
        k8s-app: metrics-server
      ports:
      - port: 443
        protocol: TCP
        targetPort: 443
    yaml

    测试效果:

    [root@node01 metrics-server]# kubectl get hpa
    NAME         REFERENCE           TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
    tomcat-hpa   Deployment/tomcat   0%/5%     1         5         1          1h
    [root@node01 metrics
    -server]# kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% node01 653m 16% 3045Mi 39%
    [root@node01 metrics
    -server]# kubectl top pod NAME CPU(cores) MEMORY(bytes) lxcfs-8tg6b 1m 2Mi mysql-85c85c5668-fr6j7 1m 462Mi tomcat-78c9778858-424gc 2m 113Mi
    [root@node01 metrics
    -server]# kubectl top pod NAME CPU(cores) MEMORY(bytes) lxcfs-8tg6b 1m 2Mi mysql-85c85c5668-fr6j7 1m 462Mi tomcat-78c9778858-424gc 2m 113Mi [root@node01 metrics-server]# kubectl top pod --namespace=kube-system NAME CPU(cores) MEMORY(bytes) coredns-777d78ff6f-rrpx8 2m 9Mi coredns-777d78ff6f-tql47 2m 9Mi etcd-node01 16m 96Mi kube-apiserver-node01 34m 485Mi kube-controller-manager-node01 49m 73Mi kube-flannel-ds-rxrp5 3m 14Mi kube-proxy-r6bd2 2m 20Mi kube-scheduler-node01 10m 15Mi kubernetes-dashboard-d4866d978-kpz4m 1m 19Mi metrics-server-84bd4db594-fz2k2 1m 16Mi
  • 相关阅读:
    K近邻法(KNN)原理小结
    scikit-learn决策树算法类库使用小结
    朴素贝叶斯算法原理小结
    scikit-learn 支持向量机算法库使用小结
    Socket原理与编程基础
    实时获取股票信息API
    微信内部浏览器私有接口
    外汇哦,你懂的。
    股票数据源-股票代码和名称数据格式
    用Simple Html Dom Parser 获取中国银行汇率
  • 原文地址:https://www.cnblogs.com/vincenshen/p/9638339.html
Copyright © 2011-2022 走看看