Oracle Database Operator para Kubernetes

Al activar el complemento de cluster de Oracle Database Operator for Kubernetes, puede transferir los siguientes pares de clave/valor como argumentos.

Tenga en cuenta que para utilizar el operador de Oracle Database como complemento de cluster, también tiene que desplegar cert-manager (ya sea como un producto independiente o como un complemento de cluster). Si despliega cert-manager como un producto independiente, defina el argumento de configuración skipAddonDependenciesCheck en true.

Argumentos de configuración comunes a todos los complementos del cluster
Clave (API y CLI) Nombre mostrado de clave (consola) Descripción Necesario/Opcional Valor por defecto Valor de ejemplo
affinity afinidad

Grupo de reglas de programación de afinidad.

Formato JSON en texto sin formato o codificado con Base64.

No utilizado por:
  • Operador de GPU de Nvidia
Posibles equivalentes:
  • Detección de funciones de nodo, utilice master.affinity
  • Operador de red NVIDIA, utilice operator.affinity
  • SMB de controlador CSI, utilice contoller.affinity
Opcional nulo nulo
nodeSelectors selectores de nodos

Puede utilizar selectores de nodos y etiquetas de nodos para controlar los nodos de trabajador en los que se ejecutan los pods de complementos.

Para que un pod se ejecute en un nodo, el selector de nodos del pod debe tener la misma clave/valor que la etiqueta del nodo.

Defina nodeSelectors en un par clave/valor que coincida con el selector de nodos del pod y la etiqueta del nodo de trabajador.

Formato JSON en texto sin formato o codificado con Base64.

No utilizado por:
  • Operador de GPU de NVIDIA
  • SMB de controlador CSI
Posibles equivalentes:
  • Detección de funciones de nodo, utilice worker.nodeSelector
  • Operador de red NVIDIA, utilice operator.nodeSelectors
Opcional nulo {"foo":"bar", "foo2": "bar2"}

El pod solo se ejecutará en nodos que tengan la etiqueta foo=bar o foo2=bar2.

numOfReplicas numOfReplicas Número de réplicas del despliegue del complemento.
No utilizado por:
  • Plugin de GPU de AMD
  • Operador de GPU de NVIDIA
  • Operador de red NVIDIA
  • SMB de controlador CSI
Posibles equivalentes:
  • CoreDNS, utilice nodesPerReplica
  • Detección de funciones de nodo, utilice master.replicaCount
Obligatorio 1

Crea una réplica del despliegue del complemento por cluster.

2

Crea dos réplicas del despliegue del complemento por cluster.

rollingUpdate rollingUpdate

Controla el comportamiento deseado de la actualización sucesiva mediante maxSurge y maxUnavailable.

Formato JSON en texto sin formato o codificado con Base64.

No utilizado por:
  • Detección de funciones de nodo
  • Operador de red NVIDIA
  • SMB de controlador CSI
Posibles equivalentes:
  • Operador de GPU de NVIDIA, utilice daemonsets.rollingUpdate.maxUnavailable
Opcional nulo nulo
tolerations tolerancias

Puede utilizar contaminantes y tolerancias para controlar los nodos de trabajador en los que se ejecutan los pods de complementos.

Para que un pod se ejecute en un nodo que tenga un tinte, el pod debe tener una tolerancia correspondiente.

Defina tolerations en un par clave/valor que coincida con la tolerancia del pod y el mantenimiento del nodo de trabajador.

Formato JSON en texto sin formato o codificado con Base64.

Posibles equivalentes:
  • Detección de funciones de nodo, utilice master.tolerations y/o worker.tolerations
  • Operador de GPU de NVIDIA, utilice daemonsets.tolerations
  • Operador de red NVIDIA, utilice operator.tolerations
  • SMB de controlador CSI, utilice controller.tolerations
Opcional nulo [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Solo los pods que tienen esta tolerancia se pueden ejecutar en nodos de trabajador que tengan el mantenimiento tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Cómo difundir vainas coincidentes entre la topología dada.

Formato JSON en texto sin formato o codificado con Base64.

No utilizado por:
  • Detección de funciones de nodo
  • Operador de GPU de NVIDIA
  • Operador de red NVIDIA
  • SMB de controlador CSI
Opcional nulo nulo
Argumentos de configuración específicos de este complemento de cluster
Clave (API y CLI) Nombre mostrado de clave (consola) Descripción Necesario/Opcional Valor por defecto Valor de ejemplo
manager.ContainerResources recursos de contenedor de mánager

Puede especificar las cantidades de recursos que solicitan los contenedores complementarios y establecer límites de uso de recursos que los contenedores complementarios no pueden superar.

Formato JSON en texto sin formato o codificado con Base64.

Opcional nulo {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Cree contenedores complementarios que soliciten 100 millicores de CPU y 100 mebibytes de memoria. Limite los contenedores complementarios a 500 millicores de CPU y 200 mebibytes de memoria.

skipAddonDependenciesCheck skipAddonDependenciesCheck Si se debe comprobar que se han desplegado otros complementos necesarios (como el complemento cert-manager). Opcional nulo true
Consideraciones de cluster grande

En la siguiente tabla, se describen las consideraciones para configurar este complemento de cluster en clusters de gran tamaño.

Nombre del Argumento Número de nodos ordenado de roles Descripción A medida que aumenta el tamaño del cluster Riesgos Recomendación
manager.ContainerResources Y

Define las solicitudes de CPU y memoria y los límites para los pod de operador.

A medida que aumenta el tamaño del cluster, el operador experimenta lo siguiente:

  • Crecimiento significativo en la caché del informador
  • Más ver streams
  • Una huella de memoria más grande
  • Más actividad de conciliación

Si los recursos tienen un tamaño insuficiente:

  • Los pods de operador pueden terminar porque superan sus límites de memoria.
  • La latencia de conciliación puede aumentar.
  • Un atraso de cola de eventos puede retrasar el procesamiento.

Asigne suficiente memoria y CPU para manejar la carga adicional en clusters grandes. Preste especial atención al tamaño de la memoria porque la caché del informador crece a medida que aumenta el tamaño del cluster.

numOfReplicas N

Controla el número de pods de operador desplegados.

Las réplicas adicionales mejoran la tolerancia a fallos y el failover a través de la elección de líderes.

Solo un pod actúa como líder activo para un controlador. Otras réplicas permanecen en espera y toman el control solo si el líder falla.

El aumento del número de réplicas no proporciona una escala lineal del rendimiento de conciliación porque las réplicas en espera no procesan bucles de conciliación para el mismo controlador.

Un recuento bajo de réplicas aumenta el riesgo de tiempo de inactividad del operador y una recuperación más lenta después de los fallos.

Utilice un número moderado de réplicas, como de tres a cinco, para proporcionar una alta disponibilidad. No aumente el número de réplicas para mejorar el rendimiento de la conciliación.

affinity / nodeSelectors / tolerations N

Controle dónde se programan los pods del operador en el cluster.

Colocación adecuada del pod:

  • Reduce la interferencia de cargas de trabajo que utilizan muchos recursos.
  • Mantiene al operador en nodos estables con menos abandono y menos interrupciones.
  • Permite que el operador se ejecute en nodos dedicados o con gran capacidad de memoria que son adecuados para complementos del plano de control.
Si no se define correctamente, el operador de Oracle Database puede aterrizar en los nodos incorrectos o no programar en absoluto, lo que puede provocar retrasos en la conciliación y un rendimiento inestable.

Utilice estos argumentos para programar pods de operador en nodos de infraestructura dedicados. Aplique las reglas anti-afinidad de pod cuando sea necesario para mejorar la resiliencia.

rollingUpdate N

Controla la estrategia de actualización de despliegue para el operador.

Durante las actualizaciones en clusters grandes, la estrategia de actualización sucesiva:

  • Impide el tiempo de inactividad del operador.
  • Mantiene la disponibilidad de al menos algunas réplicas.
  • Impide que todas las réplicas se terminen al mismo tiempo.

Si no se configura correctamente, una actualización puede desactivar brevemente demasiados pods de Oracle Database Operator a la vez, lo que causa retrasos en la conciliación y pérdida de seguridad de failover.

Configure los valores de actualización sucesiva, como maxUnavailable y maxSurge , para permitir que las actualizaciones se completen sin interrumpir las operaciones del cluster.

topologySpreadConstraints N

Controla cómo se distribuyen las réplicas del operador entre los nodos y los dominios de disponibilidad.

La distribución de réplicas evita que todos los pods de operador se ejecuten en el mismo nodo o en el mismo dominio de disponibilidad y reduce el efecto de fallos de nodo o de dominio de disponibilidad.

Si no se configura correctamente, los pod de operador se pueden programar en el mismo nodo o en la misma zona de disponibilidad, lo que aumenta el riesgo de perder varias réplicas durante un fallo de nodo o zona.

Utilice restricciones de distribución de topología para proporcionar alta disponibilidad en clusters de gran tamaño.