k8s.io/kubernetes@v1.31.0-alpha.0.0.20240520171757-56147500dadc/cluster/addons/metrics-server/metrics-server-deployment.yaml (about)

     1  apiVersion: v1
     2  kind: ServiceAccount
     3  metadata:
     4    name: metrics-server
     5    namespace: kube-system
     6    labels:
     7      kubernetes.io/cluster-service: "true"
     8      addonmanager.kubernetes.io/mode: Reconcile
     9  ---
    10  apiVersion: v1
    11  kind: ConfigMap
    12  metadata:
    13    name: metrics-server-config
    14    namespace: kube-system
    15    labels:
    16      kubernetes.io/cluster-service: "true"
    17      addonmanager.kubernetes.io/mode: EnsureExists
    18  data:
    19    NannyConfiguration: |-
    20      apiVersion: nannyconfig/v1alpha1
    21      kind: NannyConfiguration
    22  ---
    23  apiVersion: apps/v1
    24  kind: Deployment
    25  metadata:
    26    name: metrics-server-v0.7.0
    27    namespace: kube-system
    28    labels:
    29      k8s-app: metrics-server
    30      addonmanager.kubernetes.io/mode: Reconcile
    31      version: v0.7.0
    32  spec:
    33    selector:
    34      matchLabels:
    35        k8s-app: metrics-server
    36        version: v0.7.0
    37    template:
    38      metadata:
    39        name: metrics-server
    40        labels:
    41          k8s-app: metrics-server
    42          version: v0.7.0
    43      spec:
    44        securityContext:
    45          seccompProfile:
    46            type: RuntimeDefault
    47        priorityClassName: system-cluster-critical
    48        serviceAccountName: metrics-server
    49        nodeSelector:
    50          kubernetes.io/os: linux
    51        containers:
    52        - name: metrics-server
    53          image: registry.k8s.io/metrics-server/metrics-server:v0.7.0
    54          command:
    55          - /metrics-server
    56          - --metric-resolution=15s
    57          - --kubelet-use-node-status-port
    58          - --kubelet-insecure-tls
    59          - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
    60          - --cert-dir=/tmp
    61          - --secure-port=10250
    62          ports:
    63          - containerPort: 10250
    64            name: https
    65            protocol: TCP
    66          readinessProbe:
    67            httpGet:
    68              path: /readyz
    69              port: https
    70              scheme: HTTPS
    71            periodSeconds: 10
    72            failureThreshold: 3
    73          livenessProbe:
    74            httpGet:
    75              path: /livez
    76              port: https
    77              scheme: HTTPS
    78            periodSeconds: 10
    79            failureThreshold: 3
    80          volumeMounts:
    81          - mountPath: /tmp
    82            name: tmp-dir
    83        - name: metrics-server-nanny
    84          image: registry.k8s.io/autoscaling/addon-resizer:1.8.14
    85          resources:
    86            limits:
    87              cpu: 100m
    88              memory: 300Mi
    89            requests:
    90              cpu: 5m
    91              memory: 50Mi
    92          env:
    93            - name: MY_POD_NAME
    94              valueFrom:
    95                fieldRef:
    96                  fieldPath: metadata.name
    97            - name: MY_POD_NAMESPACE
    98              valueFrom:
    99                fieldRef:
   100                  fieldPath: metadata.namespace
   101          volumeMounts:
   102          - name: metrics-server-config-volume
   103            mountPath: /etc/config
   104          command:
   105            - /pod_nanny
   106            - --config-dir=/etc/config
   107            - --cpu={{ base_metrics_server_cpu }}
   108            - --extra-cpu=0.5m
   109            - --memory={{ base_metrics_server_memory }}
   110            - --extra-memory={{ metrics_server_memory_per_node }}Mi
   111            - --threshold=5
   112            - --deployment=metrics-server-v0.7.0
   113            - --container=metrics-server
   114            - --poll-period=30000
   115            - --estimator=exponential
   116            # Specifies the smallest cluster (defined in number of nodes)
   117            # resources will be scaled to.
   118            - --minClusterSize={{ metrics_server_min_cluster_size }}
   119            # Use kube-apiserver metrics to avoid periodically listing nodes.
   120            - --use-metrics=true
   121        volumes:
   122        - name: metrics-server-config-volume
   123          configMap:
   124            name: metrics-server-config
   125        - emptyDir: {}
   126          name: tmp-dir
   127        tolerations:
   128          - key: "CriticalAddonsOnly"
   129            operator: "Exists"