Consistência da configuração de CoreDNS
Itens de verificação
Verifique se o Corefile de configuração principal de CoreDNS atual é diferente do registro de lançamento do Helm. A diferença pode ser substituída durante a atualização do complemento, afetando a resolução de nomes de domínio no cluster.
Solução
Você pode atualizar o CoreDNS separadamente depois de confirmar as diferenças de configuração.
- Configure o kubectl. Para mais detalhes, consulte Conexão a um cluster usando o kubectl.
- Obtenha o Corefile que entra em vigor atualmente.
kubectl get cm -nkube-system coredns -o jsonpath='{.data.Corefile}' > corefile_now.txt cat corefile_now.txt
- Obtenha o Corefile no registro de lançamento do Helm (dependendo do Python 3).
latest_release=`kubectl get secret -nkube-system -l owner=helm -l name=cceaddon-coredns --sort-by=.metadata.creationTimestamp | awk 'END{print $1}'` kubectl get secret -nkube-system $latest_release -o jsonpath='{.data.release}' | base64 -d | base64 -d | gzip -d | python -m json.tool | python -c " import json,sys,re,yaml; manifests = json.load(sys.stdin)['manifest'] files = re.split('(?:^|\s*\n)---\s*',manifests) for file in files: if 'coredns/templates/configmap.yaml' in file and 'Corefile' in file: corefile = yaml.safe_load(file)['data']['Corefile'] print(corefile,end='') exit(0); print('error') exit(1); " > corefile_record.txt cat corefile_record.txt
- Compare as diferenças de saída entre 2 e 3.
diff corefile_now.txt corefile_record.txt -y;
Figura 1 Visualizar diferenças de saída
- Volte para console do CCE e clique no nome do cluster para acessar o console do cluster. Escolha Add-ons no painel de navegação, selecione CoreDNS e clique em Edit.
Para manter configurações personalizadas, use um dos seguintes métodos:
- Defina parameterSyncStrategy para force. Insira manualmente a configuração diferencial. Para mais detalhes, consulte CoreDNS.
- Se parameterSyncStrategy estiver definido para inherit, as configurações personalizadas serão automaticamente herdadas. O sistema analisa, identifica e herda automaticamente parâmetros personalizados.
- Clique em OK. Após a conclusão da atualização do complemento, verifique se todas as instâncias do CoreDNS estão disponíveis e se o Corefile atende à expectativa.
kubectl get cm -nkube-system coredns -o jsonpath='{.data.Corefile}'
- Altere o valor do parameterSyncStrategy para ensureConsistent para ativar a verificação de consistência da configuração.
Além disso, é uma boa prática usar a função de configuração de parâmetros dos complementos do CCE para modificar a configuração do Corefile para obter consistência.