Set poll period of fetching changes from k8s api of metrics server nanny to 30s. This will enable faster scaling of metrics server
118 lines
3.4 KiB
YAML
118 lines
3.4 KiB
YAML
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: metrics-server
|
|
namespace: kube-system
|
|
labels:
|
|
kubernetes.io/cluster-service: "true"
|
|
addonmanager.kubernetes.io/mode: Reconcile
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: metrics-server-config
|
|
namespace: kube-system
|
|
labels:
|
|
kubernetes.io/cluster-service: "true"
|
|
addonmanager.kubernetes.io/mode: EnsureExists
|
|
data:
|
|
NannyConfiguration: |-
|
|
apiVersion: nannyconfig/v1alpha1
|
|
kind: NannyConfiguration
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: metrics-server-v0.4.4
|
|
namespace: kube-system
|
|
labels:
|
|
k8s-app: metrics-server
|
|
addonmanager.kubernetes.io/mode: Reconcile
|
|
version: v0.4.4
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
k8s-app: metrics-server
|
|
version: v0.4.4
|
|
template:
|
|
metadata:
|
|
name: metrics-server
|
|
labels:
|
|
k8s-app: metrics-server
|
|
version: v0.4.4
|
|
spec:
|
|
securityContext:
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
priorityClassName: system-cluster-critical
|
|
serviceAccountName: metrics-server
|
|
nodeSelector:
|
|
kubernetes.io/os: linux
|
|
containers:
|
|
- name: metrics-server
|
|
image: k8s.gcr.io/metrics-server/metrics-server:v0.4.4
|
|
command:
|
|
- /metrics-server
|
|
- --metric-resolution=30s
|
|
# These are needed for GKE, which doesn't support secure communication yet.
|
|
# Remove these lines for non-GKE clusters, and when GKE supports token-based auth.
|
|
- --kubelet-port=10255
|
|
- --deprecated-kubelet-completely-insecure=true
|
|
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
|
|
- --cert-dir=/tmp
|
|
- --secure-port=443
|
|
ports:
|
|
- containerPort: 443
|
|
name: https
|
|
protocol: TCP
|
|
volumeMounts:
|
|
- mountPath: /tmp
|
|
name: tmp-dir
|
|
- name: metrics-server-nanny
|
|
image: k8s.gcr.io/addon-resizer:1.8.11
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 300Mi
|
|
requests:
|
|
cpu: 5m
|
|
memory: 50Mi
|
|
env:
|
|
- name: MY_POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: MY_POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
volumeMounts:
|
|
- name: metrics-server-config-volume
|
|
mountPath: /etc/config
|
|
command:
|
|
- /pod_nanny
|
|
- --config-dir=/etc/config
|
|
- --cpu={{ base_metrics_server_cpu }}
|
|
- --extra-cpu=0.5m
|
|
- --memory={{ base_metrics_server_memory }}
|
|
- --extra-memory={{ metrics_server_memory_per_node }}Mi
|
|
- --threshold=5
|
|
- --deployment=metrics-server-v0.4.4
|
|
- --container=metrics-server
|
|
- --poll-period=30000
|
|
- --estimator=exponential
|
|
# Specifies the smallest cluster (defined in number of nodes)
|
|
# resources will be scaled to.
|
|
- --minClusterSize={{ metrics_server_min_cluster_size }}
|
|
# Use kube-apiserver metrics to avoid periodically listing nodes.
|
|
- --use-metrics=true
|
|
volumes:
|
|
- name: metrics-server-config-volume
|
|
configMap:
|
|
name: metrics-server-config
|
|
- emptyDir: {}
|
|
name: tmp-dir
|
|
tolerations:
|
|
- key: "CriticalAddonsOnly"
|
|
operator: "Exists"
|