Platforma chmurowa DELL APEX dla rodziny Red Hat OpenShift: Zmiana ustawień DNS klastra
Podsumowanie: Zapoznaj się z tym dokumentem, aby zaktualizować ustawienia DNS w klastrze OpenShift.
Instrukcje
Wymagania wstępne
- Dostęp do klastra należy uzyskać jako użytkownik z rolą administratora klastra.
- Musisz mieć konto w portalu klienta Red Hat.
- Wersja narzędzia OpenShift CLI (OC) taka sama jak wersja OCP.
- Laptop lub serwer przesiadkowy, aby zainstalować narzędzie OC.
- Przejdź do oprogramowania
produktu platformy kontenerowej Red Hat OpenShift.
- Zaloguj się za pomocą konta portalu.
- Wybierz odpowiednią wersję OC zgodnie z wersją OCP.
- Przewiń w dół i kliknij opcję Download Now w zależności od systemu operacyjnego klienta.
- Przejdź do oprogramowania
- Należy zainstalować operatora Kubernetes NMState 4.16.0.
- Uruchom konsolę internetową platformy Dell APEX Cloud Platform dla platformy Red Hat OpenShift.
- Wybierz opcję Operators → Installed Operators wyszukaj operatory "nmstate", aby sprawdzić, czy operator NMState jest zainstalowany.
3. Jeśli operator NMState nie jest zainstalowany, a klaster ma dostęp do Internetu, wykonaj następujące czynności: Chapter 8: Configure OperatorHub on an Internet-Connected System W Deployment Guide , aby skonfigurować usługę OperatorHub. Następnie przejdź do kroku 5.
4. Jeśli operator NMState nie jest zainstalowany, a klaster znajduje się w sieci z ograniczeniami, wykonaj następujące czynności: Chapter 8: Configure OperatorHub on a Restricted Network W Deployment Guide Aby przygotować kubernetes-nmstate-operator. Użyj kubevirt-hyperconverged jako nazwa operatora, aby skonfigurować operatory NMState i wirtualizacji w OperatorHub. Następnie przejdź do kroku 5.
5. Postępuj zgodnie z rozwiązaniem bazy wiedzy OpenShift "Jak zainstalować operatora Kubernetes NMState", aby uzyskać instrukcje instalacji.
Kroki
1. Zaloguj się do klastra.
Uruchom następujące polecenie, aby zalogować się do klastra za pomocą narzędzia OpenShift CLI (OC) z notebooka lub serwera przesiadkowego. Zapewnienia <cluster_admin_username> pełni rolę administratora klastra i po wyświetleniu monitu wprowadź hasło.
oc login https://api.<cluster_name>.<top_level_domain>:6443 -u=<cluster_admin_username>
2. Sprawdź bieżące obiekty NodeNetworkState w klastrze.
2.1. Uruchom następujące polecenie, aby wyświetlić bieżące obiekty NodeNetworkState w klastrze.
oc get nns
Przykładowe dane wyjściowe:
mystic@mystic-vm:~$ oc get nns
NAME AGE
c3-esx01.rackg10.local 45h
c3-esx02.rackg10.local 47h
c3-esx03.rackg10.local 47h
c3-esx04.rackg10.local 47h
2.2. Uruchom następujące polecenie, aby sprawdzić obiekt NodeNetworkState i wyświetlić konfigurację sieci w węźle. Dane wyjściowe wyświetlą bieżące ustawienia DNS w sekcji "dns-resolver".
oc get nns <node_hostname> -o yaml
Przykładowe dane wyjściowe:
mystic@mystic-vm:~$ oc get nns c3-esx01.rackg10.local -o yaml
apiVersion: nmstate.io/v1beta1
kind: NodeNetworkState
metadata:
creationTimestamp: "2025-03-25T11:44:15Z"
generation: 1
labels:
nmstate.io/force-nns-refresh: "1742984117342487473"
name: c3-esx01.rackg10.local
ownerReferences:
- apiVersion: v1
kind: Node
name: c3-esx01.rackg10.local
uid: 659cd517-6b59-4599-b3c3-91c5523fc275
resourceVersion: "1328052"
uid: d26ceea7-c1bb-4f18-8394-6b619ef2701d
status:
currentState:
dns-resolver:
config:
search: []
server:
- 20.100.10.8
running:
search: []
server:
- 20.100.10.8
interfaces:
- accept-all-mac-addresses: false
......
3. Zaktualizuj ustawienia DNS przy użyciu pliku manifestu NodeNetworkConfigurationPolicy (NNCP).
3.1 Utwórz plik node-network-policy.yml (manifest NNCP) definiujący NodeNetworkConfigurationPolicy, który obejmuje zmiany konfiguracji DNS.
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
name: modify-dns-servers
spec:
nodeSelector: {} # Apply the policy to all nodes
desiredState:
dns-resolver:
config:
search:
- example.com
- example.org # Replace with your desired search domain(s)
server:
- 8.8.8.8 # Replace with your desired DNS resolver IP address(es
Przykładowy plik manifestu (node-network-policy.yml) do aktualizacji DNS do wartości "20.100.10.7" dla wszystkich węzłów klastra:
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
name: modify-dns-servers
spec:
nodeSelector: {} # Apply the policy to all nodes
desiredState:
dns-resolver:
config:
search: []
server:
- 20.100.10.7
3,2. Zastosuj zasady sieciowe węzła, aby zaktualizować ustawienia DNS w klastrze, uruchamiając następujące polecenie.
oc apply -f node-network-policy.yml
Przykładowe dane wyjściowe:
mystic@mystic-vm:~$ oc apply -f node-network-policy.yml
nodenetworkconfigurationpolicy.nmstate.io/modify-dns-servers configured
4. Potwierdzanie aktualizacji zasad sieciowych węzłów na węzłach
4.1. Aby potwierdzić, że zasady zostały zastosowane do klastra, wyświetl listę zasad i ich stan:
oc get nncp
Przykładowe dane wyjściowe:
mystic@mystic-vm:~$ oc get nncp
NAME STATUS REASON
modify-dns-servers Available SuccessfullyConfigured
4.2. Opcjonalnie: Jeśli pomyślne skonfigurowanie zasady trwa dłużej niż oczekiwano, można sprawdzić żądany stan i warunki stanu określonej zasady, uruchamiając następujące polecenie:
oc get nncp <policy_name> -o yaml
Przykładowe dane wyjściowe:
mystic@mystic-vm:~$ oc get nncp modify-dns-servers -o yaml
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"nmstate.io/v1","kind":"NodeNetworkConfigurationPolicy","metadata":{"annotations":{},"name":"modify-dns-servers"},"spec":{"desiredState":{"dns-resolver":{"config":{"search":[],"server":["20.100.10.7"]}}},"nodeSelector":{}}}
nmstate.io/webhook-mutating-timestamp: "1742984115155498338"
creationTimestamp: "2025-03-26T09:25:12Z"
generation: 3
name: modify-dns-servers
resourceVersion: "1397345"
uid: fd23a4a7-476d-44fc-b1b2-eb1c76c1cd99
spec:
desiredState:
dns-resolver:
config:
search: []
server:
- 20.100.10.7
nodeSelector: {}
status:
conditions:
- lastHeartbeatTime: "2025-03-26T10:15:18Z"
lastTransitionTime: "2025-03-26T10:15:18Z"
message: 4/4 nodes successfully configured
reason: SuccessfullyConfigured
status: "True"
type: Available
- lastHeartbeatTime: "2025-03-26T10:15:18Z"
lastTransitionTime: "2025-03-26T10:15:18Z"
reason: SuccessfullyConfigured
status: "False"
type: Degraded
- lastHeartbeatTime: "2025-03-26T10:15:18Z"
lastTransitionTime: "2025-03-26T10:15:18Z"
reason: ConfigurationProgressing
status: "False"
type: Progressing
lastUnavailableNodeCountUpdate: "2025-03-26T09:25:21Z"
4.3. Opcjonalnie: Jeśli pomyślne skonfigurowanie zasad trwa dłużej niż oczekiwano we wszystkich węzłach, można wyświetlić stan realizacji w klastrze:
oc get nnce
Przykładowe dane wyjściowe:
mystic@mystic-vm:~$ oc get nnce
NAME STATUS STATUS AGE REASON
c3-esx01.rackg10.local.modify-dns-servers Available 22h SuccessfullyConfigured
c3-esx02.rackg10.local.modify-dns-servers Available 22h SuccessfullyConfigured
c3-esx03.rackg10.local.modify-dns-servers Available 22h SuccessfullyConfigured
c3-esx04.rackg10.local.modify-dns-servers Available 22h SuccessfullyConfigured
4.4. Opcjonalnie: Aby wyświetlić konfigurację konkretnego aktu prawnego, w tym wszelkie raporty o błędach konfiguracji, która zakończyła się niepowodzeniem:
oc get nnce <node>.<policy> -o yaml
Przykładowe dane wyjściowe:
mystic@mystic-vm:~$ oc get nnce c3-esx01.rackg10.local.modify-dns-servers -o yaml
apiVersion: nmstate.io/v1beta1
kind: NodeNetworkConfigurationEnactment
metadata:
creationTimestamp: "2025-03-26T09:25:12Z"
generation: 1
labels:
nmstate.io/node: c3-esx01.rackg10.local
nmstate.io/policy: modify-dns-servers
name: c3-esx01.rackg10.local.modify-dns-servers
ownerReferences:
- apiVersion: v1
kind: Node
name: c3-esx01.rackg10.local
uid: 659cd517-6b59-4599-b3c3-91c5523fc275
resourceVersion: "823259"
uid: eae49147-1fbd-46e8-a2b7-0a8bfbec3201
status:
conditions:
- lastHeartbeatTime: "2025-03-26T10:15:17Z"
lastTransitionTime: "2025-03-26T10:15:17Z"
reason: SuccessfullyConfigured
status: "False"
type: Progressing
- lastHeartbeatTime: "2025-03-26T10:15:17Z"
lastTransitionTime: "2025-03-26T10:15:17Z"
reason: SuccessfullyConfigured
status: "False"
type: Failing
- lastHeartbeatTime: "2025-03-26T10:15:17Z"
lastTransitionTime: "2025-03-26T10:15:17Z"
message: successfully reconciled
reason: SuccessfullyConfigured
status: "True"
type: Available
- lastHeartbeatTime: "2025-03-26T10:15:17Z"
lastTransitionTime: "2025-03-26T10:15:15Z"
reason: SuccessfullyConfigured
status: "False"
type: Pending
- lastHeartbeatTime: "2025-03-26T10:15:17Z"
lastTransitionTime: "2025-03-26T10:15:15Z"
reason: SuccessfullyConfigured
status: "False"
type: Aborted
desiredState:
dns-resolver:
config:
search: []
server:
- 20.100.10.7
desiredStateMetaInfo: {}
features:
- static-dns-name-server
- static-dns-search
policyGeneration: 2
Dodatkowe informacje
Powiązana dokumentacja Red Hat OCP:
- https://docs.redhat.com/en/documentation/openshift_container_platform/4.16/html/networking/networking-operators#k8s-nmstate-about-the-k8s-nmstate-operator
- https://docs.redhat.com/en/documentation/openshift_container_platform/4.16/html/networking/kubernetes-nmstate#k8s-nmstate-updating-node-network-config