Middle
Como garantir o acesso ao cluster?
sobes.tech IA
Resposta da IA
O acesso interno ao cluster (por exemplo, Kubernetes) pode ser realizado de várias formas, dependendo do objetivo do acesso (utilizador, aplicação, manutenção).
Métodos principais:
- Ingress: Para acesso externo HTTP/HTTPS aos serviços no cluster através de um nome de domínio. Funciona ao nível L7.
- NodePort: Abre uma porta em todos os nós do cluster, que encaminha o tráfego para o serviço correspondente. É simples, mas tem má escalabilidade e requer conhecer os endereços IP dos nós.
- LoadBalancer: Cria um balanceador de carga externo na cloud (se o cluster estiver implantado na cloud), que encaminha o tráfego para o serviço. Tem custos adicionais.
- Port Forwarding: Método temporário para depuração. Encaminha uma porta da máquina local para uma porta dentro de um pod no cluster.
- kubectl exec: Permite executar comandos dentro de um contêiner em execução num pod. Usado para acesso interativo ou comandos pontuais.
- VPN ou servidor bastião: Criação de um túnel seguro ou um host intermédio para aceder a recursos dentro da rede privada do cluster.
# Exemplo de Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
# Exemplo de comando kubectl port-forward
# Encaminha a porta local 8080 para a porta 80 do pod some-pod
kubectl port-forward some-pod 8080:80
A escolha do método depende do cenário específico de uso, dos requisitos de segurança e da infraestrutura do cluster. Para ambientes de produção, é preferível usar Ingress e LoadBalancer para aceder aos serviços. Para administração e depuração, usam-se ativamente kubectl exec e port-forward. Para garantir a segurança do acesso à rede interna do cluster, muitas vezes usam-se VPN ou servidores bastião.