Criação de ingresses de Nginx no console
Pré-requisitos
- Um ingresso fornece acesso à rede para cargas de trabalho de back-end. Certifique-se de que uma carga de trabalho esteja disponível em um cluster. Se nenhuma carga de trabalho estiver disponível, implemente uma carga de trabalho referindo-se a Criação de uma Implantação, Criação de um StatefulSet ou Criação de um DaemonSet.
- Um Serviço ClusterIP ou NodePort foi configurado para a carga de trabalho. Para obter detalhes sobre como configurar o Serviço, consulte ClusterIP ou NodePort.
- Para adicionar um Nginx ingress, verifique se o complemento nginx-ingress foi instalado no cluster. Para mais detalhes, consulte Instalar o complemento.
Precauções
- Não é recomendável modificar nenhuma configuração de um balanceador de carga no console do ELB. Caso contrário, o Serviço será anormal. Se você modificou a configuração, desinstale o complemento nginx-ingress e reinstale-o.
- O URL registrado em uma política de encaminhamento de entrada deve ser o mesmo que o URL usado para acessar o Serviço de back-end. Caso contrário, um erro 404 será retornado.
- O balanceador de carga selecionado ou criado deve estar na mesma VPC que o cluster atual e deve corresponder ao tipo de balanceador de carga (rede privada ou pública).
- O balanceador de carga tem pelo menos dois ouvintes, e as portas 80 e 443 não são ocupadas por ouvintes.
Criar um Nginx ingress
Esta seção usa uma carga de trabalho de Nginx como um exemplo para descrever como criar um Nginx ingress.
- Efetue logon no console do CCE e acesse o console do cluster.
- Escolha Networking no painel de navegação, clique a guia Ingresses e clique em Create Ingress no canto direito superior.
- Configure parâmetros de ingress.
- Name: especifique um nome de um ingress, por exemplo, nginx-ingress-demo.
- Namespace: selecione o namespace ao qual o ingress será adicionado.
- nginx-ingress: essa opção é exibida somente quando o complemento Nginx Ingress controller foi instalado no cluster.
Depois que você liga , o nginx-ingress é interconectado para fornecer o acesso da camada-7. Você pode configurar os seguintes parâmetros:
TLS: nginx-ingress suporta HTTP e HTTPS. A porta de escuta padrão reservada durante a instalação do nginx-ingress é 80 para solicitações HTTP e 443 para solicitações HTTPS. Para usar HTTPS, configure o certificado do servidor.
- Server Certificate: ao criar um ouvinte HTTPS, vincule um certificado TLS para oferecer suporte à autenticação criptografada para transmissão de dados HTTPS. Para obter detalhes sobre como criar um segredo, consulte Criação de um segredo.
- SNI: o Server Name Indication (SNI) é um protocolo estendido do TLS. Ele permite que vários nomes de domínio de acesso baseados em TLS sejam fornecidos para sistemas externos usando o mesmo endereço IP e porta. Nomes de domínio diferentes podem usar certificados de segurança diferentes. Depois que o SNI é habilitado, o cliente tem permissão para enviar o nome de domínio solicitado ao iniciar uma solicitação de handshake TLS. Depois de receber a solicitação TLS, o balanceador de carga procura o certificado com base no nome de domínio na solicitação. Se o certificado correspondente ao nome de domínio for encontrado, o balanceador de carga retornará o certificado para autorização. Caso contrário, o certificado padrão (certificado de servidor) é retornado para autorização.
- Forwarding Policy: quando o endereço de acesso de uma solicitação corresponde à política de encaminhamento (uma política de encaminhamento consiste em um nome de domínio e URL) a solicitação é encaminhada ao Serviço de destino correspondente para processamento. Clique em Add Forwarding Policies para adicionar várias políticas de encaminhamento.
- Domain Name: nome de domínio atual. Certifique-se de que o nome de domínio inserido tenha sido registrado e arquivado. Depois que o ingress for criado, vincule o nome de domínio ao endereço IP do balanceador de carga criado automaticamente (endereço IP do endereço de acesso de ingress). Se uma regra de nome de domínio estiver configurada, o nome de domínio deve sempre ser usado para acesso.
- Regra de correspondência de URL
- Default: a correspondência de prefixo é usada por padrão.
- Prefix match: se o URL estiver definido como /healthz, o URL que atende ao prefixo poderá ser acessado, por exemplo, /healthz/v1 e /healthz/v2.
- Exact match: o URL pode ser acessado somente quando é totalmente correspondido. Por exemplo, se o URL estiver definido como /healthz, apenas /healthz poderá ser acessado.
- URL: caminho de acesso a ser registrado, por exemplo, /healthz.
- A regra de correspondência do caminho de acesso de Nginx ingress é baseada no prefixo do caminho separado pela barra (/) e diferencia maiúsculas de minúsculas. Se o subcaminho separado por uma barra (/) corresponder ao prefixo, o acesso será normal. No entanto, se o prefixo for apenas uma parte da cadeia de caracteres no subcaminho, o acesso não será correspondido. Por exemplo, se o URL estiver definido como /healthz, /healthz/v1 será correspondido, mas /healthzv1 não será correspondido.
- O caminho de acesso adicionado aqui deve existir na aplicação back-end. Caso contrário, o encaminhamento falha.
Por exemplo, o URL de acesso padrão da aplicação Nginx é /usr/share/nginx/html. Ao adicionar /test à política de encaminhamento de ingress, certifique-se de que o URL de acesso da seu aplicação Nginx contenha /usr/share/nginx/html/test. Caso contrário, o erro 404 será retornado.
- Destination Service: selecione um Serviço existente ou crie um Serviço. Os Serviços que não atendem aos critérios de pesquisa são automaticamente filtrados.
- Destination Service Port: selecione a porta de acesso do Serviço de destino.
- Operation: clique em Delete para excluir a configuração.
- Annotation: o valor está no formato de chave:valor. Você pode usar anotações para consultar as configurações suportadas pelo nginx-ingress.
- Após a conclusão da configuração, clique em OK.
Depois que o ingress é criado, ele é exibido na lista de ingresses.