Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Atualizar o complemento autogerenciado CoreDNS do Amazon EKS
Importante
Recomendamos adicionar o tipo Amazon EKS do complemento ao seu cluster em vez de usar o tipo autogerenciado do complemento. Se você não estiver familiarizado com a diferença entre os tipos, consulte Complementos do Amazon EKS. Para obter mais informações sobre como adicionar um complemento do Amazon EKS ao cluster, consulte Criar um complemento do Amazon EKS. Se você não conseguir usar o complemento do Amazon EKS, recomendamos que você envie um problema sobre o motivo pelo qual não pode usar o repositório GitHub para roteiro de contêineres
Antes de começar, reveja as considerações sobre o upgrade. Para ter mais informações, consulte Considerações importantes sobre a atualização do CoreDNS.
-
Confirme que tem o tipo autogerenciado de complemento instalado em seu cluster. Substitua
my-clusterpelo nome do cluster.aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output textSe receber uma mensagem de erro, você tem o tipo autogerenciado do complemento instalado no cluster. Conclua as etapas restantes neste procedimento. Se receber um número de versão, você tem o tipo de complemento do Amazon EKS instalado no cluster. Para atualizar o tipo de Amazon EKS do complemento, use o procedimento em Atualizar o complemento CoreDNS do Amazon EKS em vez de usar este procedimento. Se não estiver familiarizado com a diferença entre os tipos de complemento, consulte Complementos do Amazon EKS.
-
Veja qual versão da imagem do contêiner está atualmente instalada em seu cluster.
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3Veja um exemplo de saída abaixo.
v1.8.7-eksbuild.2 -
Se a versão atual do CoreDNS for
v1.5.0ou posterior, mas anterior à versão listada na tabela de versões do CoreDNS, pule esta etapa. Se a sua versão atual for anterior à1.5.0, você precisa modificar oConfigMappara que o CoreDNS use o complemento de encaminhamento, em vez do complemento de proxy.-
Abra o
ConfigMapcom o comando a seguir.kubectl edit configmap coredns -n kube-system -
Substitua
proxyna linha a seguir peloforward. Salve o arquivo e saia do editor.proxy . /etc/resolv.conf
-
-
Se você implantou originalmente seu cluster no Kubernetes
1.17ou anterior, talvez seja necessário remover uma linha descontinuada do manifesto do CoreDNS.Importante
Você deve concluir essa etapa antes de atualizar para a versão
1.7.0do CoreDNS, mas é recomendável concluir essa etapa mesmo se estiver atualizando para uma versão anterior.-
Verifique se o manifesto do CoreDNS tem a linha.
kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstreamSe nenhum resultado for retornado, o manifesto não terá a linha e você poderá prosseguir para a próxima etapa para atualizar o CoreDNS. Se um resultado for retornado, você precisará remover a linha.
-
Edite o
ConfigMapcom o comando a seguir, removendo a linha no arquivo que inclui a palavraupstreamem seu nome. Não altere mais nada no arquivo. Depois que a linha for removida, salve as alterações.kubectl edit configmap coredns -n kube-system -o yaml
-
-
Recupere a versão da imagem atual do CoreDNS:
kubectl describe deployment coredns -n kube-system | grep ImageVeja um exemplo de saída abaixo.
602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.8.7-eksbuild.2 -
Se você estiver atualizando para o CoreDNS
1.8.3ou uma versão mais recente, será necessário adicionar a permissãoendpointslicespara oclusterrolesystem:corednsdo Kubernetes.kubectl edit clusterrole system:coredns -n kube-systemAdicione as linhas a seguir abaixo das linhas de permissões existentes na seção
rulesdo arquivo.[...] - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch [...] -
Atualize o complemento CoreDNS substituindo
602401143452eregion-codepelos valores da saída retornada em uma etapa anterior. Substituav1.11.3-eksbuild.1pela versão do CoreDNS listada na tabela de versões mais recentes para sua versão do Kubernetes.kubectl set image deployment.apps/coredns -n kube-system coredns=602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.11.3-eksbuild.1Veja um exemplo de saída abaixo.
deployment.apps/coredns image updated -
Verifique a versão da imagem do contêiner novamente para confirmar que ela foi atualizada para a versão que você especificou na etapa anterior.
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3Veja um exemplo de saída abaixo.
v1.11.3-eksbuild.1