Criar um Cluster do Kubernetes
Use o Terraform para configurar um cluster do Kubernetes na sua conta do Oracle Cloud Infrastructure.
As principais tarefas incluem:
- Copie seus scripts existentes dos tutoriais do Terraform.
- Edite os scripts existentes para reutilização.
- Escreva novos scripts para um cluster do Kubernetes.

Para obter mais informações, consulte:
Antes de Começar
Para executar este tutorial com sucesso, você precisa ter o seguinte:
- Uma conta do Oracle Cloud Infrastructure paga. Consulte Solicitar e Gerenciar Promoções do Oracle Cloud Grátis
- Um computador com MacOS, Linux ou Windows.
- Recursos do tutorial Terraform:
- Execute todas as etapas em:
- Mantenha os scripts criados no seguinte diretório:
$HOME/tf-simple-infrastructure/
1. Reunir as Informações Necessárias
Reúna informações para as instâncias de computação no pool de nós.
VM.Standard2.1
para as instâncias de computação no pool de nós.<node-shape>
VM.Standard2.1
no bloco de notas.
2. Copiar Scripts Existentes
Copie scripts criados em Configurar uma Infraestrutura Simples com o OCI Terraform. Em seguida, remova os scripts e as saídas relacionadas à instância de computação. Na próxima seção, você declara um pool de nós com instâncias de computação.
3. Criar Scripts
Crie scripts para um cluster, um pool de nós e para imprimir saídas.
Em Referência de Argumento (oci_containerengine_cluster), localize todos os argumentos necessários:
- compartment_id
- kubernetes_version
- nome
- vcn_id
Para navegar até Referência de Argumento (oci_containerengine_cluster):
- Vá para Provedor do Oracle Cloud Infrastructure.
- Na caixa Filtro no canto superior esquerdo, digite
container engine
.Os resultados são retornados para origens de dados e recursos.
- Em Mecanismo de Contêiner, vá para Recursos e selecione oci_containerengine_cluster.
- Selecione Referência de Argumento.
A Referência de Argumento é aberta.
Construa um bloco de recursos:
- Declarar um bloco de recursos com a palavra-chave:
resource
- Adicione um label para o tipo:
"oci_containerengine_cluster"
- Adicione um label para um nome local (sua escolha):
- O label pode conter letras, dígitos, sublinhados (
_
) e hifens (-
). O primeiro caractere não deve ser um dígito. - Exemplo:
"oke-cluster"
- O label pode conter letras, dígitos, sublinhados (
- Dentro do bloco de código, forneça um valor para os argumentos obrigatórios:
- compartment_id: Aponte para o compartimento declarado em
compartment.tf
:oci_identity_compartment.tf-compartment.id
- kubernetes_version: Este tutorial usa a versão
v1.21.5
. Você pode marcar a opção Criação Rápida na Console para a versão mais recente. - nome: Designe um nome de sua escolha.
- vcn_id: Aponte para o compartimento declarado em
vcn-module.tf
:module.vcn.vcn_id
Um argumento necessário não tem um valor padrão.
- compartment_id: Aponte para o compartimento declarado em
- Forneça valores para os seguintes argumentos opcionais para substituir seus valores padrão.
- add_ons: Designe
true
oufalse
para os seguintes argumentos:- is_kubernetes_dashboard_enabled
- is_tiller_enabled
- kubernetes_network_config: Designe um bloco CIDR como uma string para os seguintes argumentos:
pods_cidr
services_cidr
Observação
O bloco CIDR dos pods não deve se sobrepor ao nó de trabalho e aos blocos CIDR de sub-rede do balanceador de carga.
O bloco CIDR do serviço Kubernetes não deve se sobrepor com o bloco CIDR de VCN.
O exemplo de código neste tutorial usa os mesmos blocos CIDR da opção Criação Rápida na Console.
Para obter mais explicações, consulte Blocos CIDR e Kubernetes Engine (OKE).
- service_lb_subnet_ids: Designe a sub-rede pública declarada em
public-subnet.tf
Observação
O argumento, service_lb_subnet_ids aceita uma lista de ids de sub-rede:- Mesmo que você tenha uma sub-rede, use colchetes para denotar uma lista.
- Exemplo:
[oci_core_subnet.vcn-public-subnet.id]
- add_ons: Designe
Em Referência de Alarme (oci_containerengine_node_pool), localize todos os argumentos necessários:
- cluster_id
- compartment_id
- kubernetes_version
- nome
- node_config_details
- placement_configs
- availability_domain
- subnet_id
- placement_configs
- node_shape
- node_source_details
- image_id
- source_type
Para navegar até Referência de Alarme (oci_containerengine_node_pool):
- Vá para Provedor do Oracle Cloud Infrastructure.
- Na caixa Filtro no canto superior esquerdo, digite
container engine
.Os resultados são retornados para origens de dados e recursos.
- Em Mecanismo de Contêiner, vá para Recursos e selecione oci_containerengine_node_pool.
- Selecione Referência de Argumento.
A Referência de Argumento é aberta.
Construa um bloco de recursos:
- Declarar um bloco de recursos com a palavra-chave:
resource
- Adicione um label para o tipo do recurso:
"oci_containerengine_node_pool"
- Adicione um label para um nome local (sua escolha):
- O label pode conter letras, dígitos, sublinhados (
_
) e hifens (-
). O primeiro caractere não deve ser um dígito. - Exemplo:
"oke-node-pool"
- O label pode conter letras, dígitos, sublinhados (
- Dentro do bloco de código, forneça um valor para os argumentos necessários:
- cluster_id: Acione para o cluster declarado em
cluster.tf
:oci_containerengine_cluster.oke-cluster.id
- compartment_id Aponte para o compartimento declarado em
compartment.tf
:oci_identity_compartment.tf-compartment.id
- kubernetes_version: Este tutorial usa a mesma versão do assistente de Criação de Cluster da Console.
- nome: Designe um nome de sua escolha. O Assistente de Criação de Cluster da Console usa o nome
pool1
. - node_shape: Insira as informações reunidas na seção um.
- node_source_details:
- image_id: Digite as informações reunidas na seção um.
- source_type: Defina como
"image"
.
- cluster_id: Acione para o cluster declarado em
- Forneça valores para os seguintes argumentos opcionais para substituir seus valores padrão.
- initial_node_labels: Atribua pares de chave/valor para os nós.
- chave: Designe uma chave à sua escolha. A opção Criação Rápida da Console cria a chave
"name"
. - valor: Designe um valor para a chave. A opção Criação Rápida da Console designa
"<your-cluster-name>"
à chave"name"
.
- chave: Designe uma chave à sua escolha. A opção Criação Rápida da Console cria a chave
- initial_node_labels: Atribua pares de chave/valor para os nós.
Nesta seção, você declara saídas para o cluster e o pool de nós.
- Para saídas de cluster, consulte Referência de Atributo em oci_containerengine_cluster.
- Para saídas de pool de nós, consulte Referência de Atributo na página oci_containerengine_node_pool.
Saídas para Itens da Lista
- Em geral, os atributos de lista são plurais (termina em s).
- Exemplo de atributo de lista para pool de nós:
node_config_details
- Para gerar todos os atributos em uma lista, use o atributo de lista sozinho, sem colchetes.
- Por exemplo:
output "node-configuration-details"{ value = oci_containerengine_node_pool.oke-node-pool.node_config_details }
Amostra de saída:
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 gerar ou chamar um item de uma lista:
- Utilize o formato a seguir:
<list-attribute-name>[index].<attribute-from-list>
- Substitua
[index]
por:- [0] para o primeiro item.
- [1] para o segundo item.
- ...
- [n] para o (n+1)oitem.
- Utilize o formato a seguir:
- Por exemplo:
Valor para o atributo
size
:output "node-size" { value = oci_containerengine_node_pool.oke-node-pool.node_config_details[0].size }
4. Executar Scripts
Execute os scripts do Terraform para criar um compartimento, uma rede virtual na nuvem, um cluster do Kubernetes e um pool de nós.
.terraform
que inclui os plug-ins do provedor oci
.Execute seus scripts do Terraform:
terraform apply
Quando for solicitada a confirmação, digite yes
para que seus recursos sejam criados.
Pode levar 15 minutos ou mais para que o cluster seja criado. Depois que o Terraform criar os recursos, revise a saída no 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
...
- erros 401 - (Service erro:NotAuthenticated):
- Você tem um valor incorreto para um dos seguintes itens:
- OCID da Tenancy
- OCID do Usuário
- impressão digital
- Chave privada RSA (o caminho ou a chave)
- Você tem um valor incorreto para um dos seguintes itens:
- esse host não está disponível:
- Você tem um valor incorreto para:
- identificador da região
- Você tem um valor incorreto para:
Referências:
O Que Vem a Seguir
Parabéns! Você criou um cluster do Kubernetes usando o Terraform, na sua conta do Oracle Cloud Infrastructure.
Agora que você tem um cluster do Kubernetes, tente os tutoriais do Kubernetes em Tutoriais do Desenvolvedor.
Para explorar mais informações sobre desenvolvimento com produtos Oracle, confira estes sites: