🌐 Gerenciamento do Cluster Kubernetes
Este guia mostra de forma simples como Gerenciar um Cluster Kubernetes no Nuvion da SaveinCloud.
🚀 1. Acesso SSH ao Cluster
-
Você pode acessar os nós mestre e de trabalho do Kubernetes via SSH, usando a chave SSH atribuída e o nome de usuário core.
-
A partir de nossa VM Linux Bastion iremos realizar o acesso SSH com a chave privada e IP local do Master Node(Control Plane) do Cluster Kubernetes com o seguinte comando abaixo:
ssh -i /root/.ssh/id_rsa [email protected]

🚀 2. Acesso ao Painel Kubernetes
- Após o cluster estar pronto, clique em Acesso ao Kubernetes para obter instruções sobre como acessar o painel de controle.

- Faça o download do arquivo "kubeconfig" para sua máquina a partir da aba de propriedades do seu cluster Kubernetes. Especifique o caminho para este arquivo na variável de ambiente "KUBECONFIG".
export KUBECONFIG=config
- Inicie um proxy para o seu cluster Kubernetes.
kubectl proxy
- Para acessar o painel do Kubernetes, visite http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/, selecione o método de autenticação "Kubeconfig" e selecione o arquivo "kubeconfig" baixado.


- Nesta parte iremos configurar o acesso ao painel do kubernetes em nossa maquina local seguindo passo a passo acima. Em nossa maquina irei criar uma pasta com nome k8s, dentro dela criar arquivo e copiar o conteudo do KUBECONFIG que foi baixado para este novo arquivo, sair e salvar:
mkdir k8s
cd k8s/
vim lab-k8s-11_03_2026_15_42
- Agora iremos executar o export KUBECONFIG=arquivo e depois comando echo para validar se arquivo está na variavel de ambiente KUBECONFIG, se tudo foi configurado corretamente, na sequencia podemos executar o comando kubectl proxy:
echo $KUBECONFIG

-
Na sequencia abra o seu navegador cole o link que foi gerado pelo Kubernetes Access.
-
selecione o método de autenticação "Kubeconfig" e selecione o arquivo "kubeconfig" baixado e clique no botão Sign in, conforme demonstrado no print abaixo.

- Pós configuração de acesso, abaixo imagem de demonstração da DASHBOARD do Cluster Kubernetes.

🚀 3. Criação de Namespaces
-
No Kubernetes, um namespace é usado para separar recursos dentro do cluster (pods, services, deployments, etc.). É muito comum para separar ambientes, equipes ou aplicações.
-
Criar namespace com kubectl
Execute:
kubectl create namespace meu-namespace
Exemplos:
kubectl create namespace treinamento
kubectl create namespace homolog
kubectl create namespace producao
- Verificar namespaces existentes:
kubectl get namespaces
kubectl get ns
- Criar recursos em um namespace específico
Execute:
kubectl create deployment nginx --image=nginx -n treinamento
ou
kubectl get pods -n treinamento
- Definir namespace padrão no kubectl (para não precisar user -n sempre)
Execute:
kubectl config set-context --current --namespace=treinamento
🚀 4. Criação de Classe de Armazenamento
-
O Kubernetes permite o uso de volumes de computação como armazenamento persistente para pods. Os volumes persistentes (PVs) existem independentemente dos pods, o que significa que um volume desse tipo persiste mesmo após a exclusão do pod ao qual está montado. Esse PV pode ser montado em outros pods para acessar os dados armazenados nele. Você pode provisionar PVs dinamicamente, sem precisar criá-los manualmente, ou estaticamente, usando volumes que já existem no cluster de computação.
-
Para criar uma classe de armazenamento iremos criar um arquivo manifest com nome storage-class.yaml, colar o conteudo abaixo e salvar o arquivo e sair:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: default
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: cinder.csi.openstack.org
parameters:
type: default
-
Este manifesto descreve a classe de armazenamento default com a política de armazenamento default. Ele também marca essa política de armazenamento como padrão para o cluster Kubernetes. A política de armazenamento deve existir no cluster de computação e ser especificada nas quotas de armazenamento do projeto atual.
-
Na sequência execute o seguinte comando:
kubectl apply -f storage-class.yaml
- Verificar classes de armazenamento existentes:
kubectl get storageclass
kubectl get sc
🚀 5. Provisionamento estático de Volumes Persistentes
- No Painel do Nuvion iremos navegar até a tela de Volumes, e em seguida iremos criar um novo volume, clicando no botão Create Volume:

- Na janela que se abre, iremos definir o nome, exemplo: vg-static-k8s, definir o tamanho em Size de 10GB e a Storage Policy sera a Default, e depois clique no botão Create:

- Após a criação do novo volume no painel, iremos clicar nele, e na janela lateral iremos copiar o numero de ID deste volume, e depois colar este numero de ID no arquivo manifest de criação de volume persistente estatico.

- Agora iremos criar nosso arquivo manifest com nome pv-static.yaml para adicionar um volume persistente estatico em nosso cluster, copie contéudo abaixo e cole em seu arquivo, na linha onde tem o campo VolumeHandle iremos colar o ID do nosso novo volume que foi criado no painel, depois salve e saia:
apiVersion: v1
kind: PersistentVolume
metadata:
annotations:
pv.kubernetes.io/provisioned-by: cinder.csi.openstack.org
name: mypv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
csi:
driver: cinder.csi.openstack.org
fsType: ext4
volumeHandle: 9a14ca98-5ffa-4e46-9775-3044cb713a60
persistentVolumeReclaimPolicy: Delete
storageClassName: default
- Na sequência execute o seguinte comando:
kubectl apply -f pv-static.yaml
- Verificar volume persistentes estaticos existentes:
kubectl get pv
🚀 6. Provisionamento dinamico de Volumes Persistentes
- Volumes persistentes podem ser provisionados dinamicamente por meio de solicitações de volumes persistentes (PVCs). Uma PVC solicita um PV de uma classe de armazenamento, modo de acesso e tamanho específicos. Se um PV adequado existir no cluster, ele será vinculado à solicitação. Se não existirem PVs adequados, mas puderem ser provisionados, um novo volume será criado e vinculado à solicitação. O Kubernetes usa uma PVC para obter o PV correspondente e o monta no pod.
Pré-requisitos
-
Um pod e a declaração de volume persistente que ele utiliza devem existir no mesmo namespace.
-
Iremos criar nosso arquivo manifest com nome pv-dinamic.yaml para adicionar um volume persistente dinamico em nosso cluster, iremos também definir um size de 2Gi para este volume, copie contéudo abaixo e cole em seu arquivo, depois salve e saia:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
storageClassName: default
-
Este arquivo manifest especifica a solicitação de volume persistente mypvc que requer da classe de armazenamento default um volume de pelo menos 1 GiB que possa ser montado no modo de leitura/gravação por um único nó.
-
Na sequência execute o seguinte comando:
kubectl apply -f pv-dinamic.yaml
- Verificar volume persistentes dinamicos existentes:
kubectl get pvc
- Para deletar um PVC(PersistentVolumeClaim) use o comando:
kubectl delete pvc nome-do-pvc -n namespace
- Exemplo de criação de um pod nginx com volume persistente dinamico:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
imagePullPolicy: IfNotPresent
name: nginx
ports:
- container: 80
protocol: TCP
volumeMounts:
- mountPath: /var/lib/www/html
name: mydisk
volumes:
- name: mydisk
persistentVolumeClaim:
claimName: mypvc1
- Execute
kubectl apply -f nginx-mypv-pod.yaml
🚀 7. Ingress Controllers no Kubernetes
-
Para este cenario iremos instalar o Traefik como ingress controller de nosso cluster Kubernetes.
-
Para instalar o Traefik no Kubernetes, utilizaremos o gerenciador de pacotes Helm para adicionar o repositório oficial, criar um namespace dedicado e instalar o chart.
Passos para instalação:
- Adicionar o repositório Helm:
helm repo add traefik https://helm.traefik.io/traefik
- Atualizar o repositório:
helm repo update
-Criar um namespace dedicado (recomendado):
kubectl create ns traefik
-Instalar o Traefik:
helm install traefik traefik/traefik -n traefik
- Ao concluir a instalação do Traefik em nosso cluster kubernetes ele retornara a seguinte mensagem no seu shell, conforme e mostrado no print a seguir:

- Verificar se o pod do Traefik esta em execução no namespace Traefik:
kubectl get pods -o wide -n traefik
🧠 Dúvidas?
Fale com nosso time de suporte técnico da SaveinCloud!