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 o upgrade do CoreDNS.
-
Confirme que tem o tipo autogerenciado de complemento instalado em seu cluster. Substitua
my-cluster
pelo nome do cluster.aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text
Se 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 3
Veja um exemplo de saída abaixo.
v1.8.7-eksbuild.2
-
Se sua versão atual do CoreDNS for
v1.5.0
ou 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 oConfigMap
para que o CoreDNS use o complemento de encaminhamento, em vez do complemento de proxy.-
Abra o
ConfigMap
com o comando a seguir.kubectl edit configmap coredns -n kube-system
-
Substitua
proxy
na linha a seguir peloforward
. Salve o arquivo e saia do editor.proxy . /etc/resolv.conf
-
-
Se você implantou originalmente o cluster no Kubernetes
1.17
ou anterior, talvez seja necessário remover uma linha descontinuada do manifesto do CoreDNS.Importante
Você deve concluir essa etapa antes de atualizar para o CoreDNS versão
1.7.0
, 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 upstream
Se 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
ConfigMap
com o comando a seguir, removendo a linha no arquivo que inclui a palavraupstream
em 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 imagem atual do CoreDNS:
kubectl describe deployment coredns -n kube-system | grep Image
Veja 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.3
ou posterior, será necessário adicionar a permissão deendpointslices
àclusterrole
dosystem:coredns
do Kubernetes.kubectl edit clusterrole system:coredns -n kube-system
Adicione as linhas a seguir abaixo das linhas de permissões existentes na seção
rules
do arquivo.[...] - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch [...]
-
Atualize o complemento CoreDNS substituindo
602401143452
eregion-code
pelos valores da saída retornada em uma etapa anterior. Substituav1.11.3-eksbuild.1
pela versão 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.1
Veja 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 3
Veja um exemplo de saída abaixo.
v1.11.3-eksbuild.1