Dell APEX Cloud Platform para Red Hat OpenShift: Cambiar la configuración de DNS del clúster
Resumen: Consulte este documento para actualizar la configuración de DNS en un clúster de OpenShift.
Instrucciones
Requisitos previos
- Debe acceder al clúster como usuario con la función de administrador de clústeres.
- Debe tener una cuenta del Portal del cliente de Red Hat.
- Una versión de la herramienta CLI OpenShift (OC) que es la misma que la versión de OCP.
- Una laptop o el servidor de activación para instalar la herramienta OC.
- Vaya a Red Hat OpenShift Container Platform Product Software
.
- Inicie sesión con su cuenta de Portal.
- Seleccione la versión de OC adecuada según la versión de OCP.
- Desplácese hacia abajo y haga clic en Descargar ahora según el sistema operativo del cliente.
- Vaya a Red Hat OpenShift Container Platform Product Software
- Se debe instalar el operador de estado NMState de Kubernetes 4.16.0.
- Inicie la consola web de su Dell APEX Cloud Platform para Red Hat OpenShift.
- Seleccione Operators → Installed Operators, busque los operadores "nmstate" para comprobar si NMState Operator está instalado.
3. Si el operador NMState no está instalado y el clúster tiene acceso a Internet, siga Chapter 8: Configure OperatorHub on an Internet-Connected System En Deployment Guide para configurar OperatorHub. Luego, continúe con el paso 5.
4. Si el operador NMState no está instalado y el clúster se encuentra en una red restringida, siga Chapter 8: Configure OperatorHub on a Restricted Network En Deployment Guide Para preparar kubernetes-nmstate-operator. Uso kubevirt-hyperconverged como el nombre del operador para configurar los operadores NMState y Virtualization en OperatorHub. Luego, continúe con el paso 5.
5. Siga la solución de la base de conocimientos de OpenShift "Cómo instalar el operador de estado NMState de Kubernetes" para obtener instrucciones de instalación.
Pasos
1. Inicie sesión en el clúster.
Ejecute el siguiente comando para iniciar sesión en el clúster mediante la herramienta CLI OpenShift (OC) desde la laptop o el servidor de activación. Asegurarse de que <cluster_admin_username> tiene la función de administrador de clústeres e ingrese la contraseña cuando se le solicite.
oc login https://api.<cluster_name>.<top_level_domain>:6443 -u=<cluster_admin_username>
2. Compruebe los objetos actuales NodeNetworkState en el clúster.
2.1 Ejecute el siguiente comando para enumerar los objetos actuales de NodeNetworkState en el clúster.
oc get nns
Ejemplo del mensaje de salida:
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 Ejecute el siguiente comando para inspeccionar un objeto NodeNetworkState y ver la configuración de red en el nodo. El resultado mostrará la configuración actual de DNS en 'dns-resolver'.
oc get nns <node_hostname> -o yaml
Ejemplo del mensaje de salida:
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. Actualice la configuración de DNS mediante un archivo de manifiesto NodeNetworkConfigurationPolicy (NNCP).
3.1 Cree un archivo node-network-policy.yml (manifiesto de NNCP) que defina NodeNetworkConfigurationPolicy, que incluye los cambios en la configuración de 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
Ejemplo de archivo de manifiesto (node-network-policy.yml) para actualizar DNS a "20.100.10.7" para todos los nodos del clúster:
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. Aplique la política de red de nodo para actualizar la configuración de DNS en el clúster mediante la ejecución del siguiente comando.
oc apply -f node-network-policy.yml
Ejemplo del mensaje de salida:
mystic@mystic-vm:~$ oc apply -f node-network-policy.yml
nodenetworkconfigurationpolicy.nmstate.io/modify-dns-servers configured
4. Confirmación de actualizaciones de políticas de red de nodos en nodos
4.1. Para confirmar que la política se haya aplicado al clúster, enumere las políticas y su estado:
oc get nncp
Ejemplo del mensaje de salida:
mystic@mystic-vm:~$ oc get nncp
NAME STATUS REASON
modify-dns-servers Available SuccessfullyConfigured
4.2. Opcional: Si una política tarda más de lo esperado en configurarse correctamente, puede inspeccionar las condiciones de estado y estado solicitadas de una política específica mediante la ejecución del siguiente comando:
oc get nncp <policy_name> -o yaml
Ejemplo del mensaje de salida:
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. Opcional: Si una política tarda más de lo esperado en configurarse correctamente en todos los nodos, puede indicar el estado de las promulgaciones en el clúster:
oc get nnce
Ejemplo del mensaje de salida:
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. Opcional: Para ver la configuración de una promulgación específica, incluidos los informes de errores de una configuración fallida:
oc get nnce <node>.<policy> -o yaml
Ejemplo del mensaje de salida:
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
Información adicional
Documentación relacionada de OCP de Red Hat:
- 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