Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-11-28 GMT+08:00

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.

  1. Configure o kubectl. Para mais detalhes, consulte Conexão a um cluster usando o kubectl.
  2. 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

  3. 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
    

  4. 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

  5. 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.

  6. 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}'

  7. 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.