|
| 1 | +kind: ServiceAccount |
| 2 | +apiVersion: v1 |
| 3 | +metadata: |
| 4 | + name: kube-dns-autoscaler |
| 5 | + namespace: kube-system |
| 6 | + labels: |
| 7 | + addonmanager.kubernetes.io/mode: Reconcile |
| 8 | +--- |
| 9 | +kind: ClusterRole |
| 10 | +apiVersion: rbac.authorization.k8s.io/v1 |
| 11 | +metadata: |
| 12 | + name: system:kube-dns-autoscaler |
| 13 | + labels: |
| 14 | + addonmanager.kubernetes.io/mode: Reconcile |
| 15 | +rules: |
| 16 | + - apiGroups: [""] |
| 17 | + resources: ["nodes"] |
| 18 | + verbs: ["list", "watch"] |
| 19 | + - apiGroups: [""] |
| 20 | + resources: ["replicationcontrollers/scale"] |
| 21 | + verbs: ["get", "update"] |
| 22 | + - apiGroups: ["apps"] |
| 23 | + resources: ["deployments/scale", "replicasets/scale"] |
| 24 | + verbs: ["get", "update"] |
| 25 | +# Remove the configmaps rule once below issue is fixed: |
| 26 | +# kubernetes-incubator/cluster-proportional-autoscaler#16 |
| 27 | + - apiGroups: [""] |
| 28 | + resources: ["configmaps"] |
| 29 | + verbs: ["get", "create"] |
| 30 | +--- |
| 31 | +kind: ClusterRoleBinding |
| 32 | +apiVersion: rbac.authorization.k8s.io/v1 |
| 33 | +metadata: |
| 34 | + name: system:kube-dns-autoscaler |
| 35 | + labels: |
| 36 | + addonmanager.kubernetes.io/mode: Reconcile |
| 37 | +subjects: |
| 38 | + - kind: ServiceAccount |
| 39 | + name: kube-dns-autoscaler |
| 40 | + namespace: kube-system |
| 41 | +roleRef: |
| 42 | + kind: ClusterRole |
| 43 | + name: system:kube-dns-autoscaler |
| 44 | + apiGroup: rbac.authorization.k8s.io |
| 45 | + |
| 46 | +--- |
1 | 47 | apiVersion: apps/v1
|
2 | 48 | kind: Deployment
|
3 | 49 | metadata:
|
4 |
| - name: dns-autoscaler |
| 50 | + name: kube-dns-autoscaler |
5 | 51 | namespace: kube-system
|
6 | 52 | labels:
|
7 |
| - k8s-app: dns-autoscaler |
| 53 | + k8s-app: kube-dns-autoscaler |
| 54 | + kubernetes.io/cluster-service: "true" |
| 55 | + addonmanager.kubernetes.io/mode: Reconcile |
8 | 56 | spec:
|
9 | 57 | selector:
|
10 | 58 | matchLabels:
|
11 |
| - k8s-app: dns-autoscaler |
| 59 | + k8s-app: kube-dns-autoscaler |
12 | 60 | template:
|
13 | 61 | metadata:
|
14 | 62 | labels:
|
15 |
| - k8s-app: dns-autoscaler |
| 63 | + k8s-app: kube-dns-autoscaler |
16 | 64 | spec:
|
| 65 | + priorityClassName: system-cluster-critical |
| 66 | + securityContext: |
| 67 | + seccompProfile: |
| 68 | + type: RuntimeDefault |
| 69 | + supplementalGroups: [ 65534 ] |
| 70 | + fsGroup: 65534 |
| 71 | + nodeSelector: |
| 72 | + kubernetes.io/os: linux |
17 | 73 | containers:
|
18 | 74 | - name: autoscaler
|
19 |
| - image: k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.6.0 |
| 75 | + image: k8s.gcr.io/cpa/cluster-proportional-autoscaler:1.8.4 |
20 | 76 | resources:
|
21 |
| - requests: |
22 |
| - cpu: 20m |
23 |
| - memory: 10Mi |
| 77 | + requests: |
| 78 | + cpu: "20m" |
| 79 | + memory: "10Mi" |
24 | 80 | command:
|
25 |
| - - /cluster-proportional-autoscaler |
26 |
| - - --namespace=kube-system |
27 |
| - - --configmap=dns-autoscaler |
28 |
| - - --target=<SCALE_TARGET> |
29 |
| - # When cluster is using large nodes(with more cores), "coresPerReplica" should dominate. |
30 |
| - # If using small nodes, "nodesPerReplica" should dominate. |
31 |
| - - --default-params={"linear":{"coresPerReplica":256,"nodesPerReplica":16,"min":1}} |
32 |
| - - --logtostderr=true |
33 |
| - - --v=2 |
| 81 | + - /cluster-proportional-autoscaler |
| 82 | + - --namespace=kube-system |
| 83 | + - --configmap=kube-dns-autoscaler |
| 84 | + # Should keep target in sync with cluster/addons/dns/kube-dns.yaml.base |
| 85 | + - --target=<SCALE_TARGET> |
| 86 | + # When cluster is using large nodes(with more cores), "coresPerReplica" should dominate. |
| 87 | + # If using small nodes, "nodesPerReplica" should dominate. |
| 88 | + - --default-params={"linear":{"coresPerReplica":256,"nodesPerReplica":16,"preventSinglePointFailure":true,"includeUnschedulableNodes":true}} |
| 89 | + - --logtostderr=true |
| 90 | + - --v=2 |
| 91 | + tolerations: |
| 92 | + - key: "CriticalAddonsOnly" |
| 93 | + operator: "Exists" |
| 94 | + serviceAccountName: kube-dns-autoscaler |
0 commit comments