このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
CoreDNS Amazon EKS セルフマネージドアドオンの更新
重要
セルフマネージド型のアドオンを使用する代わりに、Amazon EKS タイプのアドオンをクラスターに追加することをお勧めします。タイプの違いがよくわからない場合は、「Amazon EKS アドオン」を参照してください。Amazon EKS アドオンをクラスターに追加する方法については、「Amazon EKS アドオンの作成」を参照してください。Amazon EKS アドオンを使用できない場合は、その理由に関する問題をコンテナロードマップ GitHub リポジトリに送信することをお勧めします
開始する前に、アップグレードに関する考慮事項を確認してください。詳細については、「CoreDNS アップグレードに関する重要な考慮事項」を参照してください。
-
クラスターにインストールされているアドオンがセルフマネージド型であることを確認します。
my-cluster
の部分は、自分のクラスター名に置き換えます。aws eks describe-addon --cluster-name
my-cluster
--addon-name coredns --query addon.addonVersion --output textエラーメッセージが返された場合、クラスターにセルフマネージド型のアドオンがインストールされています。インストールするには、この手順の残りのステップを完了します。バージョン番号が返された場合、クラスターに Amazon EKS タイプのアドオンがインストールされています。Amazon EKS タイプのアドオンを更新するには、この手順を使用するのではなく、「CoreDNS Amazon EKS アドオンの更新」の手順を使用してください。アドオンタイプの違いがよくわからない場合は、「Amazon EKS アドオン」を参照してください。
-
クラスターに現在インストールされているコンテナイメージのバージョンを確認します。
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
出力例は次のとおりです。
v1.8.7-eksbuild.2
-
現在の CoreDNS のバージョンが
v1.5.0
以降で、CoreDNS バージョン表に記載されるバージョンよりも前の場合、この手順はスキップしてください。現在のバージョンが1.5.0
より前の場合、プロキシアドオンではなく進んだアドオンを使用するためには、CoreDNS のConfigMap
を修正する必要があります。-
次のコマンドを使用して
ConfigMap
を開きます。kubectl edit configmap coredns -n kube-system
-
次の行の
proxy
をforward
に置き換えます。ファイルを保存し、エディタを終了します。
. /etc/resolv.confproxy
-
-
Kubernetes
1.17
以前にクラスターを最初にデプロイした場合、CoreDNS マニフェストから廃止された行の削除が必要な場合がります。重要
CoreDNS バージョン
1.7.0
に更新する前に、この手順を完了する必要があります。以前のバージョンに更新する場合でも、この手順を完了することをお勧めします。-
CoreDNS マニフェストにその行があるかどうかを確認します。
kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstream
出力が返されない場合、マニフェストにその行がないため、次の手順に進み、CoreDNS を更新できます。出力が返された場合は、その行を削除します。
-
以下のコマンドを使用して
ConfigMap
を編集し、ファイル内のupstream
という単語がある行を削除します。このファイル内の他の部分は変更しないでください。行を削除したら、変更を保存します。kubectl edit configmap coredns -n kube-system -o yaml
-
-
現在の CoreDNS イメージバージョンを取得します。
kubectl describe deployment coredns -n kube-system | grep Image
出力例は次のとおりです。
602401143452
.dkr.ecr.region-code
.amazonaws.com/eks/coredns:v1.8.7-eksbuild.2
-
CoreDNS
1.8.3
以降に更新する場合は、endpointslices
のアクセス許可をsystem:coredns
Kubernetesclusterrole
に追加する必要があります。kubectl edit clusterrole system:coredns -n kube-system
ファイルの
rules
セクション内の既存の権限行の下に次の行を追加します。[...]
- apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch
[...] -
と602401143452
を前のステップで返された出力の値に置き換えて、CoreDNS アドオンを更新します。region-code
を、ご利用の Kubernetes バージョンの最新バージョンの表に記載されている CoreDNS バージョンに置き換えます。v1.11.3-eksbuild.1
kubectl set image deployment.apps/coredns -n kube-system coredns=
602401143452
.dkr.ecr.region-code
.amazonaws.com/eks/coredns:v1.11.3-eksbuild.1
出力例は次のとおりです。
deployment.apps/coredns image updated
-
コンテナイメージのバージョンをもう一度チェックして、前のステップで指定したバージョンに更新されたことを確認します。
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
出力例は次のとおりです。
v1.11.3-eksbuild.1