...
1apiVersion: v1
2kind: ServiceAccount
3metadata:
4 name: metrics-server
5 namespace: kube-system
6 labels:
7 kubernetes.io/cluster-service: "true"
8 addonmanager.kubernetes.io/mode: Reconcile
9---
10apiVersion: v1
11kind: ConfigMap
12metadata:
13 name: metrics-server-config
14 namespace: kube-system
15 labels:
16 kubernetes.io/cluster-service: "true"
17 addonmanager.kubernetes.io/mode: EnsureExists
18data:
19 NannyConfiguration: |-
20 apiVersion: nannyconfig/v1alpha1
21 kind: NannyConfiguration
22---
23apiVersion: apps/v1
24kind: Deployment
25metadata:
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
32spec:
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"
View as plain text