Skip to content

ikauzak/kubernetes-challenges-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

O que é este repositório?

Este repositório armazena diversos exercícios para a fixação dos conceitos básicos Kubernetes, juntamente com um laboratório pré criado para ser executado em máquina virtual.

Objetivo

O objetivo é utilizar esse material como um apoio para os alunos que se interessam por Kubernetes, passando alguns desafios aos quais possam tentar resolver por conta própria.

Arquivos de exemplos do diretório apostila:

.
├── atividades
│   ├── 1
│   │   └── task-01.yaml
│   ├── 2
│   ├── 3
│   ├── 4
│   │   ├── order-credentials.yaml
│   │   └── order-processing.yaml
│   ├── 5
│   │   └── ingress.yaml
│   ├── 6
│   └── awesome-social-media
│       ├── deploy.yaml
│       ├── ingress.yaml
│       └── service.yaml
├── capítulo-2
│   └── 1
│       └── multi-resources.yaml
├── capítulo-3
│   └── 1
│       ├── daemonset.yaml
│       ├── deploy.yaml
│       └── pod.yaml
├── capítulo-4
│   ├── 1
│   │   ├── game-config-env-file.yaml
│   │   ├── game-config-env-pod.yaml
│   │   ├── game-config-file.yaml
│   │   ├── game-config-multi-env-pod.yaml
│   │   ├── game-config-multi-env.yaml
│   │   └── game-config-pod.yaml
│   └── 2
│       ├── dbcredentials-env-pod.yaml
│       ├── dbcredentials.yaml
│       ├── pod-pullsecret.yaml
│       └── registry.yaml
├── capítulo-5
│   ├── 1
│   │   └── resources.yaml
│   └── 2
│       ├── http-probe.yaml
│       └── probes.yaml
└── capítulo-6
    ├── 1
    │   ├── app.yaml
    │   ├── service-clusterip.yaml
    │   └── service-nodeport.yaml
    └── 2
        └── ingress.yaml

Criação do ambiente

No diretório cluster, está um código escrito em Terraform para o provisionamento de um cluster Kubernetes básico.

Sempre que terminar os seus estudos, destrua o ambiente imediatamente para evitar cobranças extras pelo ambiente sem uso!

A sua inicialização pode ser feita de maneira simples seguindo essas etapas:

Pré requisitos

Para o provisionamento deste ambiente, você precisará instalar o Terraform em seu local de trabalho. Siga as seguintes etapas:

  1. Acesse este link para baixar a versão mais atualizada do Terraform.

  2. Escolha a versão apropriada do seu Sistema Operacional (Windows, Linux ou macOS), e em seguida o tipo de binário do seu sistema (386 ou AMD64)

  3. Siga as instruções da documentação de instalação do Terraform

  4. Em caso de seu sistema operacional for Windows veja a resolução deste link para configurar PATH no seu sistema através da interface.

  5. Configure o az login em seu ambiente de trabalho fazendo os seguintes passos:

$ az login

Ao autenticar com sua conta, você pode confirmar o subscription da sua conta usando:

$ az account list

Uma segunda opção para autenticação é utilizando um Service Principal com a permissão de Contributor

  1. Faça o download do kubectl através do link e siga as instruções do sistema operacional escolhido.

Caso prefira executar o kubectl em container, siga as instruções na seção Acessando o ambiente.

Importante notar que o seu usuário precisa de no mínimo privilégios de Contributor na conta Azure.

Ajustes básicos

Antes de iniciar o script, precisamos revisar e configurar algumas variáveis:

  1. Acesse o diretório cluster e localize o arquivo variables.tf

  2. Substitua os valores null das váriaveis cluster_location e cluster_resource_group_name. Por exemplo:

variable "cluster_location" {
  type        = string
  description = "Nome da localização do cluster e dos recursos"
  default     = "brazilsouth"
}

variable "cluster_resource_group_name" {
  type        = string
  description = "Nome do resource group do cluster"
  default     = "meu-resource-group"
}

Importante destacar que o custo do seu ambiente pode variar conforme a localização do cluster, consulte com mais detalhes sobre as regiões do Azure.

  1. A restante das variáveis já estão pré-definidas com valores iniciais para o provisionamento do ambiente. Caso deseje alterar o tamanho das máquinas do cluster, nome ou quantidade de máquinas, você também pode alterar as variáveis que são responsáveis por definirem essa infraestrutura:
variable "cluster_name" {
  type        = string
  description = "Nome do cluster a ser criado"
  default     = "mycluster"
}

variable "nodepool_vm_size" {
  type        = string
  description = "Tipo de vm do nodepool de sistema padrão"
  default     = "Standard_B4ms"
}

variable "nodepool_min_count" {
  type        = number
  description = "Minimo de nodes a serem criados no nodepool"
  default     = 1
}

variable "nodepool_max_count" {
  type        = number
  description = "Máximo de nodes a serem criados no nodepool"
  default     = 3
}

Inicialização e criação

Para inicializar a sua criação:

$ terraform init

Faça um plan dos recursos a serem criados:

$ terraform plan

Provisione o ambiente ao aceitar o comando:

$ terraform apply

O laboratório leva em média 10 minutos para ficar pronto.

IMPORTANTE

Ao terminar os exercícios e os testes, SEMPRE destrua o ambiente para evitar gastos desnecessários, pois os recursos utilizados estão provisionados na sua conta Azure.

$ terraform destroy

O intuito do script Terraform é justamente recriar o ambiente sempre que necessário com as mesmas configurações iniciais.

Acessando o ambiente

Método local

  1. Execute o comando abaixo para resgatar as credenciais do cluster:
$ az aks get-credentials --resource-group NOME_DO_RESOURCE_GROUP --name NOME_DO_CLUSTER
  1. Se tudo ocorrer bem, o seu terminal estará conectado no custer. Experimente usar um comando básico para testar a sua conectividade.
$ kubectl get nodes

Método via container

  1. Inicialize o container toolbox mapeando o volume deste repositório em /app. Este container possui as ferramentas necessárias para o acesso ao laboratório.
$ docker run -it --rm --network=host -v $(pwd):/app ikauzak/toolbox:latest
  1. Faça o az login e autentique com as credenciais da sua conta Azure:
# az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code XXXXXX to authenticate.

# az aks get-credentials --resource-group NOME_DO_RECURSO --name NOME_DO_CLUSTER
  1. A partir deste momento, o seu usuário estará autenticado no ambiente para iniciar o laboratório.

  2. Crie a sua namespace no cluster para iniciar as atividades:

# kubectl create ns MINHA_NOVA_NAMESPACE
# kn MINHA_NOVA_NAMESPACE

Documentação

A documentação Kubernetes pode ser executada através do docker:

$ docker run -dit --rm -p 8000:80 ikauzak/kubernetes-course-docs:latest

Em seguida abra a documentação através do navegador utilizando o endereço http://localhost:8000.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages