Despliega una app en Continuous Delivery utilizando DevOps con Kubernetes y Helm
• Tener una cuenta de IBM Cloud.
• Instalar la CLI de IBM Cloud
• Instalar plugins: Container registry y container service
ibmcloud plugin install container-registry -r Bluemix
ibmcloud plugin install container-service -r Bluemix
- Acceder al HUB para Software para uso académico. Y navegar hasta la parte de abajo de la pagina
- Buscar el WebStore del instituto/escuela al que perteneces.
- En caso de no contar con WebStore, acceder al portal de IBM Academic Initiative, registrarse o iniciar sesión y seleccionar la opción de Students
- Seleccionar Add to Cart para IBM Bluemix – 6 Month Trial.
- Realizar el registro correspondiente utilizando la cuenta de correo académica
- Ingresamos a nuestro panel de control de IBM Cloud (console.bluemix.net)
- Una vez que tengamos el código nos vamos a Gestionar>Facturación y Uso>Facturación
- Buscamos “Códigos de características (Promocionales)”
En caso de no tener instalado el plugin container-service, corer el siguiente commando:
ibmcloud plugin install container-service -r Bluemix
Hacemos login a IBM Cloud a travéz de un codigo de autenticacion con el comando:
ibmcloud login --sso
Para crear un cluster realizamos el siguiente comando:
ibmcloud cs cluster create classic --name <name-of-cluster>
Corremos el siguiente comando para ver si nuestro cluster esta en un estado “Normal”
ibmcloud cs clusters
Corremos el siguiente comando para ver que nuestros workers estén en un estado “normal” con un estatus “ready”
ibmcloud cs workers --cluster <yourclustername>
Tomamos nota de nuestra IP Pública (En mi caso 184.172.234.189)
En nuestra línea de comandos corremos el siguiente comando:
ibmcloud cs cluster config --cluster <yourclustername>
Debería regresar una línea semejante a la siguiente:
SET KUBECONFIG=C:\Users\Your_user\.bluemix\plugins\container-service\clusters\Track10\kube-config-hou02-Track10.yml
Corremos esta línea, estamos dirigiendo nuestra variable de ambiente hacia el archivo que bajó de nuestra configuración del cluster. Nota: recordar que para usar kubectl siempre tenemos que correr estos dos comandos
Para verificar que kubectl está bien configurado:
• Corremos kubectl cluster-info esto debería regresarnos a que dirección IP está apuntando nuestro kubernetes master
• Corremos kubectl cluster-info dump este comando debería regresarnos un dump de toda la información de nuestro cluster
En caso de que alguno de estos dos comandos no funcione debemos reconfigurar el kubectl con los siguientes pasos:
ibmcloud logout
ibmcloud login
ibmcloud cs region-set us-south
ibmcloud cs cluster-config <yourclustername>
Ejecutamos la línea que regresa el último comando (SET KUBECONFIG=C:…..)
kubectl cluster-info
kubectl cluster-info dump
Una vez que kubectl cluster info-dump contesta tenemos configurado correctamente kubectl, si en cualquier momento el comando nos regresa un error concerniente a que nuestro request no obtuvo respuesta volvemos a realizar los pasos del troubleshooting.
Ahora veremos como automatizar los procesos necesarios para el despliegue de la aplicación con la herramienta de IBM Cloud “Countinuos delivery”. Esto nos permitira tener nuestro repositorio con una aplicación empaquetadacon Helm. HELM es el manejador de paquetes de Kubernetes que nos ayudara a usar preconfiguraciones para los propositos de automatizar. Ademas este servicio agrega una herramienta especial que revisa las vulenaribilidades de nuestro contenedor.
-
Entramos al dashboard de IBM Cloud.
-
Buscamos el servicio de Continuous Delivery y creamos el servicio
-
En la pantalla de inicio del servicio, nos vamos al apartado "Getting Started" y damos clic en el apartado "toolchain template"
-
Nos aseguramos que aparezcan los datos de esta manera (Se genera automáticamente)
-
Damos clic en el apartado delivery pipeline y creamos una API Key con el botón "New"
• EL nombre de registro de contenedor debe ser un espacio que ya exista, se puede checar usando el comando:
ibmcloud ks clusters . Y seleccionamos el valor de ID
• Usaremos el cluster que creamos anteriormente llenando el apartado de "cluster name"
• Si el namespace no existe dentro del cluster este sera creado automáticamente.
• Si el espacio “prod” no existe dentro del cluster este sera creado.
Una vez que le demos crear podremos vizualisar nuestras herramientas. Entre ellas nuestro Delivery Pipeline que se encargara de crear los procesos que automatizaremos
Como podemos observar, cuando creamos la cadena de herramientas, esta automaticamente genero los procesos necesarios para realizar el despliegue. Entre los que se encuentran el “Build” donde se revisan las pruebas y se ensambla todo el codigo a ejecutar. La Containerizacion de nuestra aplicación es la parte donde se monta el servicio en el Kubernete.
Y por ultimo el despliegue de la aplicación en un Deploy
- En la etapa de Deploy, debajo de los registros del despliegue podremos ver la url de nuestra aplicación desplegada.
Si entramos a esta url podremos ver nuestra aplicación corriendo con un simple “Welcome to Bluemix DevOps with Docker, Kubernetes and Helm Charts. Lets go use the Continuous Delivery Service”