クラスターの DNS プロバイダーの構成
IBM Cloud® Kubernetes Service クラスター内の各サービスには、DNS 要求を解決するためにクラスターの DNS プロバイダーが登録するドメイン・ネーム・システム (DNS) 名が割り当てられます。 サービスおよびポッドの DNS に関する詳細については、 『 Kubernetes 』のドキュメントを参照してください。
クラスタのDNSプロバイダは CoreDNS です。これは汎用的な権威DNSサーバーであり、 Kubernetes との後方互換性を保ちつつ、拡張性のある統合機能を提供します。 CoreDNS は、単一の実行可能プログラムであり単一のプロセスであるため、他のクラスター DNS プロバイダーよりも、問題が起きる可能性がある依存関係や移動パーツが少なくなっています。
また、このプロジェクトは Kubernetes プロジェクトと同じ言語である Go で記述されています。このことは、メモリーの保護に役立ちます。 最後に、 CoreDNS は、 CoreDNS のドキュメントに記載されている一般的な設定など、カスタムDNSエントリを作成できるため、他のクラスタDNSプロバイダーよりも柔軟なユースケースに対応しています。
- CoreDNS および NodeLocal DNS キャッシュ設定の変更(バージョン 1.34 以降)
- デフォルトのDNSキャッシュ時間は、および NodeLocalCoreDNS DNS設定の両方で、30秒から120秒に延長されました。 この変更は、DNSキャッシュの設定 ConfigMap に適用されます。 キャッシュの持続時間が短いためにDNSルックアップが頻繁に発生し、 pDNS (または UDP )のトラフィック制限に達しているユーザーがいた。 30秒のキャッシュ間隔は、ヘルスチェックエンドポイントなど非常に頻繁に変更されるDNSレコードを除き、ほとんど必要ありません。 ほとんどのワークロードでは、120秒のデフォルトキャッシュがより優れたパフォーマンスを提供し、不要なDNSトラフィックを削減します。 特定のユースケースでより短いキャッシュ時間を必要とするユーザーは、この設定を上書きできます。
クラスター DNS プロバイダーの自動スケーリング
デフォルトでは、CoreDNS には、クラスター内のワーカー・ノードとコアの数に応じて CoreDNS ポッドを自動スケーリングするためのデプロイメントが含まれています。 CoreDNS 自動スケーリング機能のパラメーターを微調整するには、CoreDNS 自動スケーリング機能の構成マップを編集します。 例えば、アプリでクラスター CoreDNS プロバイダーを頻繁に使用している場合は、アプリをサポートするために DNS ポッドの最小数を増やす必要があります。 詳細については、『 Kubernetes 』のドキュメントを参照してください。
始める前に: アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
-
CoreDNS の自動スケーリング機能のデプロイメントが使用可能であることを確認します。 CLI 出力で、1 つのデプロイメントが AVAILABLE であることを確認します。
kubectl get deployment -n kube-system coredns-autoscaler出力例
NAME READY UP-TO-DATE AVAILABLE AGE coredns-autoscaler 1/1 1 1 69d -
CoreDNS 自動スケーリング機能のデフォルト設定を編集します。
data.linearフィールドを探します。デフォルトでは、クラスター・サイズ (preventSinglePointFailure: true) に関係なく、16 個のワーカー・ノードごとに 1 つの CoreDNS ポッドまたは 256 個のコアになり、少なくとも 2 つの CoreDNS ポッドが存在します。 詳しくは、 Kubernetes の資料を参照してください。kubectl edit configmap -n kube-system coredns-autoscaler出力例
apiVersion: v1 data: linear: '{"coresPerReplica":256,"nodesPerReplica":16,"preventSinglePointFailure":true}' kind: ConfigMap metadata: ...
クラスター DNS プロバイダーのカスタマイズ
CoreDNS をカスタマイズするには、CoreDNS の構成マップを編集します。 例えば、外部ホストを指すサービスを解決するように、スタブ・ドメインおよびアップストリーム DNS サーバーを構成することができます。 さらに、 CoreDNS ( ConfigMap )内で、 複数のCorefileを設定することもできます。 詳細については、『 Kubernetes 』のドキュメントを参照してください。
NodeLocal DNS キャッシングは、DNS 解決のキャッシュを維持するために CoreDNS に依存します。 DNS 解決の整合性を維持するには、該当する NodeLocal DNS キャッシュと CoreDNS 構成 (スタブ・ドメインなど) が同じになるよう保持します。
始める前に: アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
-
CoreDNS のデプロイメントが使用可能であることを確認します。 CLI 出力で、1 つのデプロイメントが AVAILABLE であることを確認します。
kubectl get deployment -n kube-system coredns出力例
NAME READY UP-TO-DATE AVAILABLE AGE coredns 3/3 3 3 69d -
CoreDNS 構成マップのデフォルト設定を編集します。 スタブ・ドメインおよびアップストリーム DNS サーバーをカスタマイズするには、構成マップの
dataセクションで Corefile を使用します。 詳細については、『 Kubernetes 』のドキュメントを参照してください。CoreDNS
proxyプラグインが非推奨になり、forwardプラグインに置き換えられています。 CoreDNS 構成マップを更新する場合は、proxyの出現箇所をすべてforwardに置き換えてください。kubectl edit configmap -n kube-system corednsCoreDNS の出力例
apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube-system data: Corefile: | import <MyCorefile> .:53 { errors health { lameduck 10s } ready kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 } prometheus :9153 forward . /etc/resolv.conf { max_concurrent 1000 } cache 30 { disable success cluster.local disable denial cluster.local } loop reload loadbalance } <MyCorefile>: | abc.com:53 { errors cache 30 loop forward . 1.2.3.4 } -
オプション: CoreDNS configmap にカスタム Corefile を追加します。 次の例では、「
data.Corefile」セクションにimport <MyCoreFile>を含め、「data.<MyCorefile>」セクションに、独自のCorefile情報を記入してください。 詳細については、 Corefileのインポートに関するドキュメントを参照してください。CoreDNS
proxyプラグインが非推奨になり、forwardプラグインに置き換えられています。 CoreDNS 構成マップを更新する場合は、proxyの出現箇所をすべてforwardに置き換えてください。kubectl edit configmap -n kube-system corednsカスタム Corefile の出力例
apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube-system data: Corefile: | import <MyCorefile> .:53 { errors health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream 172.16.0.1 fallthrough in-addr.arpa ip6.arpa } prometheus :9153 forward . /etc/resolv.conf { max_concurrent 1000 } cache 30 { disable success cluster.local disable denial cluster.local } loop reload loadbalance } <MyCorefile>: | abc.com:53 { errors cache 30 loop forward . 1.2.3.4 } -
数分後に、CoreDNS ポッドで、構成マップの変更が反映されます。
NodeLocal DNS キャッシュのセットアップ
IBM Cloud Kubernetes Service クラスターでは、一部のワーカー・ノードに NodeLocal DNS キャッシング・エージェントをセットアップして、クラスター DNS のパフォーマンスと可用性を向上させることができます。 詳細については、 Kubernetes のドキュメントを参照してください。
デフォルトでは、 ClusterFirst DNSポリシー を使用するポッドに対するクラスターDNSリクエストは、クラスターDNSサービスに送信されます。 NodeLocal DNS キャッシングをワーカー・ノードで有効にすると、そのワーカー・ノードのポッドに対するクラスター DNS 要求が、代わりにローカルの DNS キャッシュに送信されるようになります。このキャッシュは、リンク・ローカル IP アドレス 169.254.20.10 を listen します。 DNS キャッシュは kube-dns 名前空間の kube-system サービスのクラスター IP でも listen します。
クラスターでゾーン対応 DNS を既に使用している場合は、DNS キャッシュ・ラベルを追加しないでください。 また、NodeLocal DNS キャッシングは、DNS 解決のキャッシュを維持するために CoreDNS に依存します。 DNS 解決の整合性を維持するには、該当する NodeLocal DNS キャッシュと CoreDNS 構成 (スタブ・ドメインなど)
が同じになるよう保持します。
- バージョン 1.34 およびそれ以前
NodeLocalDNSキャッシュはオプトイン。 ワーカーノードにibm-cloud.kubernetes.io/node-local-dns-enabled=trueラベルを追加して、手動で有効にする必要があります。- バージョン 1.35 以降
NodeLocalDNSキャッシュは、すべてのワーカーノードでデフォルトで有効になっています。 バージョン 1.35 にアップグレードされたクラスタは、オプトアウトしない限り、 NodeLocal DNSが自動的に有効になります。 自動有効化を防ぐには、アップグレード前にワーカーノードにibm-cloud.kubernetes.io/node-local-dns-disabled=trueラベルを貼ってください。
バージョン 1.35 の変更点については、 1.35 バージョン情報を 参照のこと。
NodeLocal DNS キャッシュの有効化
Kubernetes クラスター内の 1 台以上のワーカー・ノードで NodeLocal DNS キャッシュを有効にします。
- バージョン 1.35 以降
- NodeLocal DNSはすべてのワーカーノードでデフォルトで有効になっています。 以前に NodeLocal DNS を無効にした場合、または NodeLocal DNS を無効にして新しいワーカーノードを追加する場合のみ、以下の手順に従ってください。
- バージョン 1.34 およびそれ以前
- NodeLocal DNSはオプトインである。 ワーカーノードで有効にするには、以下の手順に従ってください。
以下の手順で、特定のワーカー・ノードで実行される DNS ポッドを更新できます。 また、これ以降のノードがラベルを継承するようにワーカー・プールにラベルを付けることもできます。
作業を開始する前に、この機能の影響を受ける DNSアウトバウンドネットワークポリシー (たとえば、DNSアウトバウンドにPodやネームスペースのセレクタを使用しているポリシーなど)を更新してください。
kubectl get networkpolicy --all-namespaces -o yaml
-
アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
-
CoreDNS のスタブ・ドメインおよびアップストリーム DNS サーバーをカスタマイズした場合は、これらのスタブ・ドメインおよびアップストリーム DNS サーバーを使用して
NodeLocalDNS キャッシュをカスタマイズする必要もあります。 -
クラスター内のノードをリストします。
NodeLocalDNS キャッシング・エージェント・ポッドは、各ノードで実行されるデーモン・セットに含まれています。kubectl get nodes -
ibm-cloud.kubernetes.io/node-local-dns-enabled=trueラベルをワーカー・ノードに追加します。 このラベルは、ワーカー・ノード上の DNS キャッシング・エージェント・ポッドを開始します。- 1 つ以上のワーカー・ノードにラベルを追加します。
-
クラスター内のすべてのワーカー・ノードにラベルを付けるには、既存のすべてのワーカー・プールにラベルを追加します。
-
個々のワーカー・ノードにラベルを付けるには、以下のようにします。
kubectl label node <node_name> --overwrite "ibm-cloud.kubernetes.io/node-local-dns-enabled=true"
-
NODE-LOCAL-DNS-ENABLEDフィールドがtrueに設定されていることを確認して、ノードにラベルがあることを検証します。
kubectl get nodes -L "ibm-cloud.kubernetes.io/node-local-dns-enabled" ``` 出力例 ```sh {: screen} NAME STATUS ROLES AGE VERSION NODE-LOCAL-DNS-ENABLED 10.xxx.xx.xxx Ready,SchedulingDisabled <none> 28h v1.35+IKS true ``` 3. ワーカー・ノードで DNS キャッシング・エージェント・ポッドが実行されていることを確認します。 ```sh {: pre} kubectl get pods -n kube-system -l k8s-app=node-local-dns -o wide ``` 出力例 ```sh {: screen} NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES node-local-dns-pvnjn 1/1 Running 0 1m 10.xxx.xx.xxx 10.xxx.xx.xxx <none> <none> ``` - 1 つ以上のワーカー・ノードにラベルを追加します。
-
ワーカー・ノードごとに上記の手順を繰り返して、DNS キャッシングを有効にします。
NodeLocal DNS キャッシュの無効化
1 台以上のワーカー・ノードで NodeLocal DNS キャッシュを無効にします。
- バージョン 1.35 以降
-
デフォルトで有効になっている NodeLocal DNS を無効にするには、ワーカーノードに
ibm-cloud.kubernetes.io/node-local-dns-disabled=trueラベルを追加します。kubectl label node --all --overwrite "ibm-cloud.kubernetes.io/node-local-dns-disabled=true" - バージョン 1.34 およびそれ以前
-
NodeLocal DNS を無効にするには、ワーカーノードから
ibm-cloud.kubernetes.io/node-local-dns-enabledラベルを削除します。
-
アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
-
ワーカー・ノードから
ibm-cloud.kubernetes.io/node-local-dns-enabledラベルを削除します。 この操作により、ワーカー・ノード上の DNS キャッシング・エージェント・ポッドが終了します。クラスター内のすべてのワーカー・ノードからラベルを削除するには、以下のコマンドを実行します。
kubectl label node --all --overwrite "ibm-cloud.kubernetes.io/node-local-dns-enabled-"個々のワーカー・ノードからラベルを削除するには、以下のコマンドを実行します。
kubectl label node <node_name> "ibm-cloud.kubernetes.io/node-local-dns-enabled-"NODE-LOCAL-DNS-ENABLEDフィールドが空であることを確認して、ラベルが削除されていることを検証します。
kubectl get nodes -L "ibm-cloud.kubernetes.io/node-local-dns-enabled" ``` 出力例 ```sh {: screen} NAME STATUS ROLES AGE VERSION NODE-LOCAL-DNS-ENABLED 10.xxx.xx.xxx Ready,SchedulingDisabled <none> 28h v1.35+IKS ``` 2. DNS キャッシュが無効になっているノードでポッドが実行されていないことを確認します。 出力にはポッドが表示されていません。 ```sh {: pre} kubectl get pods -n kube-system -l k8s-app=node-local-dns -o wide ``` 出力例 ```sh {: screen} No resources found. ``` -
ワーカー・ノードごとに上記の手順を繰り返して、DNS キャッシングを無効にします。
NodeLocal DNS キャッシュのカスタマイズ
2 つの構成マップのいずれかを編集して、NodeLocal DNS キャッシュをカスタマイズできます。
node-local-dns構成マップ:NodeLocalDNS キャッシュ構成をカスタマイズします。node-local-dns-config構成マップ: 外部ホストを指すサービスを解決するようにスタブ・ドメインまたはアップストリーム DNS サーバーをカスタマイズして、NodeLocalDNS キャッシュ構成を拡張します。
NodeLocal DNS キャッシングは、DNS 解決のキャッシュを維持するために CoreDNS に依存します。 DNS 解決の整合性を維持するには、該当する NodeLocal DNS キャッシュと CoreDNS 構成 (スタブ・ドメインなど) が同じになるよう保持します。
一般的な構成更新のための node-local-dns 構成マップの編集
node-local-dns 構成マップを編集して、NodeLocal DNS キャッシュ構成をカスタマイズします。
始める前に: アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
-
NodeLocalDNS キャッシュ・デーモン・セットが使用可能であることを確認します。kubectl get ds -n kube-system node-local-dns出力例
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE node-local-dns 4 4 4 4 4 ibm-cloud.kubernetes.io/node-local-dns-enabled=true 82d -
デフォルト設定を編集するか、カスタム Corefile を
NodeLocalDNS キャッシュ構成マップに追加します。 インポートする各 Corefile は、corednsパスを使用する必要があります。 詳細については、『 Kubernetes 』のドキュメントを参照してください。NodeLocalのDNSキャッシュでは、サポートされている プラグインは限られています。kubectl edit configmap -n kube-system node-local-dns出力例
apiVersion: v1 kind: ConfigMap metadata: name: node-local-dns namespace: kube-system data: Corefile: | # Add your NodeLocal DNS customizations as import files under ./coredns directory. # Refer to /docs/containers?topic=containers-cluster_dns for details. import ./coredns/<MyCorefile> cluster.local:53 abc.com:53 { errors cache { success 9984 30 denial 9984 5 } reload loop bind 169.254.20.10 172.21.0.10 forward . __PILLAR__CLUSTER__DNS__ { force_tcp } prometheus :9253 health 169.254.20.10:8080 } in-addr.arpa:53 { errors cache 30 reload loop bind 169.254.20.10 172.21.0.10 forward . __PILLAR__CLUSTER__DNS__ { force_tcp } prometheus :9253 } ip6.arpa:53 { errors cache 30 reload loop bind 169.254.20.10 172.21.0.10 forward . __PILLAR__CLUSTER__DNS__ { force_tcp } prometheus :9253 } .:53 { errors cache 30 { disable success cluster.local disable denial cluster.local } reload loop bind 169.254.20.10 172.21.0.10 forward . __PILLAR__UPSTREAM__SERVERS__ { force_tcp } prometheus :9253 } <MyCorefile>: | # Add custom corefile content ... -
数分後に、
NodeLocalDNS キャッシュ・ポッドで、構成マップの変更が反映されます。
スタブ・ドメインまたはアップストリーム・サーバーを使用して拡張するための node-local-dns-config 構成マップの編集
node-local-dns-config 構成マップを編集し、スタブ・ドメインまたはアップストリーム DNS サーバーのカスタマイズなどによって NodeLocal DNS キャッシュ構成を拡張します。 詳細については、『 Kubernetes 』のドキュメントを参照してください。
始める前に: アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
-
NodeLocalDNS キャッシュ・デーモン・セットが使用可能であることを確認します。kubectl get ds -n kube-system node-local-dns出力例
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE node-local-dns 4 4 4 4 4 ibm-cloud.kubernetes.io/node-local-dns-enabled=true 82d -
NodeLocalDNS キャッシュに構成マップがあることを確認します。NodeLocalDNS キャッシュの構成マップが存在するかどうかを判別します。
kubectl get cm -n kube-system node-local-dns-config ``` 構成マップが存在しない場合の出力例 ```sh {: screen} Error from server (NotFound): ConfigMaps "node-local-dns-config" not found ``` 2. 構成マップが存在しない場合は、`NodeLocal` DNS キャッシュの構成マップを作成します。 ```sh {: pre} kubectl create cm -n kube-system node-local-dns-config ``` 出力例 ```sh {: screen} configmap/node-local-dns-config created ``` -
NodeLocalDNS キャッシュの構成マップを編集します。 構成マップで、KubeDNS 構文を使用して、スタブ・ドメインおよびアップストリーム DNS サーバーをカスタマイズします。 詳細については、『 Kubernetes 』のドキュメントを参照してください。kubectl edit cm -n kube-system node-local-dns-config出力例
apiVersion: v1 kind: ConfigMap metadata: name: node-local-dns-config namespace: kube-system data: stubDomains: | {"abc.com" : ["1.2.3.4"]} -
数分後に、
NodeLocalDNS キャッシュ・ポッドで、構成マップの変更が反映されます。
ゾーン対応 DNS のセットアップ
マルチゾーン IBM Cloud Kubernetes Service クラスターでは、ゾーン対応 DNS をセットアップしてクラスター DNS のパフォーマンスと可用性を向上させることができます。 このセットアップは、同じゾーンのクラスター DNS のトラフィックを優先するように NodeLocal DNS キャッシュを拡張したものです。
デフォルトでは、クラスターにはゾーン対応 DNS のリソースではなく、クラスター規模の DNS のリソースがセットアップされます。 ゾーン対応 DNS をセットアップした後も、クラスター規模の DNS のリソースはバックアップ DNS として実行され続けます。 ゾーン対応 DNS のリソースはクラスター規模の DNS とは別のものであるため、ゾーン対応 DNS を変更してもクラスター規模の DNS には影響はありません。
クラスターでゾーン対応 DNS を使用している場合は、DNS キャッシュ・ラベルを使用しないでください。
ゾーン対応 DNS のセットアップ
マルチゾーン・クラスターでゾーン対応 DNS をセットアップするには、以下のステップを実行します。
-
ゾーン認識型DNSの影響を受ける DNS送信ネットワークポリシー (たとえば、DNS送信にPodやネームスペースのセレクタを利用しているポリシーなど)をすべて更新してください。 ネットワークポリシーのリストを取得するには、次のコマンドを実行してください。
kubectl get networkpolicy --all-namespaces -o yaml -
kube-system名前空間内のcorednsConfigMap にibm-cloud.kubernetes.io/deploy-zone-aware-dns=trueというラベルを付けます。kubectl label cm -n kube-system coredns --overwrite "ibm-cloud.kubernetes.io/deploy-zone-aware-dns=true" -
クラスター・マスターをリフレッシュ して、ゾーン対応 DNS リソースをデプロイします。
ibmcloud ks cluster master refresh -c CLUSTER_NAME_OR_ID -
クラスターの詳細情報に含まれている「Master Health」を確認し、リフレッシュ操作が完了するまで待ちます。
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID -
CoreDNS のスタブ・ドメインおよびアップストリーム DNS サーバーをカスタマイズした場合は、これらのスタブ・ドメインおよびアップストリーム DNS サーバーを使用して
NodeLocalDNS キャッシュをカスタマイズする必要もあります。 -
クラスターのゾーンの環境変数を設定します。
ZONES=$(kubectl get nodes --no-headers --ignore-not-found=true -o jsonpath='{range .items[*]}{.metadata.labels.topology\.kubernetes\.io/zone}{"\n"}{end}' | uniq) -
すべてのゾーンで CoreDNS と CoreDNS 自動スケーリング機能ポッドを開始します。
for ZONE in ${ZONES}; do kubectl scale deployment -n kube-system "coredns-autoscaler-${ZONE}" --replicas=1 done -
すべてのゾーンで CoreDNS と CoreDNS 自動スケーリング機能ポッドが実行されていることを確認します。
for ZONE in ${ZONES}; do kubectl get pods -n kube-system -l "k8s-app=coredns-autoscaler-${ZONE}" -o wide kubectl get pods -n kube-system -l "k8s-app=coredns-${ZONE}" -o wide done -
すべてのワーカー・ノードで
NodeLocalDNS キャッシュ・ポッドを開始します。kubectl label nodes --all --overwrite "ibm-cloud.kubernetes.io/zone-aware-dns-enabled=true" -
すべてのワーカー・ノードで
NodeLocalDNS キャッシュ・ポッドが実行されていることを確認します。for ZONE in ${ZONES}; do kubectl get pods -n kube-system -l "k8s-app=node-local-dns-${ZONE}" -o wide done -
ワーカープールにラベルを付与し、将来のワーカーノードが「
ibm-cloud.kubernetes.io/zone-aware-dns-enabled=true」というラベルを継承するようにしてください。
ゾーン対応 DNS の無効化と削除
ゾーン対応 DNS を削除するには、まず、マルチゾーン・クラスターの各ゾーンのゾーン対応 DNS を無効にする必要があります。 その後、ゾーン対応 DNS のリソースを削除します。
-
ibm-cloud.kubernetes.io/zone-aware-dns-enabled=trueラベルをワーカー・プールから削除します。 -
クラスターのゾーンの環境変数を設定します。
ZONES=$(kubectl get nodes --no-headers --ignore-not-found=true -o jsonpath='{range .items[*]}{.metadata.labels.topology\.kubernetes\.io/zone}{"\n"}{end}' | uniq) -
すべてのワーカー・ノードで
NodeLocalDNS キャッシュ・ポッドを停止します。kubectl label nodes --all --overwrite "ibm-cloud.kubernetes.io/zone-aware-dns-enabled-" -
すべてのゾーンで CoreDNS 自動スケーリング機能ポッドを停止します。
for ZONE in ${ZONES}; do kubectl scale deployment -n kube-system "coredns-autoscaler-${ZONE}" --replicas=0 done -
すべてのゾーンで CoreDNS 自動スケーリング機能ポッドが実行されなくなったことを確認します。
for ZONE in ${ZONES}; do kubectl get pods -n kube-system -l "k8s-app=coredns-autoscaler-${ZONE}" done -
すべてのゾーンで CoreDNS ポッドを停止します。
for ZONE in ${ZONES}; do kubectl scale deployment -n kube-system "coredns-${ZONE}" --replicas=0 done -
ibm-cloud.kubernetes.io/deploy-zone-aware-dns=trueラベルを、coredns名前空間のkube-system構成マップから削除します。kubectl label cm -n kube-system coredns --overwrite "ibm-cloud.kubernetes.io/deploy-zone-aware-dns-" -
クラスター・マスターをリフレッシュして、ゾーン対応 DNS のリソースを削除します。
ibmcloud ks cluster master refresh --cluster CLUSTER_NAME_OR_ID -
クラスターの詳細情報に含まれている「Master Health」を確認し、リフレッシュ操作が完了するまで待ちます。
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID