Configurando um Network Load Balancer for VPC
Exponha seu aplicativo à rede pública ou à rede privada configurando um serviço de porta de acesso ( Kubernetes ) LoadBalancer público ou privado em cada zona do seu cluster VPC. Em seguida, há a opção de registrar o NLB de VPC com um registro DNS e um certificado TLS.
Os NLBs do VPC oferecem suporte aos tipos de protocolo “ TCP ” e “ UDP ”.
Configurando um NLB de VPC pública ou privada
Exponha seu aplicativo ao tráfego de rede configurando um serviço do tipo “ Kubernetes ” ( LoadBalancer ) em cada zona do seu cluster. Ao criar o serviço Kubernetes LoadBalancer, um Network Load Balancer for VPC (VPC
NLB) público ou privado, que encaminha as solicitações para o seu aplicativo, é criado automaticamente para você na sua VPC, fora do seu cluster.
Antes de Iniciar
- Certifique-se de ter a função de acesso de serviço Gravador ou Gerenciador do IBM CloudIAM para o espaço de nomes no qual o serviço
LoadBalancerdo Kubernetes é implementado para o NLB de VPC. - Acesse o seu Red Hat OpenShift cluster.
- Para visualizar os VPC NLBs, instale o plug-in
infrastructure-service. O prefixo para a execução de comandos éibmcloud is.ibmcloud plugin install infrastructure-service - Para NLBs de VPC privadas: Conecte-se à sua rede privada VPC, por exemplo, por meio de uma conexão VPN VPC.
- Para NLBs de VPC privadas: Habilite seu aplicativo para receber solicitações de rede privada.
- Crie uma sub-rede da VPC dedicada ao seu NLB da VPC. Essa sub-rede deve existir na mesma VPC e mesma localização do cluster, mas não pode ser conectada
ao cluster ou a nenhum nó do trabalhador. Se você inserir um intervalo de IP específico, não use os intervalos reservados a seguir:
172.16.0.0/16,172.18.0.0/16,172.19.0.0/16e172.20.0.0/16. Depois de provisionar a sub-rede, anote sua ID. - Se o cliente que se conecta ao seu aplicativo por meio do VPC NLB estiver fora da VPC e da zona da sua sub-rede VPC dedicada, você deverá criar uma tabela de roteamento de entrada personalizada. Para obter mais informações, consulte a tabela em Limitações conhecidas e Sobre as rotas e as tabelas de roteamento. Selecione uma das seguintes origens de tráfego para sua tabela de roteamento de entrada personalizada: Para o tráfego de uma rede local, escolha Direct link. Para o tráfego de outra VPC ou da infraestrutura clássica, escolha Transit gateway. Para o tráfego de outra zona dentro da mesma VPC, selecione Zona VPC. Para obter mais informações, consulte Configuração da conectividade VPC VPN.
- Crie uma sub-rede da VPC dedicada ao seu NLB da VPC. Essa sub-rede deve existir na mesma VPC e mesma localização do cluster, mas não pode ser conectada
ao cluster ou a nenhum nó do trabalhador. Se você inserir um intervalo de IP específico, não use os intervalos reservados a seguir:
Configurar o serviço “ LoadBalancer ”
-
Implemente o seu app no cluster. Certifique-se de incluir um rótulo na seção de metadados de seu arquivo de configuração de implementação. Esse rótulo customizado identifica todos os pods nos quais seu app é executado para incluí-los no balanceamento de carga.
-
Crie um arquivo YAML de configuração para o seu serviço
LoadBalancerdo Kubernetes. No arquivo YAML, especifique a anotaçãoservice.kubernetes.io/ibm-load-balancer-cloud-provider-ip-typecomo"public"ou"private". A seçãoannotationsno arquivo de exemplo inclui apenas algumas anotações disponíveis. Para obter uma lista completa das anotações necessárias e opcionais do VPC NLB, consulte Anotações e especificações.Para tornar seu VPC NLB facilmente identificável, considere nomear o serviço no formato
<app_name>-vpc-nlb-<VPC_zone>.apiVersion: v1 kind: Service metadata: name: <app_name>-vpc-nlb-<VPC_zone> annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "my-load-balancer" service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "nlb" service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "public" service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector: "<key>=<value>" service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets: "<subnet1_ID,subnet2_ID>" spec: type: LoadBalancer selector: <selector_key>: <selector_value> ports: - name: http protocol: TCP port: 8080 targetPort: 8080 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. - name: https protocol: TCP port: 443 targetPort: 443 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. externalTrafficPolicy: Local # Specify Local or Cluster. -
Crie o serviço
LoadBalancerdo Kubernetes em seu cluster.oc apply -f <filename>.yaml -n <namespace> -
Verifique se o serviço
LoadBalancerdo Kubernetes foi criado com êxito em seu cluster. Quando o serviço é criado, o campo LoadBalancer Ingress é preenchido com um endereço IP externo designado pelo VPC NBL.
O VPC NLB leva alguns minutos para ser provisionado em sua VPC. O endereço IP externo do seu serviço Kubernetes LoadBalancer pode estar pending até que o VPC NLB esteja totalmente provisionado.
```sh {: pre}
oc describe svc myloadbalancer -n <namespace>
```
Exemplo de saída da CLI para um serviço `LoadBalancer` público:
```sh {: screen}
NAME: myapp-vpc-nlb-us-east
Namespace: default
Labels: <none>
Annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: nlb
Selector: app=echo-server
Type: LoadBalancer
IP: 172.21.204.12
LoadBalancer Ingress: 169.XXX.XXX.XXX
Port: tcp-80 80/TCP
TargetPort: 8080/TCP
NodePort: tcp-80 32022/TCP
Endpoints: 172.17.17.133:8080,172.17.22.68:8080,172.17.34.18:8080 + 3 more...
Session Affinity: None
External Traffic Policy: Local
HealthCheck NodePort: 30882
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning SyncLoadBalancerFailed 13m (x5 over 15m) service-controller Error syncing load balancer: failed to ensure load balancer: kube-bqcssbbd0bsui62odcdg-2d93b07decf641d2ad3f9c2985122ec1 for service default/myvpcnlb is busy: offline/create_pending
Normal EnsuringLoadBalancer 9m27s (x7 over 15m) service-controller Ensuring load balancer
Normal EnsuredLoadBalancer 9m20s service-controller Ensured load balancer
Normal CloudVPCLoadBalancerNormalEvent 8m17s ibm-cloud-provider Event on cloud load balancer myvpcnlb for service default/myvpcnlb with UID 2d93b07d-ecf6-41d2-ad3f-9c2985122ec1: The VPC load balancer that routes requests to this Kubernetes LoadBalancer service is currently online/active.
```
-
Verifique se o VPC NLB é criado com sucesso em sua VPC. Na saída, verifique se o VPC NLB está com o Status operacional como
onlinee o Status de provisão comoactive.ibmcloud is load-balancersNa saída da CLI de exemplo a seguir, o VPC NLB que é denominado
kube-bh077ne10vqpekt0domg-046e0f754d624dca8b287a033d55f96eé criado para o serviço KubernetesLoadBalancer:ID Name Created Host Name Is Public Listeners Operating Status Pools Private IPs Provision Status Public IPs Subnets Resource Group 06496f64-a689-4693-ba23-320959b7b677 kube-bh077ne10vqpekt0domg-046e0f754d624dca8b287a033d55f96e 8 minutes ago 1234abcd-us-south.lb.appdomain.cloud yes 95482dcf-6b9b-4c6a-be54-04d3c46cf017 online 717f2122-5431-403c-b21d-630a12fc3a5a 10.241.0.7 active 169.63.99.184 c6540331-1c1c-40f4-9c35-aa42a98fe0d9 00809211b934565df546a95f86160f62 -
Acesse o endereço IP do serviço
LoadBalancerde Kubernetes localizado na etapa 4 e a porta do app no formato<external_IP>:<app_port>. -
Opcional: repita essas etapas para implementar um VPC NLB público em cada zona na qual você deseja expor seu aplicativo. Em seguida, é possível registrar os endereços IP externos do VPC NLB em cada zona com um subdomínio de DNS.
Não exclua as sub-redes que você anexou ao seu cluster durante a criação do cluster ou ao incluir nós do trabalhador em uma zona. Se você exclui uma sub-rede VPC que seu cluster usou, qualquer VPC NLB que usa endereços IP da sub-rede pode ter problemas e talvez você não consiga criar novos balanceadores de carga.
Configuração de um NLB público usando um intervalo de portas
Os intervalos de portas podem ser usados em NLBs públicas quando há necessidade de hospedar um serviço de um único nome de host que tenha vários aplicativos de backend, cada um escutando em um número de porta separado. Para usar intervalos
de portas em seu cluster Kubernetes, é necessário realizar algumas configurações manuais. Primeiro, a opção ibm-load-balancer-cloud-provider-vpc-port-range deve ser definida. Ele pode incluir um ou vários intervalos, cada um
delimitado por uma vírgula. O valor spec.ports.port também deve ser definido como o valor mínimo no intervalo de portas.
No exemplo a seguir, é usado um intervalo de portas de 30000-30010.
Os serviços Nodeport devem ser criados manualmente para cada implementação na qual o serviço NLB encaminha a solicitação. O número da porta de cada um desses serviços Nodeport deve estar dentro do intervalo de portas configurado no serviço NLB.
No diagrama de exemplo a seguir, um serviço Nodeport com a porta 30000 é criado para o Deployment 1, enquanto um serviço Nodeport com a porta 30001 é criado para o Deployment 2.
O usuário faz uma solicitação à porta 30001 do NLB que contém o intervalo de portas. Essa solicitação é direcionada para o serviço VPC NLB, que a direciona para o serviço Nodeport no cluster que também está escutando na porta 30001, que, nesse caso, é para o Deployment 2. Em seguida, o serviço Nodeport direciona a solicitação para a porta de destino dos pods selecionados do Deployment 2.
Crie um NLB que use um intervalo de portas usando o exemplo a seguir. O seletor e os pods de backend devem ser associados ao serviço de balanceador de carga de intervalo de portas para que as verificações de integridade retornem com êxito e os dados sejam entregues às portas no intervalo de portas. Para usar o intervalo de portas, você deve criar serviços NodePort adicionais que tenham valores de porta no intervalo definido pelo serviço de balanceador de carga.
-
Salve o exemplo de configuração
LoadBalancera seguir como um arquivo chamadoloadbalancer.yaml.apiVersion: v1 kind: Service metadata: annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: nlb service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-port-range: 30000-30010 name: nlb-port-range spec: externalTrafficPolicy: Cluster ports: - port: 30000 # Must match min from the port range protocol: TCP nodePort: 30011 # Can be port in range or not targetPort: 8080 selector: app: echo-server # Must be valid for health checks to work type: LoadBalancer -
Crie o serviço.
oc apply -f loadbalancer.yaml -
Crie um serviço
NodePortcom valores de porta que estejam no intervalo de portas especificado noLoadBalancerque você criou anteriormente.apiVersion: v1 kind: Service metadata: name: echo-server-node-port spec: ports: - port: 80 protocol: TCP # The protocol of the port range nodePort: 30003 # Node port in the port range targetPort: 8080 selector: app: echo-server type: NodePort -
Crie o serviço “ NodePort ”.
oc apply -f nodeport.yaml -
Para acessar uma porta que esteja no intervalo fornecido pelo NLB.
curl https://<public ip assigned to NLB>:3000330003= É uma porta de nó no intervalo que responde à solicitação- Outras portas no intervalo não respondem, a menos que sejam criados serviços adicionais de porta de nó.
Registrando um registro DNS e certificado TLS
Os VPC NLBs fornecem endereços IP externos estáticos por meio dos quais é possível acessar o seu aplicativo. Para registrar um certificado SSL para seu domínio de aplicativo para suportar HTTPS, é possível criar um subdomínio fornecido pela IBM ou trazer seu próprio domínio customizado.
Por exemplo, digamos que você tenha um cluster multizona e execute réplicas do seu aplicativo em nós do trabalhador em cada zona do seu cluster. Você cria um VPC NLB por zona para disponibilizar as réplicas do aplicativo. Em seguida, é possível registrar os endereços IP externos fornecidos por cada VPC NLB com uma entrada DNS.
Depois de criar um subdomínio DNS para NLBs da VPC, não será possível usar comandos nlb-dns health-monitor para criar uma verificação de funcionamento customizada. Em vez disso, a verificação de funcionamento padrão da VPC é usada.
Para obter mais informações, consulte a documentação do VPC.
- Crie um VPC NLB por zona para seu aplicativo. Assegure-se de definir uma porta HTTPS em seu serviço Kubernetes
LoadBalancerque configura o VPC NLB. - Para usar o certificado SSL para acessar seu app via HTTPS, seu app deve ser capaz de finalizar as conexões TLS.
Siga as etapas para registrar os endereços IP do VPC NLB em um subdomínio DNS.
-
Recupere o endereço IP externo de seu balanceador de carga.
oc get svc -o wideExemplo de saída
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR ... myapp-vpc-nlb-jp-tok-3 LoadBalancer 172.21.xxx.xxx 169.xx.xxx.xx 8080:30532/TCP 1d run=webserver -
Crie um subdomínio DNS customizado ou fornecido pela IBM para o endereço IP.
-
Domínio customizado:
- Registre um domínio customizado trabalhando com o seu provedor do Domain Name Service (DNS) ou com o IBM Cloud DNS.
- Defina um alias para o seu domínio customizado especificando os endereços IP do balanceador de carga como registros A.
-
Subdomínio fornecido pela IBM: use comandos
nlb-dnspara gerar um subdomínio com um certificado SSL para os endereços IP. A IBM Cloud cuida de gerar e manter o certificado SSL curinga para o subdomínio.- Crie um subdomínio DNS e um certificado SSL.
ibmcloud oc nlb-dns create vpc-gen2 --type public --cluster CLUSTER_NAME_OR_ID --ip VPC_NLB1_IP --ip VPC_NLB2_IP --ip VPC_NLB3_IP - Verifique se o subdomínio foi criado. Para obter mais informações, consulte Entendendo o formato de subdomínio.
Exemplo de saídaibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_IDSubdomain IP(s) Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud 169.46.xx.x,169.48.xxx.xx,169.48.xxx.xx None created <certificate>
- Crie um subdomínio DNS e um certificado SSL.
-
-
Abra um navegador da web e insira a URL para acessar o seu aplicativo por meio do subdomínio.
Para usar o certificado SSL para acessar seu app via HTTPS, assegure-se de que você tenha definido uma porta HTTPS em seu serviço LoadBalancer do Kubernetes. É possível verificar se as solicitações estão
sendo roteadas corretamente por meio da porta HTTPS executando curl -v --insecure https://<domain>. Um erro de conexão indica que nenhuma porta HTTPS está aberta no serviço. Além disso, assegure-se de que as conexões TLS
possam ser finalizadas por seu app. É possível verificar se o app finaliza correamente o TLS executando curl -v https://<domain>. Um erro de certificado indica que seu app não está finalizando de forma adequada as conexões
TLS.
Anotações e especificações
Analise as anotações e especificações necessárias e opcionais do VPC NLB.
Anotações e especificações necessárias
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "nlb"- Anotação para criar um VPC NLB. Se você não incluir essa anotação e especificar
nlb, um VPC ALB será criado por padrão. service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"- (Obrigatório para NLBs privados) Anotação para especificar um serviço que aceita solicitações privadas. Se essa anotação não for incluída, será criado um VPC NLB público.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets- (Obrigatório para NLBs privados, opcional para NLBs públicos) Anotação para especificar a sub-rede dedicada para a qual o NLB da VPC é implantado. O valor pode ser especificado como um ID de sub-rede de VPC, um nome de sub-rede de VPC ou
um CIDR de sub-rede de VPC. Deve-se especificar somente uma sub-rede. A sub-rede deve existir na mesma VPC do cluster e em uma zona na qual ele tenha nós do trabalhador, mas nenhum nó do trabalhador pode ser anexado a ela. Os nós do trabalhador
que existem na mesma zona dessa sub-rede estão configurados para receber tráfego do NLB de VPC. Para ver sub-redes em todos os grupos de recursos, execute
ibmcloud oc subnets --provider vpc-gen2 --vpc-id VPC_ID --zone ZONE. externalTrafficPolicy- Especifique
LocalouCluster. - Configure como
Localpara preservar o endereço IP de origem das solicitações do cliente para seus apps. Essa configuração impede que o tráfego de entrada seja encaminhado para um nó diferente. Esta opção também configura verificações de funcionamento de HTTP. - Se
Clusterestiver configurado, o DSR será implementado apenas no nó do trabalhador para o qual o VPC NLB encaminha inicialmente a solicitação recebida. Após a chegada da solicitação de entrada, ela é encaminhada para um nó de trabalho que contém o pod do aplicativo, que pode estar em uma zona diferente. A resposta do pod do app é enviada ao nó do trabalhador original, e esse nó do trabalhador usa DSR para enviar a resposta diretamente de volta ao cliente, ignorando o VPC NLB. Esta opção também configura verificações de funcionamento do TCP. Para os balanceadores de carga do UDP, oservice.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-udpé obrigatório caso você escolha a opçãoCluster. Para obter mais informações, consulte “Configurando verificações de integridade d TCP ” para “balanceadores de carga UDP ”.
Anotações e especificações opcionais
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name- Inclua um nome exclusivo para tornar seu balanceador de carga VPC persistente. Os balanceadores de carga VPC persistentes não são excluídos quando o cluster ao qual pertencem é excluído. Para obter mais informações, consulte Balanceadores de carga VPC persistentes. Essa anotação pode ser definida somente na criação do balanceador de carga. Ele não pode ser usado em uma operação de atualização.
service.kubernetes.io/ibm-load-balancer-cloud-provider-zone- Anotação para especificar uma zona da VPC à qual seu cluster está anexado. O VPC NLB é implementado para a mesma sub-rede na zona que seus nós do trabalhador estão conectados. Se depois você mudar essa anotação para uma zona diferente, o
NLB da VPC não será deslocado para a nova zona. Se você não especificar essa anotação ou o endereço
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets annotation, o VPC NLB será implantado na zona mais ideal (por exemplo, uma zona que tenha nós de trabalho no estadoReady). Se o rótulo “dedicated: edge” estiver definido nos nós de trabalho e você especificar essa anotação, apenas os nós de borda na zona especificada serão configurados para receber tráfego. Nós de borda em outras zonas e nós não de borda na zona especificada não recebem tráfego do balanceador de carga. Para ver as zonas, executeibmcloud ks zone ls --provider vpc-gen2. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector- Anotação para especificar um seletor de rótulo de nó de trabalho. Você pode configurar nós de trabalho específicos em seu cluster para receber tráfego especificando chaves seletoras de rótulo. É possível incluir apenas um seletor de rótulo
na anotação, e esse seletor deve ser especificado no formato
"key=value". Se essa anotação não for especificada, todos os nós de trabalho do seu cluster serão configurados para receber tráfego do VPC NLB. Essa anotação tem precedência sobre a anotaçãoservice.kubernetes.io/ibm-load-balancer-cloud-provider-zone, e quaisquer rótulosdedicated: edgenos nós de trabalho são ignorados. Para limitar o tráfego a uma zona específica, você pode usar essa anotação para especificar os nós de trabalho nessa zona. Observe que a definição de um novo rótulo em um nó de trabalho do cluster não configura automaticamente o nó de trabalho para receber tráfego; é necessário recriar ou atualizar o VPC NLB para que o nó de trabalho recém-rotulado receba tráfego. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-udp- A porta do nó “ TCP ” a ser utilizada para as verificações de integridade do “ TCP ” em um balanceador de carga “ UDP ”. Necessário para balanceadores de carga UDP que têm
externalTrafficPolicyconfigurado comoCluster. Consulte Configurando verificações de funcionamento TCP para balanceadores de carga UDP para obter mais considerações antes de definir um valor de porta. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-protocol- Essa anotação define o protocolo de verificação de integridade no recurso de balanceador de carga VPC associado ao serviço de balanceador de carga Kubernetes. As opções disponíveis são
http,https, outcp. Normalmente, o protocolo de verificação de integridade do VPC LB é determinado pelo valor da configuraçãoexternalTrafficPolicyna especificação de serviço do balanceador de carga Kubernetes. No entanto, essa anotação substitui essa lógica. Essa anotação não altera o comportamento de Kubernetes, e do kube-proxy em particular, em relação às várias configurações deexternalTrafficPolicy. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-port- A porta do serviço “ TCP ” utilizada para as verificações de integridade. Essa anotação se aplica somente se
ibm-load-balancer-cloud-provider-vpc-health-check-protocoltambém for especificado. Se a porta TCP especificada estiver fora do intervalo de portas dos nós Kubernetes (30.000–32.767), o grupo de segurança da VPC aplicado aos nós de trabalho do cluster deverá ser modificado para permitir o tráfego de entrada nessa porta. Se essa anotação for aplicada a um serviço de balanceador de carga do Kubernetes associado a um VPC ALB, as regras de saída do grupo de segurança atribuído ao VPC ALB deverão ser modificadas para permitir o tráfego de saída para a porta TCP especificada. Para obter mais informações, consulte Noções básicas sobre redes de VPC de cluster seguras por padrão e Criação e gerenciamento de grupos de segurança de VPC. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-path- A verificação de integridade URL caminho para verificações de integridade de HTTP e HTTPs. Essa anotação se aplica somente se
ibm-load-balancer-cloud-provider-vpc-health-check-protocolestiver definido comohttpouhttps. O caminho URL deve estar no formato de um destino de solicitação de formato de origem. Se essa anotação não for especificada e a anotaçãoibm-load-balancer-cloud-provider-vpc-health-check-protocolfor definida comohttpouhttps, o valor padrão/será aplicado. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-delay- Opcional. O número de segundos de espera entre as tentativas de verificação de integridade. Por padrão, esse valor é definido como
5, e tem um mínimo de2e um máximo de60. Esse valor deve ser maior que o valoribm-load-balancer-cloud-provider-vpc-health-check-timeout, que é definido como2por padrão. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-timeout- Opcional. O número de segundos para aguardar uma resposta a uma verificação de integridade. Por padrão, esse valor é definido como
2, e tem um mínimo de1e um máximo de59. Esse valor deve ser menor queibm-load-balancer-cloud-provider-vpc-health-check-delay, que é definido como5por padrão. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-retries- O número máximo de novas tentativas de verificação de integridade para o balanceador de carga VPC. Por padrão, esse valor é definido como
2, e tem um mínimo de1e um máximo de10. service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name: "example-ingress-domain.<region>.containers.appdomain.cloud"- Versão 4.16 ou posterior.
- Registre o endereço IP do balanceador de carga com o domínio Ingress especificado. Se o domínio especificado não existir, será criado um domínio que usa o provedor interno gerenciado
pelo IBM (
IBM NS1). Para criar um novo domínio, o nome deve ser exclusivo em todos os domínios existentes (não apenas naqueles em seu cluster). A exclusão do serviço de balanceador de carga remove o endereço IP do domínio. No entanto, a remoção da anotação não remove o endereço IP do domínio. service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-member-quota- Opcional. O número de nós de trabalho por zona para os quais o balanceador de carga roteia. O valor padrão é 8. Para um cluster com nós de trabalho em três zonas, isso faz com que o balanceador de carga encaminhe o tráfego para um total de 24 nós de trabalho. O número total de nós de trabalho em todas as zonas para as quais o balanceador de carga roteia não pode exceder 50. Se o cluster tiver menos de 50 nós de trabalho em todas as zonas, especifique 0 para rotear para todos os nós de trabalho em uma zona.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-security-group- Versão 1.30 e e posteriores.
- Opcional. Um grupo de segurança gerenciado pelo cliente a ser adicionado ao balanceador de carga VPC. Se não quiser usar o grupo de segurança IBM-managed, especifique um grupo de segurança que você possui e gerencia. Essa opção remove o grupo de segurança IBM-managed e o substitui pelo grupo de segurança que você especificar. A remoção da anotação de um balanceador de carga existente substitui o grupo de segurança que você adicionou pelo grupo de segurança IBM-managed. Você pode adicionar ou remover essa anotação a qualquer momento. Você é responsável por gerenciar seu grupo de segurança e mantê-lo atualizado.
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-allow-outbound-traffic- Disponível para clusters que executam o Secure by Default. Anotação para criar grupos de segurança para cada endereço IP de um ALB associado a uma porta externa que
você especificar. Essas regras são criadas no grupo de segurança do cluster. Especifique as portas externas válidas em uma lista separada por vírgulas, como
80,443. Neste exemplo, se cada ALB público associado a cada valor de porta externa tiver dois endereços IP, será criada uma regra de saída por endereço IP, em um total de 4 novas regras. Você pode adicionar ou remover essa anotação a qualquer momento. selector- A chave de rótulo (
<selector_key>) e o valor (<selector_value>) usados na seçãospec.template.metadata.labelsdo YAML de implementação do app. Esse rótulo customizado identifica todos os pods nos quais seu app é executado para incluí-los no balanceamento de carga. port- A porta na qual o serviço atende.
targetPort- Opcional: a porta para a qual o serviço direciona o tráfego. O aplicativo em execução no pod deve estar à escuta para tráfego de entrada do tipo TCP nessa porta de destino. A porta de destino geralmente é definida estaticamente na imagem que está sendo executada no pod do aplicativo. A porta de destino configurada no pod é diferente da porta do nó para o serviço e também pode ser diferente da porta externa que está configurada no VPC LB.