Terraform: crear Kubernetes Deployment
Hoy os voy a mostrar como generar un Deployment de Kubernetes con la automatización de Terraform.
Lanzaremos el siguiente comando para recoger datos de nuestro clúster Kubernetes por si no lo conocemos, para hacer la conexión. Ya que yo tengo mi máquina separada del clúster:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
raulunzue@KBMASTER:~$ kubectl config view apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://192.168.2.193:6443 name: kubernetes contexts: - context: cluster: kubernetes namespace: default user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preferences: {} users: - name: kubernetes-admin user: client-certificate-data: REDACTED client-key-data: REDACTED |
Crearé un directorio:
1 |
[root@TERRAFORM ~]# mkdir kubernetes |
Me muevo a la carpeta donde generaré los ficheros:
1 |
[root@TERRAFORM ~]# cd kubernetes |
Genero un fichero con extensión TF, lo llamaré kubernetes.tf:
1 |
[root@TERRAFORM ~]# nano kubernetes.tf |
El contenido sería siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
[root@TERRAFORM kubernetes]# cat kubernetes.tf terraform { required_providers{ kubernetes = { source = "hashicorp/kubernetes" } } } provider "kubernetes" { load_config_file = "false" host = "https://192.168.2.193:6443" username = "prueba" password = "probandokubernetes" #load_config_file = false # when you wish not to load the local config file } resource "kubernetes_deployment" "nginx" { metadata { name = "scalable-nginx-example" labels = { App = "ScalableNginxExample" } } spec { replicas = 2 selector { match_labels = { App = "ScalableNginxExample" } } template { metadata { labels = { App = "ScalableNginxExample" } } spec { container { image = "nginx:1.7.8" name = "example" port { container_port = 80 } resources { limits { cpu = "0.5" memory = "512Mi" } requests { cpu = "250m" memory = "50Mi" } } } } } } } |
Lo valido con el comando “terraform validate“:
Hacemos un testeo con el comando “terraform plan“:
Arrancamos Terraform con “terraform init“:
Lanzamos “terraform apply“:
Comprobamos que los deployments se han desplegado en nuestro clúster de Kubernetes:
1 2 3 |
kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE scalable-nginx-example 2/2 2 2 1m48s |
Espero os parezca interesante…ya que es gratis, comparte ;P
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?