Kubernetes (OCI)

Escrito por Hitfy

Template: Template_OCI_OKE_Kubernetes_Padrao


As coletas de dados da aplicação Kubernetes OCI são feitas através de comandos KUBECTL, via OCI-CLI.


Configuração do Proxy


Antes de executar as configurações do Proxy, é importante salientar que existem duas opções de configuração para esse monitoramento. Por isso, deve-se verificar a seção "Configuração do Host" no fim deste documento.


Instalar OCI CLI

Executar o comando para baixar e instalar:

bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

Instalar em um diretório público, onde o usuário "zabbix" terá acesso (Ex: /usr/local/lib/oracle-cli)

===> In what directory would you like to place the install? (leave blank to use '/root/lib/oracle-cli'): /usr/local/lib/oracle-cli
-- Creating directory '/usr/local/lib/oracle-cli'.
-- We will install at '/usr/local/lib/oracle-cli'.
===> In what directory would you like to place the 'oci' executable? (leave blank to use '/root/bin'): /usr/local/bin
-- The executable will be in '/usr/local/bin'.
===> In what directory would you like to place the OCI scripts? (leave blank to use '/root/bin/oci-cli-scripts'): /usr/local/bin/oci-cli-scripts
-- Creating directory '/usr/local/bin/oci-cli-scripts'.
-- The scripts will be in '/usr/local/bin/oci-cli-scripts'.


Configurar OCI

Será necessário ter as informações da OCI, como User OCID, Tenancy OCID, Fingerprint, Region e arquivo chave.pem e então executar o comando:

oci setup config


Testar instalação

oci os ns get 2>/dev/null


Instalar KUBECTL Client

Baixar a aplicação:

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"


Ajustar permissões:

chmod +x ./kubectl


Mover para um diretório acessível pelo usuário "zabbix":

sudo mv ./kubectl /usr/local/bin/kubectl


Verificar instalação e versão:

kubectl version --client


Configurar OCI OKE Context

Atenção para as variáveis nos comandos, pois será necessário substituir os valores.

{$IT_PERFIL} - Nome do Perfil/Tenancy

{$IT_TENANCY} - Tenancy OCID (ocid1.tenancy.oc1..aa[...])

{$IT_COMPARTIMENT} - Compartiment OCID (ocid1.compartment.oc1..aa[...])

{$IT_OKE_CLUSTER} - Cluster OCID (ocid1.cluster.oc1.sa-saopaulo-1.aa[...])

{$IT_REGION} - Região do Tenancy (sa-saopaulo-1)

{$HOST} - Hostname configurado


Listar todos compartimentos OCI

oci iam --profile {$IT_PERFIL} compartment list --compartment-id {$IT_TENANCY} --all --query 'data[*].{Name:name, ID:id}' --output table 2>/dev/null


Listar todos os Clusters OKE OCI

oci ce --profile {$IT_PERFIL} cluster list --compartment-id {$IT_COMPARTIMENT} --query 'data[*].{Name:name, ID:id}' --output table 2>/dev/null


Configurar OCI OKE Context

oci ce --profile {$IT_PERFIL} cluster create-kubeconfig --cluster-id {$IT_OKE_CLUSTER} --region {$IT_REGION} --file /usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml


Renomear Context (Opcional - Será o hostname)

Obter o nome atual do contexto:

KUBECONFIG=/usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml kubectl config get-contexts


Renomear:

KUBECONFIG=/usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml kubectl config rename-context {$NOME_ANTIGO} {$HOST}

Atenção: este nome será utilizado como hostname no ativo. Com isso, é necessário verificar se ainda não existe cadastrado.


Listar todos Contexts do Perfil

KUBECONFIG=/usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml kubectl config get-contexts


Testar coleta

KUBECONFIG=/usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml kubectl --context={$HOST} get nodes -o wide 2>/dev/null


Configuração do Host

Este monitoramento pode ser configurado de forma manual ou de forma automática via descoberta do monitoramento OCI.


Automático

Depois de fazer a configuração do Proxy, implantar monitoramento OCI seguindo a documentação.

A Descoberta de Kubernetes Contexts irá adicionar o o host de monitoramento Kubernetes.


No host do monitoramento OCI, validar:

  • Se a macro {$IT_PERFIL} está com o mesmo nome utilizado na configuração do proxy;
  • Se as configurações de Host Prototype da descoberta estão corretos (Hostname e Grupos (adicionar grupo do cliente)).


Manual

Hostname

O hostname do ativo deve ter o mesmo nome do context do Kubernetes (Utilizado na configuração do Proxy)


Macros

{$IT_PERFIL} - Nome do Perfil/Tenancy (Utilizado na configuração do Proxy)