AWS EKS - Parte II - Habilitando logs do Control Plane
Tags: kubernetes, aws, terraform, cloud
Published: 2023-01-12 02:08:56


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ra9vfmiq2nn8udgafllo.png)



<u>**Objetivo geral:**</u>

Setup completo de um cluster Kubernetes utilizando AWS EKS e Terraform seguindo as melhores práticas e documentações oficias. Demonstração de atualizações de aplicações e demais recursos

<u>**Objetivo da parte II:**</u>
Configuração de todos os logs do Control Plane e alguns ajustes no CloudWatch Logs.

<u>**Avisos importantes**</u>

Leitura da parte 1 [clicando aqui](https://dev.to/rodrigofrs13/aws-eks-parte-i-setup-inicial-og7/edit). A parte 1 é responsável pelo setup inicial do cluster. 

A configuração do cluster é exclusiva para laboratório e testes.

<u>**Pré requisitos**</u>

Todos da Parte 1.
Por padrão o cluster já cria um logs group no CloudWatch com o nome` /aws/eks/"_nome-do-cluster_"/cluster`

<u>**Entendendo os tipos de logs do Control Plane**</u>

- `API server(_api_)`
É o componente do ambiente de gerenciamento que expõe a API do Kubernetes. 

- `Audit (_audit_)`
Os logs fornecem um registro dos usuários, administradores ou componentes individuais do sistema que afetaram o cluster.

- `Authenticator (_authenticator_)`
Esses logs representam o componente do ambiente de gerenciamento que o AWS EKS usa para a autenticação de Controle de acesso com base em função (RBAC) do Kubernetes usando credenciais do IAM. 

- `Controller manager (_controllerManager_)`
O gerenciador do controlador gerencia os principais loops de controle que são enviados com o Kubernetes.

- `Scheduler (_scheduler_)`
Os logs do componente Scheduler que gerencia quando e onde executar pods no cluster.

Para mais informações acesse a documentação oficial [clicando aqui](https://docs.aws.amazon.com/pt_br/eks/latest/userguide/control-plane-logs.html).

_Agora que "os trem" estão mais claros, Let's go to work!_

<u>**Configurações inicias**</u>

Por padrão somente os logs de **API Server**, **Audit** e **Authenticator** do Control Plane são enviados para o CloudWatch. Vamos habilitar os demais e efetuar algumas configurações no CloudWatch Group.

No arquivo `main.tf`, vamos adicionar a variável abaixo no modulo EKS.

`cluster_enabled_log_types = var.cluster_enabled_log_types`


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8evwdfk7z4j7dvzo1efd.png)

No arquivo `variables.tf`, vamos inserir a variável abaixo:

```
variable "cluster_enabled_log_types" {
  description = "A list of the desired control plane logs to enable. For more information, see Amazon EKS Control Plane Logging documentation (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)"
  type        = list(string)
  default     = ["api", "audit", "authenticator","controllerManager","scheduler"]
}
```


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ufiv7jm4nhe65delc9p.png)

<u>**Aplicando as atualizações**</u>

Vamos executar o Plan e o Apply para atualizar nosso template com as alterações.

`terraform plan && terraform apply -auto-approve`


<u>**Validações**</u>

Através da console de gerenciamento da AWS, procure pelo serviço AWS EKS, localize o cluster e clique no menu Logging.
Ao clicar em qualquer opção de logs é feito um direcionamento para o CloudWatch Logs.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/atlfwt80y7ufsm75xyf2.png)


<u>**Próximas partes**</u>

- [AWS EKS - Parte III - Restringindo acesso ao cluster](https://dev.to/rodrigofrs13/aws-eks-parte-iii-restringindo-acesso-ao-cluster-2hd3)
- [AWS EKS - Parte IV - Configurando Add-ons gerenciados](https://dev.to/rodrigofrs13/aws-eks-parte-iv-configurando-add-ons-gerenciados-1f28) (_em construção_)
- [AWS EKS - Parte V - Deploy e atualização de uma app](https://dev.to/rodrigofrs13/aws-eks-parte-v-deploy-e-atualizacao-de-uma-app-46mc) (_em construção_)


<u>**Partes Anteriores**</u>

- [AWS EKS - Parte I - Setup inicial](https://dev.to/rodrigofrs13/aws-eks-parte-i-setup-inicial-og7)


<u>**Referências**</u>
- [Provision an EKS Cluster (AWS)](https://developer.hashicorp.com/terraform/tutorials/kubernetes/eks)
- [Enabling Control Plane Logging](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_cluster#enabling-control-plane-logging)
- [Amazon EKS control plane logging](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)