Creación de un cluster de Kubernetes
Utilice Terraform para configurar un cluster de Kubernetes en su cuenta de Oracle Cloud Infrastructure.
Las tareas clave incluyen cómo:
- Copie los scripts existentes de los tutoriales de Terraform.
- Editar los scripts existentes para volver a utilizarlos.
- Escribir nuevos scripts para un cluster de Kubernetes.
Para obtener más información, consulte:
Antes de empezar
Para realizar correctamente este tutorial, debe tener lo siguiente:
- Una cuenta de Oracle Cloud Infrastructure de pago. Consulte Solicitar y gestionar promociones de Oracle Cloud gratis.
- Una computadora MacOS, Linux o Windows.
- Recursos del tutorial de Terraform:
- Pase por todos los pasos de:
- Mantenga los scripts creados en el siguiente directorio:
-
$HOME/tf-simple-infrastructure/
-
1. Recopilación de la información necesaria
Recopile la información para las instancias informáticas en el pool de nodos.
VM.Standard2.1 para las instancias informáticas del pool de nodos.<node-shape> VM.Standard2.1 en el bloc de notas.
2. Copia de los scripts existentes
Copie los scripts creados en Configuración de una infraestructura simple con OCI Terraform. A continuación, elimine los scripts y las salidas relacionadas con la instancia informática. En la siguiente sección, se declara un pool de nodos con instancias informáticas.
3. Creación de scripts
Cree scripts para un cluster, un pool de nodos y para imprimir salidas.
En Referencia de argumento (oci_containerengine_cluster), busque todos los argumentos necesarios:
- compartment_id
- kubernetes_version
- nombre
- vcn_id
Para navegar a Referencia de argumento (oci_containerengine_cluster):
- Vaya a Proveedor de Oracle Cloud Infrastructure.
-
En el cuadro Filtro de la parte superior izquierda, introduzca
container engine.Se devuelven resultados para los orígenes de datos y los recursos.
- En Container Engine, vaya a Recursos y seleccione oci_containerengine_cluster.
- Seleccione Referencia de argumento.
Se abre Referencia de argumento.
Cree un bloque de recursos:
- Declare un bloque de recursos con la palabra clave:
resource - Agregue una etiqueta para el recurso type:
"oci_containerengine_cluster" - Agregue una etiqueta para un nombre local (su elección):
-
La etiqueta puede contener letras, dígitos, caracteres de subrayado (
_) y guiones (-). El primer carácter no debe ser un dígito. - Ejemplo:
"oke-cluster"
-
La etiqueta puede contener letras, dígitos, caracteres de subrayado (
- Dentro del bloque de código, proporcione un valor para los argumentos necesarios:
-
compartment_id: apunta al compartimento declarado en
compartment.tf:oci_identity_compartment.tf-compartment.id -
kubernetes_version: en este tutorial se utiliza la versión
v1.21.5. Puede activar la opción Creación rápida en la consola para la última versión. - name: asigne un nombre de su elección.
-
vcn_id: apunte al compartimento declarado en
vcn-module.tf:module.vcn.vcn_id
Un argumento necesario no tiene un valor por defecto.
-
compartment_id: apunta al compartimento declarado en
- Proporcione valores para los siguientes argumentos opcionales para sustituir sus valores por defecto.
-
add_ons: asigne
trueofalsepara los siguientes argumentos:- is_kubernetes_dashboard_enabled
- is_tiller_enabled
-
kubernetes_network_config: asigne un bloque CIDR como una cadena para los siguientes argumentos:
-
pods_cidr -
services_cidr
Nota
El bloque CIDR para los pods no se debe superponer con el nodo de trabajo y los bloques CIDR de la subred del equilibrador de carga.
El bloque CIDR para el servicio de Kubernetes no se debe solapar con el bloque CIDR de la VCN.
El código de ejemplo de este tutorial utiliza los mismos bloques de CIDR que la opción Creación rápida en la consola.
Para obtener más información, consulte Bloques de CIDR y Kubernetes Engine (OKE).
-
-
service_lb_subnet_ids: asigne la subred pública declarada en
public-subnet.tfNota
El argumento service_lb_subnet_ids acepta una lista de ID de subred:- Incluso si tiene una subred, utilice corchetes para indicar una lista.
- Ejemplo:
[oci_core_subnet.vcn-public-subnet.id]
-
add_ons: asigne
En Referencia de alarma (oci_containerengine_node_pool), busque todos los argumentos necesarios:
- cluster_id
- compartment_id
- kubernetes_version
- nombre
-
node_config_details
-
placement_configs
- availability_domain
- subnet_id
-
placement_configs
- node_shape
-
node_source_details
- image_id
- source_type
Para navegar a Referencia de alarma (oci_containerengine_node_pool):
- Vaya a Proveedor de Oracle Cloud Infrastructure.
-
En el cuadro Filtro de la parte superior izquierda, introduzca
container engine.Se devuelven resultados para los orígenes de datos y los recursos.
- En Container Engine, vaya a Recursos y seleccione oci_containerengine_node_pool.
- Seleccione Referencia de argumento.
Se abre Referencia de argumento.
Cree un bloque de recursos:
- Declare un bloque de recursos con la palabra clave:
resource - Agregue una etiqueta para el valor type del recurso:
"oci_containerengine_node_pool" - Agregue una etiqueta para un nombre local (su elección):
-
La etiqueta puede contener letras, dígitos, caracteres de subrayado (
_) y guiones (-). El primer carácter no debe ser un dígito. - Ejemplo:
"oke-node-pool"
-
La etiqueta puede contener letras, dígitos, caracteres de subrayado (
- Dentro del bloque de código, proporcione un valor para los argumentos necesarios:
-
cluster_id: apunte al cluster declarado en
cluster.tf:oci_containerengine_cluster.oke-cluster.id -
compartment_id apunte al compartimento declarado en
compartment.tf:oci_identity_compartment.tf-compartment.id - kubernetes_version: en este tutorial se utiliza la misma versión que en el asistente de Crear cluster de la consola.
-
name: asigne un nombre de su elección. El asistente de Crear cluster de la consola utiliza el nombre
pool1. - node_shape: introduzca la información recopilada en la sección uno.
-
node_source_details:
- image_id: introduzca la información recopilada en la sección uno.
-
source_type: defina en
"image".
-
cluster_id: apunte al cluster declarado en
- Proporcione valores para los siguientes argumentos opcionales para sustituir sus valores por defecto.
-
initial_node_labels: asigne pares clave/valor para los nodos.
-
key: asigne una clave de su elección. Con la opción Creación rápida de la consola se crea la clave
"name". -
value: asigne un valor para la clave. Con la opción Creación rápida de la consola se asigna
"<your-cluster-name>"a la clave"name".
-
key: asigne una clave de su elección. Con la opción Creación rápida de la consola se crea la clave
-
initial_node_labels: asigne pares clave/valor para los nodos.
En esta sección, declarará las salidas para el cluster y el pool de nodos.
- Para ver las salidas de cluster, consulte Attribute Reference en oci_containerengine_cluster.
- Para ver las salidas del grupo de nodos, consulte Referencia de atributo en la página oci_containerengine_node_pool.
Salidas de los elementos de lista
- Normalmente, los atributos list están en plural (acaban en s).
- Ejemplo de atributo list para el pool de nodos:
-
node_config_details
-
- Para generar la salida de todos los atributos de una lista, utilice el atributo list solo, sin corchetes.
- Por ejemplo:
output "node-configuration-details"{ value = oci_containerengine_node_pool.oke-node-pool.node_config_details }Salida de ejemplo:
node-configuration-details = [ { "placement_configs" = [ { "availability_domain" = "QnsC:US-ASHBURN-AD-1" "subnet_id" = "ocid1.subnet.xxx" }, { "availability_domain" = "QnsC:US-ASHBURN-AD-2" "subnet_id" = "ocid1.subnet.xxx" }, { "availability_domain" = "QnsC:US-ASHBURN-AD-3" "subnet_id" = "ocid1.subnet.xxx" }, ] "size" = 3 }, ] - Para generar o llamar a un elemento de una lista:
- Utilice el siguiente formato:
<list-attribute-name>[index].<attribute-from-list> - Sustituya
[index]por:- [0] para el primer elemento.
- [1] para el segundo elemento.
- ...
- [n] para el elemento (n+1)th .
- Utilice el siguiente formato:
- Por ejemplo:
Valor para el atributo
size:output "node-size" { value = oci_containerengine_node_pool.oke-node-pool.node_config_details[0].size }
4. Ejecución de scripts
Ejecute los scripts de Terraform para crear un compartimento, una red virtual en la nube, un cluster de Kubernetes y un pool de nodos.
.terraform que incluye los plugins para el proveedor oci.Ejecute los scripts de Terraform:
terraform applyCuando se le solicite confirmación, introduzca yes para crear los recursos.
El cluster puede tardar 15 minutos o más en crearse. Después de que Terraform cree los recursos, revise la salida en el terminal.
Apply complete! Resources: 14 added, 0 changed, 0 destroyed.
Outputs:
...
cluster-OCID = ocid1.cluster.xxx
cluster-kubernetes-version = "v1.21.5"
cluster-name = <your-cluster-name>
cluster-state = ACTIVE
...
node-pool-OCID = ocid1.nodepool.xxx
node-pool-kubernetes-version = "v1.21.5"
node-pool-name = "pool1"
node-shape = "VM.Standard2.1"
node-size = 3
...
-
Errores 401 - (Error de servicio: No autenticado):
- Tiene un valor incorrecto para uno de los siguientes:
- OCID de arrendamiento
- OCID de usuario
- huella
- Clave privada de RSA (la ruta o la clave)
- Tiene un valor incorrecto para uno de los siguientes:
-
no existe dicho host:
- Tiene un valor incorrecto para lo siguiente:
- identificador de región
- Tiene un valor incorrecto para lo siguiente:
Referencias:
Siguiente paso
Felicidades! Ha creado un cluster de Kubernetes con Terraform en su cuenta de Oracle Cloud Infrastructure.
Ahora que tiene un cluster de Kubernetes, pruebe los tutoriales de Kubernetes en Tutoriales para desarrolladores.
Para obtener más información sobre el desarrollo con productos Oracle, consulte estos sitios: