Sobes.tech
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.