Como o API7 Enterprise Proxy Aplica-se em Clusters Kubernetes?
January 24, 2024
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
- 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.
- 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
- 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 arquivoYAML
:# 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
-
Vá para um grupo de gateway existente e acesse o Service Registry através do menu à esquerda.
-
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.
- 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.
Publicando o Serviço para Testes
-
Navegue até a página de serviços, clique para criar um novo serviço e adicione a rota
/anything
. -
Prossiga para publicar o serviço e escolha o upstream apropriado:
- 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.