La creación del cluster de Kubernetes se realizará desde Terraform Cloud. El área de trabajo configurada en la sección anterior va a crear la infraestructura a partir del código existente en el repositorio GitHub.
Terraform Cloud tiene dos formas de establecer los cambios: Manual y Automático.
Para entornos de producción es recomendable utilizar el modo Manual, de esta forma los demás integrantes del equipo podrán analizar los cambios y dar su criterio.
Sin embargo, el ejercicio a realizar en este momento no incluye este escenario, por lo tanto, se van a configurar los cambios de forma Automática.
Acceda a las configuraciones de su área de trabajo y seleccione la opción Auto apply
.
La descripción del cluster de Kubernetes se encuentra en el fichero infra/cluster.tf
.
cat infra/cluster.tf
# kubernetes cluster
resource "digitalocean_kubernetes_cluster" "staging" {
name = "staging"
region = "ams3"
version = "1.20.2-do.0"
tags = ["staging"]
node_pool {
name = "worker-pool"
size = "s-1vcpu-2gb"
auto_scale = true
min_nodes = 2
max_nodes = 5
}
}
Para crear el cluster utilice el botón Queue plan
ubicado arriba y a la derecha de la plataforma Terraform.
Una vez iniciado el plan podrá ver en su pantalla cómo se aplican los cambios de Terraform. Esta acción puede demorar unos 7 minutos.
Acceda a la sección de Kubernetes en Digital Ocean y observe que se ha iniciado un cluster de Kubernetes con el nombre staging
.
Espere a que termine de crearse el cluster para realizar el próximo paso.
Una vez creado el cluster será necesario acceder el desde la herramienta kubectl
. Para lograrlo necesitará obtener las credenciales del nuevo cluster, así como la URL de acceso al API de Kubernetes.
Utilice el siguiente comando para configurar el fichero ~/.kube/config
con las credenciales del cluster de Digital Ocean:
doctl kubernetes cluster kubeconfig save staging
Notice: adding cluster credentials to kubeconfig file found in "/Users/......./.kube/config"
Notice: setting current-context to do-ams3-staging
Compruebe que la configuración se ha realizado correctamente. Liste los nodos del cluster:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
worker-pool-8jk9f Ready <none> 23m v1.20.2
worker-pool-8jk9q Ready <none> 23m v1.20.2
Siguiente: Instalar Flux CD