123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- # Copyright 2016 The Kubernetes Authors.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- kind: ServiceAccount
- apiVersion: v1
- metadata:
- name: kube-dns-autoscaler
- namespace: kube-system
- labels:
- addonmanager.kubernetes.io/mode: Reconcile
- ---
- kind: ClusterRole
- apiVersion: rbac.authorization.k8s.io/v1
- metadata:
- name: system:kube-dns-autoscaler
- labels:
- addonmanager.kubernetes.io/mode: Reconcile
- rules:
- - apiGroups: [""]
- resources: ["nodes"]
- verbs: ["list", "watch"]
- - apiGroups: [""]
- resources: ["replicationcontrollers/scale"]
- verbs: ["get", "update"]
- - apiGroups: ["extensions","apps"]
- resources: ["deployments/scale", "replicasets/scale"]
- verbs: ["get", "update"]
- # Remove the configmaps rule once below issue is fixed:
- # kubernetes-incubator/cluster-proportional-autoscaler#16
- - apiGroups: [""]
- resources: ["configmaps"]
- verbs: ["get", "create"]
- ---
- kind: ClusterRoleBinding
- apiVersion: rbac.authorization.k8s.io/v1
- metadata:
- name: system:kube-dns-autoscaler
- labels:
- addonmanager.kubernetes.io/mode: Reconcile
- subjects:
- - kind: ServiceAccount
- name: kube-dns-autoscaler
- namespace: kube-system
- roleRef:
- kind: ClusterRole
- name: system:kube-dns-autoscaler
- apiGroup: rbac.authorization.k8s.io
- ---
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: kube-dns-autoscaler
- namespace: kube-system
- labels:
- k8s-app: kube-dns-autoscaler
- kubernetes.io/cluster-service: "true"
- addonmanager.kubernetes.io/mode: Reconcile
- spec:
- selector:
- matchLabels:
- k8s-app: kube-dns-autoscaler
- template:
- metadata:
- labels:
- k8s-app: kube-dns-autoscaler
- annotations:
- scheduler.alpha.kubernetes.io/critical-pod: ''
- seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
- spec:
- priorityClassName: system-cluster-critical
- securityContext:
- supplementalGroups: [ 65534 ]
- fsGroup: 65534
- containers:
- - name: autoscaler
- image: k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.6.0
- resources:
- requests:
- cpu: "20m"
- memory: "10Mi"
- command:
- - /cluster-proportional-autoscaler
- - --namespace=kube-system
- - --configmap=kube-dns-autoscaler
- # Should keep target in sync with cluster/addons/dns/kube-dns.yaml.base
- - --target={{.Target}}
- # When cluster is using large nodes(with more cores), "coresPerReplica" should dominate.
- # If using small nodes, "nodesPerReplica" should dominate.
- - --default-params={"linear":{"coresPerReplica":256,"nodesPerReplica":16,"preventSinglePointFailure":true}}
- - --logtostderr=true
- - --v=2
- tolerations:
- - key: "CriticalAddonsOnly"
- operator: "Exists"
- serviceAccountName: kube-dns-autoscaler
|