|
Esta é uma documentação não divulgada para SUSE® Virtual Clusters v1.2.0 (Dev). |
Procedimentos: Expor cargas de trabalho fora do cluster virtual
Este guia explica como expor cargas de trabalho executando em clusters virtuais gerenciados pelo k3k para redes externas. O comportamento varia dependendo do modo de operação do cluster virtual.
Modo Virtual
|
No modo virtual, a exposição externa direta de cargas de trabalho não está disponível. Este modo é projetado para forte isolamento e não expõe a rede do cluster virtual diretamente. |
Modo Compartilhado
No modo compartilhado, as cargas de trabalho podem ser expostas à rede externa usando tipos de serviço padrão do Kubernetes ou um controlador de entrada, dependendo de suas necessidades.
|
`Services` estão sempre sincronizados do cluster virtual para o cluster host seguindo o mesmo princípio descrito aqui para pods. |
Opção 1: Use NodePort ou LoadBalancer
Para expor um serviço como um aplicativo web fora do cluster host:
-
NodePort: Expõe o serviço em uma porta estática no IP de cada nó. Acesse o serviço emhttp://<NodeIP>:<NodePort>. -
LoadBalancer: Provisiona um balanceador de carga externo (se suportado pelo ambiente) e expõe o serviço via o IP do balanceador de carga.
|
O IP |
Opção 2: Use ClusterIP para Comunicação Interna
Se a carga de trabalho deve ser acessível apenas a outros serviços ou pods dentro do cluster host:
-
Use o tipo de serviço
ClusterIP. Isso expõe o serviço em IP interno, acessível apenas dentro do cluster host.
Opção 3: Use Ingress para Roteamento HTTP/HTTPS
Para roteamento mais avançado, como roteamento baseado em hostname ou caminho, implante um controlador de Ingress no cluster virtual e exponha-o via NodePort ou LoadBalancer.
Isso permite que você:
-
Defina recursos de Ingress no cluster virtual.
-
Roteie o tráfego externo para serviços dentro do cluster virtual.
Opção 4: Use Ingress de Host
Para usar o controlador de Ingress de host, ative sync.ingresses. Como os Ingresses são sincronizados com o cluster host, os usuários do cluster virtual não precisam implantar um controlador de Ingress.
apiVersion: k3k.io/v1beta1
kind: Cluster
metadata:
name: k3kcluster-shared-mode
spec:
mode: shared
...
sync:
ingresses:
enabled: true
Com essa sincronização ativada, certificados também podem ser emitidos pelo cluster do host. Por exemplo, um certificado pode ser emitido se você estiver usando Cert-Manager.