CoreDNS Configuration Consistency
Check Item
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 kubectl, 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 record (depending on 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 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 go to the cluster console. On the Add-ons page, select CoreDNS and click Upgrade.
To retain the different configurations, use either of the following methods:
- Set parameterSyncStrategy to force. Manually enter the differential configuration. For details, see CoreDNS.
- If parameterSyncStrategy is set to inherit, differentiated configurations are automatically inherited. The system automatically parses, identifies, and inherits differentiated parameters.
- 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, you are advised to use the parameter configuration function of CCE add-on management to modify the Corefile configuration to avoid differences.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot