Expondo Aplicativos Contêinerizados
Em um dispositivo Roving Edge, você pode expor uma implantação de aplicativo para que os aplicativos do nó de trabalho possam ser acessados de fora do dispositivo.
Faça o seguinte para expor aplicativos de nó de trabalho fora do dispositivo:
-
Crie um balanceador de carga externo.
-
Atualize as regras de entrada e saída conforme necessário para dar suporte aos requisitos de porta dos aplicativos conteinerizados. Por exemplo, se algum aplicativo usar a porta TCP 3000, será necessário adicionar uma regra de entrada com a porta 3000.
Criar um Balanceador de Carga Externo
Um balanceador de carga externo é um Serviço do tipo LoadBalancer. O serviço fornece balanceamento de carga para um aplicativo que tem várias instâncias em execução.
Se você usar as opções --service-lb-defined-tags ou --service-lb-flexible-tags para especificar tags a serem aplicadas a balanceadores de carga externos, certifique-se de que o grupo dinâmico aplicável inclua a política a seguir. Consulte Criar um Grupo Dinâmico de Clusters e Políticas.
allow dynamic-group dynamic-group-name to use tag-namespaces in compartment compartment-name
Certifique-se de que o parâmetro de forma do balanceador de carga tenha um dos seguintes valores:
-
400Mbps -
flexible– Requer que você também forneça anotaçõesflex-mineflex-max.
Talvez seja necessário editar o arquivo de implantação de aplicativo para modificar o valor da forma do balanceador de carga. Consulte Especificando Formas Alternativas do Balanceador de Carga e Especificando Formas Flexíveis do Balanceador de Carga para obter mais informações e exemplos de como definir esses valores.
Para criar um balanceador de carga de serviço em um cluster privado (um cluster com uma sub-rede privada do balanceador de carga de trabalho), use a seguinte anotação no modelo de balanceador de carga externo:
service.beta.kubernetes.io/oci-load-balancer-internal: "true"
Use o seguinte comando para criar o balanceador de carga externo:
# kubectl create -f expose_lbVeja a seguir o conteúdo do arquivo expose_lb:
apiVersion: v1
kind: Service
metadata:
name: my-nginx-svc
labels:
app: nginx
annotations:
oci.oraclecloud.com/load-balancer-type: "lb"
service.beta.kubernetes.io/oci-load-balancer-shape: "400Mbps"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: nginxO comando a seguir mostra mais informações sobre esse balanceador de carga externo. O endereço IP de entrada LoadBalancer é o endereço IP usado para acessar aplicativos de nó de fora do Roving Edge. No Console do Dispositivo, o endereço IP de Entrada LoadBalancer é mostrado sob o cabeçalho "Endereço IP" na parte inferior da primeira coluna da página de detalhes do balanceador de carga, seguido pelo label "(Público)."
# kubectl describe svc my-nginx-svc
Name: my-nginx-svc
Namespace: default
Labels: app=nginx
Annotations: oci.oraclecloud.com/load-balancer-type: lb
service.beta.kubernetes.io/oci-load-balancer-shape: 400Mbps
Selector: app=nginx
Type: LoadBalancer
IP Family Policy: SingleStack
IP Families: IPv4
IP: IP_address
IPs: IP_address
LoadBalancer Ingress: Load_Balancer_IP_address
Port: <unset> 80/TCP
TargetPort: 80/TCP
NodePort: <unset> 32145/TCP
Endpoints: IP_address:port, IP_address+1:port, IP_address+2:port
Session Affinity: None
External Traffic Policy: Cluster
Events:
Type Reason Age From Message
----
Normal EnsuringLoadBalancer 7m48s service-controller Ensuring load balancer
Normal EnsuredLoadBalancer 6m40s service-controller Ensured load balancerPara obter descrições de políticas de tráfego, consulte Preservando o IP de origem do cliente.
Use o seguinte comando para listar endereços IP e portas do balanceador de carga externo:
# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP IP_address <none> 443/TCP 6h17m
my-nginx-svc LoadBalancer IP_address
Load_Balancer_IP_address 80:32145/TCP 5h5mO Que Vem a Seguir: