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"