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.
- Configure kubectl, consulte Conexión a un clúster con kubectl.
- 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
- 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
- Compare las diferencias de salida entre 2 y 3.
diff corefile_now.txt corefile_record.txt -y;
- 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.
- 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}'
- 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.