このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
CoreDNS アマゾン EKS セルフマネージドアドオンの更新
重要
セルフマネージド型のアドオンを使用する代わりに、アマゾン EKS タイプのアドオンをクラスターに追加することをお勧めします。タイプの違いがよくわからない場合は「アマゾン EKS アドオン」を参照してください。アマゾン EKS アドオンをクラスターに追加する方法については「アマゾン EKS アドオンを作成する」を参照してください。アマゾン EKS アドオンを使用できない場合はその理由に関する問題をコンテナロードマップ GitHub リポジトリ
開始する前に、アップグレードに関する考慮事項を確認してください。詳細については「CoreDNS アップグレードに関する重要な考慮事項」を参照してください。
-
クラスターにインストールされているアドオンがセルフマネージド型であることを確認します。
マイクラスター
の部分は自分のクラスター名に置き換えます。aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text
エラーメッセージが返された場合、クラスターにセルフマネージド型のアドオンがインストールされています。インストールするにはこのステップの残りのステップを完了します。バージョン番号が返された場合、クラスターに アマゾン EKS タイプのアドオンがインストールされています。アマゾン EKS タイプのアドオンを更新するにはこの手順を使用するのではなく、「CoreDNS アマゾン EKS アドオンを更新する」の手順を使用してください。アドオンタイプの違いがよくわからない場合は「アマゾン 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
に置き換えます。ファイルを保存し、エディタを終了します。proxy . /etc/resolv.conf
-
-
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 アドオンを更新します。v1.11.3-eksbuild.1
を、使用している Kubernetes バージョンについて最新バージョンの表に記載されている CoreDNS バージョンに置き換えます。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