Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-10 GMT+08:00

Consistencia de la configuración de CoreDNS

Concepto de comprobación

Compruebe si la configuración actual de la clave de CoreDNS Corefile es diferente del registro de lanzamiento de Helm. La diferencia puede sobrescribirse durante la actualización del complemento, afecta la resolución de nombres de dominio en el clúster.

Solución

Puede actualizar el complemento de coredns por separado después de confirmar las diferencias de configuración.

  1. Configure kubectl, consulte Conexión a un clúster con kubectl.
  2. Obtenga el Corefile que entra en vigor actualmente.

    kubectl get cm -nkube-system coredns -o jsonpath='{.data.Corefile}' > corefile_now.txt
    cat corefile_now.txt

  3. Obtenga el Corefile en el registro de lanzamiento de Helm (dependiendo de 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 las diferencias de salida entre 2 y 3.

    diff corefile_now.txt corefile_record.txt -y;

  5. Vuelva a la consola de CCE y haga clic en el nombre del clúster para ir a la consola del clúster. En la página Add-ons, seleccione el complemento de coredns y haga clic en Upgrade.

    Para conservar las diferentes configuraciones, utilice cualquiera de los métodos siguientes:
    • Establezca parameterSyncStrategy a force. Es necesario introducir manualmente la configuración diferencial. Para obtener más información, véase coredns (complemento de recursos del sistema, obligatorio).
    • Si parameterSyncStrategy se establece en inherit, las configuraciones diferenciadas se heredan automáticamente. El sistema analiza, identifica y hereda automáticamente parámetros diferenciados.

  6. Haga clic en OK. Una vez completada la actualización del complemento, compruebe si todas las instancias de coredns están disponibles y si Corefile cumple con las expectativas.

    kubectl get cm -nkube-system coredns -o jsonpath='{.data.Corefile}'

  7. Cambie el valor de parameterSyncStrategy a ensureConsistent para habilitar la verificación de consistencia de la configuración.

    Además, se recomienda utilizar la función de configuración de parámetros de la gestión de complementos de CCE para modificar la configuración de Corefile para evitar diferencias.