# クラスター内のDNSサービスのオートスケール

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->
このページでは、KubernetesクラスターでDNSサービスのオートスケールを有効にし、設定する方法を説明します。


## 始める前に


* <p>Kubernetesクラスターが必要、かつそのクラスターと通信するためにkubectlコマンドラインツールが設定されている必要があります。
このチュートリアルは、コントロールプレーンのホストとして動作していない少なくとも2つのノードを持つクラスターで実行することをおすすめします。
まだクラスターがない場合、<a href="https://minikube.sigs.k8s.io/docs/tutorials/multi_node/">minikube</a>を使って作成するか、
以下のいずれかのKubernetesプレイグラウンドも使用できます:</p>
<ul>
<li><a href="https://labs.iximiuz.com/playgrounds?category=kubernetes&filter=all">iximiuz Labs</a></li>
<li><a href="https://killercoda.com/playgrounds/scenario/kubernetes">Killercoda</a></li>
<li><a href="https://kodekloud.com/public-playgrounds">KodeKloud</a></li>
</ul>
 
  <p>バージョンを確認するには次のコマンドを実行してください:  <code>kubectl version</code>.</p>


* このガイドでは、ノードがAMD64またはIntel 64のCPUアーキテクチャを使用していることを前提としています。

* [Kubernetes DNS](/docs/concepts/services-networking/dns-pod-service/)が有効になっていることを確認してください。



<!-- steps -->

## DNS水平オートスケールがすでに有効になっているかどうかの確認 {#determining-whether-dns-horizontal-autoscaling-is-already-enabled}

kube-system<a class='glossary-tooltip' title='同一の物理クラスター上で複数の仮想クラスターをサポートするために使われる抽象概念です。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/overview/working-with-objects/namespaces' target='_blank' aria-label='名前空間'>名前空間</a>内のクラスターの<a class='glossary-tooltip' title='クラスター上の複製されたアプリケーションを管理します。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/workloads/controllers/deployment/' target='_blank' aria-label='Deployment'>Deployment</a>を一覧表示します:

```shell
kubectl get deployment --namespace=kube-system
```

出力は次のようになります:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    ...
    kube-dns-autoscaler    1/1     1            1           ...
    ...

出力に「kube-dns-autoscaler」が表示されている場合、DNS水平オートスケールはすでに有効になっています。
[オートスケーリングパラメーターの調整](#tuning-autoscaling-parameters)にスキップしても問題ありません。

## DNS Deploymentの名前を取得する {#find-scaling-target}

kube-system名前空間内のクラスターのDNS Deploymentを一覧表示します:

```shell
kubectl get deployment -l k8s-app=kube-dns --namespace=kube-system
```

出力は次のようになります:

    NAME      READY   UP-TO-DATE   AVAILABLE   AGE
    ...
    coredns   2/2     2            2           ...
    ...

DNSサービスのDeploymentが表示されない場合は、名前で検索することもできます:

```shell
kubectl get deployment --namespace=kube-system
```

そして、`coredns`または`kube-dns`という名前のDeploymentを探します。


スケール対象は

    Deployment/<your-deployment-name>

となります。
ここで、`<your-deployment-name>`はDNS Deploymentの名前です。
たとえば、DNS Deploymentの名前がcorednsの場合、スケール対象はDeployment/corednsになります。


<div class="alert alert-info" role="note"><h4 class="alert-heading">備考:</h4>CoreDNSはKubernetesのデフォルトDNSサービスです。
CoreDNSは、もともとkube-dnsを使用していたクラスターでも動作できるように、<code>k8s-app=kube-dns</code>というラベルを設定しています。</div>


## DNS水平オートスケールを有効にする {#enablng-dns-horizontal-autoscaling}

このセクションでは、新しいDeploymentを作成します。
Deployment内のPodは、`cluster-proportional-autoscaler-amd64`イメージに基づくコンテナを実行します。

次の内容で`dns-horizontal-autoscaler.yaml`という名前のファイルを作成します:


















<div class="highlight code-sample">
    <div class="copy-code-icon">
    <a href="https://raw.githubusercontent.com/kubernetes/website/main/content/ja/examples/admin/dns/dns-horizontal-autoscaler.yaml" download="admin/dns/dns-horizontal-autoscaler.yaml"><code>admin/dns/dns-horizontal-autoscaler.yaml</code>
    </a><img src="/images/copycode.svg" class="icon-copycode" onclick="copyCode('admin-dns-dns-horizontal-autoscaler-yaml')" title="admin/dns/dns-horizontal-autoscaler.yamlをクリップボードにコピー"></img></div>
    <div class="includecode" id="admin-dns-dns-horizontal-autoscaler-yaml"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">ServiceAccount</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l">v1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">metadata</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">namespace</span><span class="p">:</span><span class="w"> </span><span class="l">kube-system</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">ClusterRole</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l">rbac.authorization.k8s.io/v1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">metadata</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">system:kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">rules</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">apiGroups</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">resources</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;nodes&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">verbs</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;list&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;watch&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">apiGroups</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">resources</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;replicationcontrollers/scale&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">verbs</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;get&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;update&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">apiGroups</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;apps&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">resources</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;deployments/scale&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;replicasets/scale&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">verbs</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;get&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;update&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c"># Remove the configmaps rule once below issue is fixed:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c"># kubernetes-incubator/cluster-proportional-autoscaler#16</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">apiGroups</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">resources</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;configmaps&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">verbs</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;get&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;create&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">ClusterRoleBinding</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l">rbac.authorization.k8s.io/v1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">metadata</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">system:kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">subjects</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">ServiceAccount</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">namespace</span><span class="p">:</span><span class="w"> </span><span class="l">kube-system</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">roleRef</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">ClusterRole</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">system:kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">apiGroup</span><span class="p">:</span><span class="w"> </span><span class="l">rbac.authorization.k8s.io</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l">apps/v1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">Deployment</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">metadata</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">namespace</span><span class="p">:</span><span class="w"> </span><span class="l">kube-system</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">labels</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">k8s-app</span><span class="p">:</span><span class="w"> </span><span class="l">kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">kubernetes.io/cluster-service</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;true&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">spec</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">selector</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">matchLabels</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">k8s-app</span><span class="p">:</span><span class="w"> </span><span class="l">kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">template</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">metadata</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">labels</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">k8s-app</span><span class="p">:</span><span class="w"> </span><span class="l">kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">spec</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">priorityClassName</span><span class="p">:</span><span class="w"> </span><span class="l">system-cluster-critical</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">securityContext</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">seccompProfile</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">RuntimeDefault</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">supplementalGroups</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="m">65534</span><span class="w"> </span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">fsGroup</span><span class="p">:</span><span class="w"> </span><span class="m">65534</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">nodeSelector</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">kubernetes.io/os</span><span class="p">:</span><span class="w"> </span><span class="l">linux</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">containers</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">registry.k8s.io/cpa/cluster-proportional-autoscaler:1.8.4</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">resources</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span><span class="nt">requests</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                </span><span class="nt">cpu</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;20m&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                </span><span class="nt">memory</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;10Mi&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">command</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- <span class="l">/cluster-proportional-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- --<span class="l">namespace=kube-system</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- --<span class="l">configmap=kube-dns-autoscaler</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="c"># Should keep target in sync with cluster/addons/dns/kube-dns.yaml.base</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- --<span class="l">target=&lt;SCALE_TARGET&gt;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="c"># When cluster is using large nodes(with more cores), &#34;coresPerReplica&#34; should dominate.</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="c"># If using small nodes, &#34;nodesPerReplica&#34; should dominate.</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- --<span class="l">default-params={&#34;linear&#34;:{&#34;coresPerReplica&#34;:256,&#34;nodesPerReplica&#34;:16,&#34;preventSinglePointFailure&#34;:true,&#34;includeUnschedulableNodes&#34;:true}}</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- --<span class="l">logtostderr=true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- --<span class="l">v=2</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">tolerations</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">key</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;CriticalAddonsOnly&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">operator</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Exists&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">serviceAccountName</span><span class="p">:</span><span class="w"> </span><span class="l">kube-dns-autoscaler</span><span class="w">
</span></span></span></code></pre></div></div>
</div>

ファイル内で、`<SCALE_TARGET>`をスケール対象に置き換えます。

設定ファイルがあるディレクトリに移動し、次のコマンドを入力してDeploymentを作成します:

```shell
kubectl apply -f dns-horizontal-autoscaler.yaml
```

コマンドが成功した場合の出力は次のようになります:

    deployment.apps/kube-dns-autoscaler created

DNS水平オートスケールが有効になりました。

## DNSオートスケーリングパラメーターを調整する {#tuning-autoscaling-parameters}

kube-dns-autoscaler <a class='glossary-tooltip' title='機密性のないデータをキーと値のペアで保存するために使用されるAPIオブジェクトです。環境変数、コマンドライン引数、またはボリューム内の設定ファイルとして使用できます。' data-bs-toggle='tooltip' data-bs-placement='top' href='/ja/docs/concepts/configuration/configmap/' target='_blank' aria-label='ConfigMap'>ConfigMap</a>が存在することを確認します:

```shell
kubectl get configmap --namespace=kube-system
```

出力は次のようになります:

    NAME                  DATA      AGE
    ...
    kube-dns-autoscaler   1         ...
    ...

ConfigMap内のデータを変更します:

```shell
kubectl edit configmap kube-dns-autoscaler --namespace=kube-system
```

次の行を探します:

```yaml
linear: '{"coresPerReplica":256,"min":1,"nodesPerReplica":16}'
```

ニーズに応じてフィールドを変更します。
「min」フィールドは、DNSバックエンドの最小数を示します。
実際のバックエンド数は次の式を使用して計算されます:

    replicas = max( ceil( cores × 1/coresPerReplica ) , ceil( nodes × 1/nodesPerReplica ) )

`coresPerReplica`と`nodesPerReplica`の値はどちらも浮動小数点数であることに注意してください。

クラスターで多くのコアを持つノードが使用されている場合は`coresPerReplica`が支配的になります。
クラスターでコアが少ないノードが使用されている場合は`nodesPerReplica`が支配的になります。

他にもサポートされているスケーリングパターンがあります。
詳細は、[cluster-proportional-autoscaler](https://github.com/kubernetes-sigs/cluster-proportional-autoscaler)を参照してください。

## DNS水平オートスケールを無効にする {#disable-dns-horizontal-autoscaling}

DNS水平オートスケールを調整するためのオプションはいくつかあります。
どのオプションを使用するかは、さまざまな条件によって異なります。

### オプション1: kube-dns-autoscaler Deploymentを0レプリカにスケールダウンする {#option-1-scale-down-the-kube-dns-autoscaler-deployment-to-0-replicas}

このオプションはすべての状況で機能します。
次のコマンドを入力します:

```shell
kubectl scale deployment --replicas=0 kube-dns-autoscaler --namespace=kube-system
```

出力は次のようになります:

    deployment.apps/kube-dns-autoscaler scaled

レプリカ数がゼロであることを確認します:

```shell
kubectl get rs --namespace=kube-system
```

出力のDESIRED列とCURRENT列に0が表示されます:

    NAME                                  DESIRED   CURRENT   READY   AGE
    ...
    kube-dns-autoscaler-6b59789fc8        0         0         0       ...
    ...

### オプション2: kube-dns-autoscaler Deploymentを削除する {#option-2-delete-the-kube-dns-autoscaler-deployment}

このオプションは、kube-dns-autoscalerが自身の管理下にある場合、つまり誰も再作成しない場合に機能します:

```shell
kubectl delete deployment kube-dns-autoscaler --namespace=kube-system
```

出力は次のようになります:

    deployment.apps "kube-dns-autoscaler" deleted

### オプション3: マスターノードからkube-dns-autoscalerマニフェストファイルを削除する {#option-3-delete-the-kube-dns-autoscaler-manifest-file-from-the-master-node}

このオプションは、kube-dns-autoscalerが(非推奨の)[Addon Manager](https://git.k8s.io/kubernetes/cluster/addons/README.md)の管理下にあり、マスターノードへの書き込みアクセス権がある場合に機能します。

マスターノードにサインインし、対応するマニフェストファイルを削除します。
このkube-dns-autoscalerの一般的なパスは次のとおりです:

    /etc/kubernetes/addons/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml

マニフェストファイルが削除されると、Addon Managerはkube-dns-autoscaler Deploymentを削除します。



<!-- discussion -->

## DNS水平オートスケールの仕組みを理解する {#understanding-how-dns-horizontal-autoscaling-works}

* cluster-proportional-autoscalerアプリケーションは、DNSサービスとは別にデプロイされます。

* オートスケーラーPodは、クラスター内のノード数とコア数についてKubernetes APIサーバーをポーリングするクライアントを実行します。

* 現在のスケジュール可能なノードとコア、および指定されたスケーリングパラメーターに基づいて、必要なレプリカ数が計算され、DNSバックエンドに適用されます。

* スケーリングパラメーターとデータポイントはConfigMapを介してオートスケーラーに提供され、最新の目的のスケーリングパラメーターで最新の状態を維持するために、ポーリング間隔ごとにパラメーターテーブルを更新します。

* スケーリングパラメーターへの変更は、オートスケーラーPodを再構築または再起動することなく許可されます。

* オートスケーラーは、*linear*と*ladder*の2つの制御パターンをサポートするコントローラーインターフェースを提供します。



## 次の項目

* [クリティカルなアドオンPodの保証されたスケジューリング](/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/)について読む。
* [cluster-proportional-autoscalerの実装](https://github.com/kubernetes-sigs/cluster-proportional-autoscaler)について詳しく学ぶ。
