kube-dns から CoreDNS への移行

Kubernetes における kube-dns から CoreDNS への移行ガイド

CoreDNS は現在 Kubernetes のベータ機能であり、Kubernetes 1.11 の一般提供 (GA)に向けて開発が進められています。これは、kubeadm、kube-up、minikube、kops などのインストールツールキットを介して、CoreDNS が Kubernetes の標準として利用可能になることを意味します。

このドキュメントは、Kubernetes クラスタを起動するために利用可能なさまざまなツールを使用する場合に、DNS サービスを CoreDNS から kube-dns に移行するためのガイドです。(原文ママ:CoreDNS から kube-dns へ)

Kubeadm を使用した CoreDNS のインストール

Kubeadm を使用して kube-dns の代わりに CoreDNS をインストールする方法に関する詳細なガイドは、こちらにあります。Kubernetes v1.10 以降、CoreDNS は kube-dns ConfigMap から CoreDNS ConfigMap への変換をサポートしています。つまり、kube-dns ConfigMap を介して stubdomainsupstreamnameservers、および federation を構成していた場合、kubeadm upgrade を使用して CoreDNS のインストールを選択すると、同等の CoreDNS ConfigMap に自動的に変換されます。

kube-dns の Stubdomainupstreamnameserver は、CoreDNS の proxy に変換されます。kube-dns の federation には、CoreDNS に同等の federation があります。

kube-dns の ConfigMap の例。

apiVersion: v1
data:
  federations: |
    {"foo" : "foo.feddomain.com"}
  stubDomains: |
    {"abc.com" : ["1.2.3.4"], "my.cluster.local" : ["2.3.4.5"]}
  upstreamNameservers: |
    ["8.8.8.8", "8.8.4.4"]
kind: ConfigMap
metadata:
  creationTimestamp: 2018-01-22T20:21:56Z
  name: kube-dns
  namespace: kube-system

変換後の CoreDNS Corefile。

   .:53 {
        errors
        health
        kubernetes cluster.local  in-addr.arpa ip6.arpa {
           upstream  8.8.8.8 8.8.4.4
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
        }
        federation cluster.local {
           foo foo.feddomain.com
        }
        prometheus :9153
        proxy .  8.8.8.8 8.8.4.4
        cache 30
    }
    abc.com:53 {
        errors
        cache 30
        proxy . 1.2.3.4
    }
    my.cluster.local:53 {
        errors
        cache 30
        proxy . 2.3.4.5
    }

Minikube を使用した CoreDNS のインストール。

CoreDNS は アドオンマネージャー で利用可能ですが、デフォルトでは無効になっています。

$ minikube addons list
- kube-dns: enabled
- registry: disabled
- registry-creds: disabled
- freshpod: disabled
- addon-manager: enabled
- dashboard: enabled
- coredns: disabled
- heapster: disabled
- efk: disabled
- ingress: disabled
- default-storageclass: enabled
- storage-provisioner: enabled

CoreDNS を有効にするには、次のコマンドを実行します。

注意: CoreDNS を有効にした後、kube-dns を無効にしてください。CoreDNS と kube-dns の両方が実行されている場合、クエリは CoreDNS または kube-dns のいずれかにランダムにヒットする可能性があります。

$ minikube addons enable coredns
coredns was successfully enabled

kube-up における CoreDNS

Kube-up は、Kubernetes クラスタを開始するもう1つの方法であり、現在は主にエンドツーエンド (e2e) テストの目的で GCE に Kubernetes をデプロイするために使用されています。DNS サービスをインストールするには、環境変数 ENABLE_CLUSTER_DNS (デフォルト=true) が必要です。CoreDNS をデフォルトの DNS サービスとしてインストールするには、環境変数 CLUSTER_DNS_CORE_DNStrue に設定する必要があります。

Kops における CoreDNS

現在、Kops v1.10 は、kube-dns の代わりにインストールされるオプションとして CoreDNS を含むように設定されています。kube-dns の代わりに CoreDNS をインストールするには、Kops のクラスタ yaml 構成providerCoreDNS として指定する必要があります。

spec:
  kubeDNS:
    provider: CoreDNS

これにより、kube-dns の代わりに CoreDNS がインストールされます。

その他の方法による CoreDNS のインストール

kube-dns の代わりに CoreDNS をインストールしたいが、kubeadmminikubekube-up、または kops を使用していないユーザーのために、CoreDNS デプロイメントリポジトリに手順があり、kube-dns から CoreDNS への移行に役立ちます。ユーザーは、CoreDNS をデプロイした後、kube-dns デプロイメントを削除する必要があります。そうでない場合、CoreDNS と kube-dns の両方が実行されていると、クエリは CoreDNS または kube-dns のいずれかにランダムにヒットする可能性があります。

Sandeep Rajan
公開日: タグ: ディスカバリDNSドキュメントKube-DNSKubernetes移行サービス 単語数: 524 語。