Despliegue azul/verde de OKE
Cree un pipeline de despliegue con la estrategia de publicación azul/verde para Kubernetes Engine (OKE)
Requisitos
Los requisitos previos son los siguientes:
- Tiene un pipeline de despliegue, un entorno de cluster de Kubernetes en el que realizar el despliegue y artefactos. Los artefactos pueden estar definidos en línea o localizados en Artifact Registry.
- Dado que el cluster de OKE no tiene un controlador de entrada por defecto, se debe configurar un controlador de entrada de NGINX para la estrategia de despliegue azul/verde. El nombre de entrada de NGINX se debe definir en el manifiesto de Kubernetes. Un controlador de entrada es una aplicación de Kubernetes que enruta el tráfico según la especificación de entrada. El controlador de entrada de NGINX controla los recursos de entrada para el equilibrio de carga. El tráfico se cambia de una ubicación temporal al entorno de producción mediante la actualización del recurso de entrada. Para obtener más información, consulte Configuración de un controlador de entrada en un cluster.
- Para definir los entornos de despliegue azul y verde, debe crear dos espacios de nombres en el cluster de Kubernetes. No debe especificar espacios de nombres en los manifiestos de Kubernetes, ya que estos se proporcionan en la consola. Para obtener más información sobre los espacios de nombres, consulte la documentación de Kubernetes.
Para reducir verticalmente el espacio de nombres inactivo o en espera después del despliegue, debe mantener al menos una réplica para evitar problemas.
Para crear grupos dinámicos y políticas para pipelines de despliegue, consulte Políticas de pipeline de despliegue. Para obtener más información, consulte Políticas de IAM de DevOps.
Para acceder a DevOps mediante la consola de Oracle Cloud, la API de REST y la CLI, consulte Acceso a DevOps.
- Abra el menú de navegación y haga clic en Servicios para desarrolladores. En DevOps, haga clic en Proyectos.
- Seleccione un proyecto y un pipeline de despliegue.
- Para agregar una etapa al pipeline, haga clic en el icono + y seleccione Agregar etapa.
- Para el tipo de etapa, seleccione Estrategia azul/verde y, a continuación, haga clic en Siguiente.
- Seleccione OKE para el tipo de despliegue.
- Introduzca un nombre y una descripción para la etapa. La adición de una descripción es opcional.
- En Entorno, seleccione un entorno de clusters existente.
- Introduzca los espacios de nombres existentes para el espacio de nombres A y el espacio de nombres B asociados con el entorno de OKE seleccionado. Por ejemplo,
blue-env, green-env
.Los espacios de nombres se utilizan para definir los entornos de despliegue azul y verde en el cluster de OKE.
- Haga clic en Seleccionar artefacto y seleccione uno o más recursos de artefacto del proyecto DevOps.
El servicio DevOps realiza una aplicación del servidor de Kubernetes de los artefactos de manifiesto de Kubernetes en el orden en que aparecen en la consola. También puede eliminar artefactos para seleccionar otro o reordenar la lista de artefactos. La eliminación de un artefacto en la etapa de pipeline no suprime el recurso de artefacto del proyecto. Para obtener más información sobre la aplicación del servidor de Kubernetes, consulte Aplicación del servidor.
- Introduzca el Nombre de entrada de GNINX. Por ejemplo,
ingress-nginx
.Este es el nombre del recurso de entrada de la aplicación. El servicio DevOps modifica la anotación en este recurso de entrada para llevar a cabo la estrategia de despliegue. El nombre de entrada de NGINX se debe definir en el manifiesto de Kubernetes.
- Haga clic en Siguiente.
- Valide la ejecución del despliegue. Para realizar la validación, se agrega una función personalizada al pipeline. Seleccione Ejecutar una lógica personalizada mediante una función e introduzca los siguientes valores:
- Introduzca un nombre y una descripción para la etapa. La adición de una descripción es opcional.
- En Entorno, seleccione una función existente a la que llamar.
El campo Nombre de función de solo lectura muestra la función que se llama en el pipeline.
- (Opcional) Para seleccionar y agregar artefactos a la etapa, haga clic en Seleccionar artefacto.
Seleccione un recurso de artefacto existente del proyecto de DevOps. El artefacto debe ser un tipo de archivo genérico ( universal). Los parámetros del artefacto deben tener formato JSON y pueden tener marcadores de posición. Al configurar el recurso de artefacto DevOps, seleccione Permitir parametrización. Al seleccionar esta casilla de control, se garantiza que los marcadores de posición se sustituyan por el valor del argumento durante el despliegue. Para obtener más información, consulte Configuración de parámetros.
A continuación, se muestra un ejemplo del contenido del artefacto genérico para transferir dos parámetros definidos por el usuario y sus valores:- Parámetros:
test_name
,app_version
- Valores:
{"test_name":"verify_production", "app_version":"${app_version}"}
- Parámetros:
- En Modo de ejecución de etapa, seleccione esta opción para ejecutar de forma asíncrona o síncrona.
Si selecciona Ejecutar de forma asíncrona, el servicio llama a la función, pero no espera a que se complete la función. Al seleccionar Ejecutar de forma síncrona, el servicio llama a la función y espera a que se complete la función.
- Seleccione esta opción para desactivar o activar la validación.
Si la validación está activada, el servicio verifica el valor de retorno de la función. El valor de retorno es un literal de cadena UTF-8,
true
ofalse
. Si el valor de retorno estrue
, la etapa se marca como Finalizada correctamente; de lo contrario, la etapa se marca como Con fallos.Si la validación está desactivada, el servicio no verifica el valor de retorno.
La validación solo se produce si ha seleccionado la opción "Ejecutar de forma sincronizada" para el modo de ejecución temporal.
- (Opcional) Para agregar etiquetas al pipeline, haga clic en Mostrar opciones de etiquetado. El etiquetado es un sistema de metadatos que permite organizar los recursos de su arrendamiento y realizar su seguimiento.
Puede seleccionar un espacio de nombres de etiqueta o agregar una etiqueta de formato libre. Introduzca la clave de etiqueta y el valor de etiqueta correspondientes. Puede agregar varias etiquetas.
Nota
Si no desea validar la ejecución del despliegue, seleccione Ninguno. - Puede activar o desactivar una aprobación manual para el despliegue. Si desea activar una aprobación, introduzca los siguientes valores:
- Introduzca un nombre y una descripción para la etapa. La adición de una descripción es opcional.
- Introduzca el número de aprobadores.
- (Opcional) Para agregar etiquetas al pipeline, haga clic en Mostrar opciones de etiquetado. El etiquetado es un sistema de metadatos que permite organizar los recursos de su arrendamiento y realizar su seguimiento.
Puede seleccionar un espacio de nombres de etiqueta o agregar una etiqueta de formato libre. Introduzca la clave de etiqueta y el valor de etiqueta correspondientes. Puede agregar varias etiquetas.
- Para agregar la etapa al pipeline, haga clic en Agregar.
Se abrirá una ventana modal que muestra el estado de varias configuraciones de etapa que forman parte de la estrategia de despliegue azul/verde de OKE. Pueden incluir etapas de despliegue azul/verde de OKE, llamada a función, aprobación y cambio de tráfico. Si la validación no se realiza correctamente, puede comprobar el mensaje de error específico de cada etapa fallida y realizar una acción correctiva.
Si la validación se realiza correctamente, puede ejecutar el pipeline de despliegue o agregar más etapas secuencialmente o en paralelo al pipeline, según sea necesario.
Para crear una etapa azul/verde de OKE, ejecute el comando
create-deploy-oke-blue-green-stage
:oci devops deploy-stage create-deploy-oke-blue-green-stage
Parámetros requeridos:
--blue-green-strategy
--kubernetes-manifest-artifact-ids
--oke-cluster-environment-id
--pipeline-id
--stage-predecessor-collection
Para obtener ayuda para este comando:
oci devops deploy-stage create-oke-blue-green-stage -h
Para crear una etapa de llamada a función, ejecute el comando
create-invoke-function-stage
:oci devops deploy-stage create-invoke-function-stage
Parámetros requeridos:
--function-environment-id
--is-async
--is-validation-enabled
--pipeline-id
--stage-predecessor-collection
Para obtener ayuda para este comando:
oci devops deploy-stage create-invoke-function-stage -h
Para crear una etapa de cambio de tráfico del equilibrador de carga, ejecute el comando
create-load-balancer-traffic-shift-stage
:oci devops deploy-stage create-load-balancer-traffic-shift-stage
Parámetros requeridos:
--blue-backend-ips
--green-backend-ips
--load-balancer-config
--traffic-shift-target
--rollout-policy
--pipeline-id
--stage-predecessor-collection
Para obtener ayuda para este comando:
oci devops deploy-stage create-load-balancer-traffic-shift-stage -h
Para crear una etapa de aprobación manual, ejecute el comando
create-manual-approval-stage
:oci devops deploy-stage create-manual-approval-stage
Parámetros requeridos:
--approval-policy
--pipeline-id
--stage-predecessor-collection
Para obtener ayuda para este comando:
oci devops deploy-stage create-manual-approval-stage -h
Para obtener todos los comandos para
deploy-stage
:oci devops deploy-stage -h
Para crear una etapa, utilice la operación
CreateDeployStage
. En función de las etapas que desee agregar al pipeline, seleccione los siguientes valores para el tipo de etapa:- Etapa de despliegue azul verde de Kubernetes Engine (OKE:
OKE_BLUE_GREEN_DEPLOYMENT
- Etapa de cambio de tráfico azul/verde de OKE:
OKE_BLUE_GREEN_TRAFFIC_SHIFT
- Etapa de llamada a función:
INVOKE_FUNCTION
- Etapa de aprobación manual:
MANUAL_APPROVAL
- Etapa de despliegue azul verde de Kubernetes Engine (OKE: