Saltar a contenido

Creación de un cluster de Kubernetes con CIVO y Terraform

Creación de un cluster de Kubernetes con CIVO y Terraform

Requisitos

  • Tener una cuenta en CIVO
  • Tener instalado Terraform

Creación del cluster

El provider de terraform de civo es muy sencillo de utilizar, simplemente hay que añadir el siguiente código en unos ficheros:

  • main.tf:
# Create a firewall
resource "civo_firewall" "firewall" {
  name                 = local.firewall.name
  create_default_rules = false
  ingress_rule {
    label      = "kubernetes-api-server"
    protocol   = "tcp"
    port_range = "6443"
    cidr       = ["0.0.0.0/0"]
    action     = "allow"
  }
}

# Create a cluster with k3s
resource "civo_kubernetes_cluster" "cluster-ejemplo" {
  name         = "cluster-ejemplo"
  firewall_id  = civo_firewall.firewall.id
  cluster_type = "k3s"
  cni          = "flannel"
  pools {
    label      = "default"
    size       = "g4s.kube.medium"
    node_count = 2
  }
}
  • variables.tf:
variable "civo_token" {
  type        = string
  default     = ""
  description = "description"
}
  • providers.tf
provider "civo" {
  token  = var.civo_token
  region = "LON1"
}
  • backend.tf
  terraform {
    backend "local" {
      path = "terraform.tfstate"
    }
    required_providers {
      civo = {
        source = "civo/civo"
        version = "1.0.31"
      }
    }
  }

Ejecución

Para ejecutar el código, simplemente hay que ejecutar los siguientes comandos:

  • Para inicializar el proyecto y descargar los providers:
terraform init

Output: terraform init

  • Para ver los cambios que se van a realizar:
terraform plan

Output: terraform plan1 terraform plan2

  • Para aplicar los cambios:
terraform apply

Output: terraform apply

  • Para destruir el cluster:
terraform destroy

Output: terraform destroy1 terraform destroy2

Conclusiones

civo Civo es una plataforma muy sencilla de usar y con un precio muy contenido, para pymes es una gran opción a valorar. Para ver más información sobre Civo, visitar su web y sus precios aquí.