Как API7 Enterprise Proxy применяется в Kubernetes-кластерах?
January 24, 2024
В динамичную эпоху облачных технологий Kubernetes стал основным решением для многих предприятий, стремящихся создавать устойчивые и масштабируемые приложения. API7 Enterprise предлагает мощные возможности в области безопасности и управления трафиком, а также выдающуюся производительность. API7 Enterprise интегрируется с Kubernetes Service Discovery, выступая в качестве прокси для приложений, развернутых в кластере Kubernetes. Давайте рассмотрим процесс использования API7 Enterprise для проксирования приложений в вашем кластере Kubernetes.
Предварительные требования
- Установите API7 Enterprise
Примечание: Если API7 Enterprise еще не развернут в кластерах Kubernetes, настройте сетевые параметры машины, на которой размещен API7 EE, чтобы обеспечить доступность вышестоящих подов в среде Kubernetes.
- Разверните сервисы в 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
- Создайте учетную запись службы 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
-
Перейдите в существующую группу шлюзов и откройте Service Registry через левое меню.
-
Нажмите кнопку Add Service Registry Connection. Выберите Kubernetes в качестве типа обнаружения и укажите адрес доступа к службе API Kubernetes и токен.

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

Публикация сервиса для тестирования
-
Перейдите на страницу сервиса, нажмите для создания нового сервиса и добавьте маршрут
/anything. -
Опубликуйте сервис и выберите соответствующий вышестоящий сервис:

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