CoreDNS Configuration Consistency
Check Items
Check whether the current CoreDNS key configuration Corefile is different from the Helm release record. The difference may be overwritten during the add-on upgrade, affecting domain name resolution in the cluster.
Solution
You can upgrade CoreDNS separately after confirming the configuration differences.
- Configure the kubectl command. For details, see Connecting to a Cluster Using kubectl.
- Obtain the Corefile that takes effect currently.
kubectl get cm -nkube-system coredns -o jsonpath='{.data.Corefile}' > corefile_now.txt cat corefile_now.txt
- Obtain the Corefile in the Helm Release records.
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 " from __future__ import print_function 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 the output differences between 2 and 3.
diff corefile_now.txt corefile_record.txt -y;
Figure 1 Viewing output differences
- Return to the CCE console and click the cluster name to access the cluster console. Choose Add-ons in the navigation pane, select CoreDNS, and click Upgrade.
To retain custom configurations, use either of the following methods:
- (Recommended) Set parameterSyncStrategy to inherit. In this case, custom settings are automatically inherited. The system automatically parses, identifies, and inherits custom parameters.
- Set parameterSyncStrategy to force. Manually enter the differential configuration. For details, see CoreDNS.
- Click OK. After the add-on upgrade is complete, check whether all CoreDNS instances are available and whether Corefile meets the expectation.
kubectl get cm -nkube-system coredns -o jsonpath='{.data.Corefile}'
- Change the value of parameterSyncStrategy to ensureConsistent to enable configuration consistency verification.
In addition, it is a good practice to use the parameter configuration function of CCE add-ons to modify the Corefile configuration for consistency.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.