Update “Autoscale the DNS Service in a Cluster” (#14525)

* Mark code blocks for syntax highlighting

* Use glossary tooltips where appropriate

* Reword DNS horizontal autoscaling task

- Mention that addons manager is deprecated
- Use unordered list for “What's next”

* Note AMD64 instruction set assumption

* Update to more recent cluster-proportional-autoscaler

Based on sample configuration in https://raw.githubusercontent.com/kubernetes/kubernetes/beba9921aa1a73431bf322ffa17df6b2aa314b0c/cluster/addons/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml
This commit is contained in:
Tim Bannister
2019-06-06 06:34:09 +01:00
committed by Kubernetes Prow Robot
parent ba2dc02c77
commit 7289483c7d
2 changed files with 38 additions and 15 deletions
@@ -12,6 +12,8 @@ Kubernetes cluster.
* {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} * {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
* This guide assumes your nodes use the AMD64 or Intel 64 CPU architecture
* Make sure the [DNS feature](/docs/concepts/services-networking/dns-pod-service/) itself is enabled. * Make sure the [DNS feature](/docs/concepts/services-networking/dns-pod-service/) itself is enabled.
* Kubernetes version 1.4.0 or later is recommended. * Kubernetes version 1.4.0 or later is recommended.
@@ -22,9 +24,12 @@ Kubernetes cluster.
## Determining whether DNS horizontal autoscaling is already enabled ## Determining whether DNS horizontal autoscaling is already enabled
List the Deployments in your cluster in the kube-system namespace: List the {{< glossary_tooltip text="Deployments" term_id="deployment" >}}
in your cluster in the kube-system namespace:
kubectl get deployment --namespace=kube-system ```shell
kubectl get deployment --namespace=kube-system
```
The output is similar to this: The output is similar to this:
@@ -41,7 +46,9 @@ already enabled, and you can skip to
List the Deployments in your cluster in the kube-system namespace: List the Deployments in your cluster in the kube-system namespace:
kubectl get deployment --namespace=kube-system ```shell
kubectl get deployment --namespace=kube-system
```
The output is similar to this: The output is similar to this:
@@ -58,7 +65,9 @@ ReplicationController instead of a Deployment. So if you don't see kube-dns,
or a similar name, in the preceding output, list the ReplicationControllers in or a similar name, in the preceding output, list the ReplicationControllers in
your cluster in the kube-system namespace: your cluster in the kube-system namespace:
kubectl get rc --namespace=kube-system ```shell
kubectl get rc --namespace=kube-system
```
The output is similar to this: The output is similar to this:
@@ -98,7 +107,9 @@ In the file, replace `<SCALE_TARGET>` with your scale target.
Go to the directory that contains your configuration file, and enter this Go to the directory that contains your configuration file, and enter this
command to create the Deployment: command to create the Deployment:
kubectl apply -f dns-horizontal-autoscaler.yaml ```shell
kubectl apply -f dns-horizontal-autoscaler.yaml
```
The output of a successful command is: The output of a successful command is:
@@ -108,9 +119,11 @@ DNS horizontal autoscaling is now enabled.
## Tuning autoscaling parameters ## Tuning autoscaling parameters
Verify that the dns-autoscaler ConfigMap exists: Verify that the dns-autoscaler {{< glossary_tooltip text="ConfigMap" term_id="configmap" >}} exists:
kubectl get configmap --namespace=kube-system ```shell
kubectl get configmap --namespace=kube-system
```
The output is similar to this: The output is similar to this:
@@ -121,11 +134,15 @@ The output is similar to this:
Modify the data in the ConfigMap: Modify the data in the ConfigMap:
kubectl edit configmap dns-autoscaler --namespace=kube-system ```shell
kubectl edit configmap dns-autoscaler --namespace=kube-system
```
Look for this line: Look for this line:
linear: '{"coresPerReplica":256,"min":1,"nodesPerReplica":16}' ```yaml
linear: '{"coresPerReplica":256,"min":1,"nodesPerReplica":16}'
```
Modify the fields according to your needs. The "min" field indicates the Modify the fields according to your needs. The "min" field indicates the
minimal number of DNS backends. The actual number of backends number is minimal number of DNS backends. The actual number of backends number is
@@ -152,7 +169,9 @@ use depends on different conditions.
This option works for all situations. Enter this command: This option works for all situations. Enter this command:
kubectl scale deployment --replicas=0 dns-autoscaler --namespace=kube-system ```shell
kubectl scale deployment --replicas=0 dns-autoscaler --namespace=kube-system
```
The output is: The output is:
@@ -160,7 +179,9 @@ The output is:
Verify that the replica count is zero: Verify that the replica count is zero:
kubectl get deployment --namespace=kube-system ```shell
kubectl get deployment --namespace=kube-system
```
The output displays 0 in the DESIRED and CURRENT columns: The output displays 0 in the DESIRED and CURRENT columns:
@@ -174,7 +195,9 @@ The output displays 0 in the DESIRED and CURRENT columns:
This option works if dns-autoscaler is under your own control, which means This option works if dns-autoscaler is under your own control, which means
no one will re-create it: no one will re-create it:
kubectl delete deployment dns-autoscaler --namespace=kube-system ```shell
kubectl delete deployment dns-autoscaler --namespace=kube-system
```
The output is: The output is:
@@ -182,7 +205,7 @@ The output is:
### Option 3: Delete the dns-autoscaler manifest file from the master node ### Option 3: Delete the dns-autoscaler manifest file from the master node
This option works if dns-autoscaler is under control of the This option works if dns-autoscaler is under control of the (deprecated)
[Addon Manager](https://git.k8s.io/kubernetes/cluster/addons/README.md), [Addon Manager](https://git.k8s.io/kubernetes/cluster/addons/README.md),
and you have write access to the master node. and you have write access to the master node.
@@ -235,6 +258,6 @@ is under consideration as a future development.
{{% /capture %}} {{% /capture %}}
{{% capture whatsnext %}} {{% capture whatsnext %}}
Learn more about the * Learn more about the
[implementation of cluster-proportional-autoscaler](https://github.com/kubernetes-incubator/cluster-proportional-autoscaler). [implementation of cluster-proportional-autoscaler](https://github.com/kubernetes-incubator/cluster-proportional-autoscaler).
{{% /capture %}} {{% /capture %}}
@@ -16,7 +16,7 @@ spec:
spec: spec:
containers: containers:
- name: autoscaler - name: autoscaler
image: k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.1.1 image: k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.6.0
resources: resources:
requests: requests:
cpu: 20m cpu: 20m