Como o API7 Enterprise Proxy Aplica-se em Clusters Kubernetes?

January 24, 2024

Products

Na era dinâmica das tecnologias nativas da nuvem, o Kubernetes emergiu como a solução preferida para muitas empresas que buscam construir aplicações resilientes e escaláveis. O API7 Enterprise oferece capacidades poderosas em segurança e gerenciamento de tráfego, aliadas a um desempenho excepcional. O API7 Enterprise integra-se ao Kubernetes Service Discovery, atuando como um proxy para aplicações implantadas dentro de um cluster Kubernetes. Vamos explorar o processo de utilização do API7 Enterprise para fazer o proxy de aplicações no seu cluster Kubernetes.

Pré-requisitos

  1. Instale o API7 Enterprise

Nota: Se o API7 Enterprise ainda não estiver implantado dentro de clusters Kubernetes, configure as configurações de rede da máquina que hospeda o API7 EE para garantir a acessibilidade aos pods upstream no ambiente Kubernetes.

  1. Implante Serviços no Kubernetes

Se você já implantou serviços no Kubernetes, pode pular esta etapa. Caso contrário, execute o seguinte comando para criar serviços:

# crie um novo namespace kubectl create namespace api7ee kubectl create deployment httpbin --image=kennethreitz/httpbin:latest -n api7ee kubectl create service clusterip httpbin --tcp=80:80 -n api7ee
  1. Crie uma Conta de Serviço do Kubernetes
  • O API7 Enterprise depende dessa credencial para acessar a API do Kubernetes e buscar configurações upstream. Consequentemente, precisamos criar um recurso RBAC primeiro. A seguir está a configuração específica do arquivo YAML:

    # rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: api7-k8s-sd-watcher rules: - apiGroups: [""] resources: ["endpoints"] verbs: ["list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: api7-k8s-sd-watcher-binding subjects: - kind: ServiceAccount name: api7-k8s-sd-sa namespace: api7ee roleRef: kind: ClusterRole name: api7-k8s-sd-watcher apiGroup: rbac.authorization.k8s.io --- apiVersion: v1 kind: ServiceAccount metadata: name: api7-k8s-sd-sa namespace: api7ee --- apiVersion: v1 kind: Secret metadata: name: api7-k8s-sd-secret namespace: api7ee annotations: kubernetes.io/service-account.name: api7-k8s-sd-sa type: kubernetes.io/service-account-token
  • Crie os recursos RBAC e obtenha este token.

    kubectl apply -f rbac.yaml -n api7ee kubectl get secrets api7-k8s-sd-secret -n api7ee -ojsonpath='{.data.token}' | base64 -d

Implementação do Kubernetes Service Discovery no API7 Enterprise

Conectando ao Registro de Serviço do Kubernetes

  1. Vá para um grupo de gateway existente e acesse o Service Registry através do menu à esquerda.

  2. Clique no botão Add Service Registry Connection. Selecione Kubernetes como o tipo de descoberta e forneça o endereço de acesso ao serviço da API do Kubernetes e o token.

PA_1

  1. Uma vez que o API7 Enterprise estabeleça uma conexão bem-sucedida com o registro de serviço, você verá um status saudável.

PA_2

Publicando o Serviço para Testes

  1. Navegue até a página de serviços, clique para criar um novo serviço e adicione a rota /anything.

  2. Prossiga para publicar o serviço e escolha o upstream apropriado:

PA_3

  1. Após a publicação, você pode testá-lo usando curl.

Resumo

Em conclusão, discutimos os passos para aproveitar o API7 Enterprise para fazer o proxy de serviços Kubernetes. Para mais informações sobre os recursos do API7 Enterprise, não hesite em entrar em contato conosco.

Tags: