Как API7 Enterprise Proxy применяется в Kubernetes-кластерах?

January 24, 2024

Products

В динамичную эпоху облачных технологий Kubernetes стал основным решением для многих предприятий, стремящихся создавать устойчивые и масштабируемые приложения. API7 Enterprise предлагает мощные возможности в области безопасности и управления трафиком, а также выдающуюся производительность. API7 Enterprise интегрируется с Kubernetes Service Discovery, выступая в качестве прокси для приложений, развернутых в кластере Kubernetes. Давайте рассмотрим процесс использования API7 Enterprise для проксирования приложений в вашем кластере Kubernetes.

Предварительные требования

  1. Установите API7 Enterprise

Примечание: Если API7 Enterprise еще не развернут в кластерах Kubernetes, настройте сетевые параметры машины, на которой размещен API7 EE, чтобы обеспечить доступность вышестоящих подов в среде Kubernetes.

  1. Разверните сервисы в Kubernetes

Если вы уже развернули сервисы в Kubernetes, вы можете пропустить этот шаг. В противном случае выполните следующую команду для создания сервисов:

# создайте новое пространство имен 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. Создайте учетную запись службы Kubernetes
  • API7 Enterprise использует эти учетные данные для доступа к API Kubernetes и получения конфигураций вышестоящих сервисов. Следовательно, сначала нам нужно создать ресурс RBAC. Ниже приведена конкретная конфигурация файла 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
  • Создайте ресурсы RBAC и получите этот токен.

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

Реализация Kubernetes Service Discovery в API7 Enterprise

Подключение к реестру служб Kubernetes

  1. Перейдите в существующую группу шлюзов и откройте Service Registry через левое меню.

  2. Нажмите кнопку Add Service Registry Connection. Выберите Kubernetes в качестве типа обнаружения и укажите адрес доступа к службе API Kubernetes и токен.

PA_1

  1. После успешного подключения API7 Enterprise к реестру служб вы увидите статус "healthy".

PA_2

Публикация сервиса для тестирования

  1. Перейдите на страницу сервиса, нажмите для создания нового сервиса и добавьте маршрут /anything.

  2. Опубликуйте сервис и выберите соответствующий вышестоящий сервис:

PA_3

  1. После публикации вы можете протестировать его с помощью curl.

Заключение

В заключение мы рассмотрели шаги по использованию API7 Enterprise для проксирования сервисов Kubernetes. Для получения дополнительной информации о функциях API7 Enterprise, пожалуйста, не стесняйтесь связаться с нами.

Tags: