Configurando o Controlador de Entrada Nativo do OCI em um Cluster do Kubernetes
Descubra como configurar o controlador de entrada nativo do OCI para implementar as regras e as opções de configuração definidas em um recurso de entrada do Kubernetes para balancear a carga e rotear o tráfego de entrada para pods de serviço em execução nos nós de trabalho de um cluster.
O controlador de entrada nativo do OCI implementa as regras e as opções de configuração definidas em um recurso de entrada do Kubernetes para balancear a carga e rotear o tráfego de entrada para pods de serviço em execução nos nós de trabalho de um cluster. O controlador de entrada nativo do OCI cria um balanceador de carga flexível do OCI para tratar solicitações e configura o balanceador de carga do OCI para rotear solicitações de acordo com as regras definidas no recurso de entrada. Se houver alterações nas regras de roteamento ou em outros recursos de suporte, o controlador de entrada nativo do OCI atualizará a configuração do balanceador de carga de acordo. O controlador de entrada nativo do OCI é executado como um único pod, em um nó de trabalho selecionado aleatoriamente no cluster.
O controlador de entrada nativo do OCI cria recursos do balanceador de carga do OCI da seguinte forma:
- Um balanceador de carga para cada recurso
IngressClass
no qual você especificou o controlador de entrada nativo do OCI como controlador. - Um conjunto de backend do balanceador de carga para cada combinação exclusiva de nome de serviço e número de porta do Kubernetes que você inclui nas regras de roteamento nos recursos
Ingress
do cluster. - Um listener do balanceador de carga para cada porta exclusiva que você inclui nas regras de roteamento nos recursos
Ingress
do cluster. O controlador de entrada nativo do OCI determina o protocolo (HTTP, HTTPS, HTTP/2) para cada listener com base na configuração do backend de entrada.
O controlador de entrada nativo do OCI adiciona como backends a um conjunto de backend os pods que servem como pontos finais para o respectivo nome e porta do serviço Kubernetes ou os nós de trabalho nos quais esses pods podem ser executados, dependendo do plug-in CNI que o cluster usa para rede de pods:
- Se o cluster usar o plug-in CNI da Rede Nativa do Pod da VCN do OCI para a rede de pods, o controlador de entrada nativo do OCI adicionará os pods como backends.
- Se o cluster usar o plug-in CNI flannel para rede de pods, o controlador de entrada nativo do OCI adicionará os nós de trabalho como backends. Nesse caso, o controlador de entrada nativo do OCI usa a definição
externalTrafficPolicy
no manifesto do serviço para determinar quais nós de trabalho adicionar ao conjunto de backend, da seguinte forma:- Se
externalTrafficPolicy: Cluster
, o controlador de entrada nativo do OCI adicionará ao conjunto de backend todos os nós de trabalho no cluster. - Se
externalTrafficPolicy: Local
, o controlador de entrada nativo do OCI adicionará ao conjunto de backend somente os nós de trabalho nos quais os pods do serviço foram implantados.
- Se
O controlador de entrada nativo do OCI cria recursos do balanceador de carga do OCI sujeitos aos limites normais do serviço Load Balancer em relação ao número total de endereços IP, conjuntos de backend, listeners e servidores de backend. Para obter mais informações, consulte Limites de Recursos de Balanceamento de Carga.
Você pode implantar o controlador de entrada nativo do OCI em um cluster do Kubernetes de uma ou outra das seguintes maneiras:
- como um programa independente (consulte Como Trabalhar com o Controlador de Entrada Nativo do OCI como um Programa Independente)
- como um complemento de cluster (consulte Trabalhando com o Controlador de Entrada Nativo do OCI como um Complemento de Cluster)
Ao usar o controlador de entrada nativo do OCI para balancear a carga e rotear o tráfego de entrada, observe o seguinte:
- Se você instalar o controlador de entrada nativo do OCI como um programa independente, o cluster deverá estar executando o Kubernetes versão 1.26 ou posterior. Se você instalar o controlador de entrada nativo do OCI como um complemento de cluster, o cluster deverá estar executando o Kubernetes versão 1.28 ou posterior.
- O cluster deve ter regras de segurança de sub-rede do balanceador de carga configuradas.
- O cluster pode estar usando o plug-in CNI da Rede de Pod Nativa da VCN do OCI ou o plug-in CNI da flannel para a rede de pods. Observe que, se o cluster usar o plug-in flannel CNI para rede de pods, o controlador de entrada nativo do OCI só suportará serviços de backend de
type: NodePort
, conforme especificado no manifesto do serviço. - O uso de controladores de instância para permitir que o controlador de entrada nativo do OCI acesse serviços e recursos do OCI não é suportado em clusters com nós virtuais.
- Você pode especificar controladores de identidade de carga de trabalho com clusters aprimorados, mas não com clusters básicos.
- Se o controlador de entrada nativo do OCI já tiver sido implantado em um cluster como um programa independente, não implante também o complemento do cluster do controlador de entrada nativo do OCI no cluster.