API7 Enterprise Proxy 在 Kubernetes 集群中的应用方式

January 24, 2024

Products

クラウドネイティブ技術が急速に進化する中、Kubernetesは、多くの企業がレジリエントでスケーラブルなアプリケーションを構築するための主要なソリューションとして登場しています。API7 Enterpriseは、セキュリティとトラフィック管理において強力な機能を提供し、優れたパフォーマンスを発揮します。API7 EnterpriseはKubernetesのサービスディスカバリと統合し、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は、Kubernetes APIにアクセスし、アップストリーム設定を取得するためにこの認証情報を利用します。そのため、まず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

API7 EnterpriseでのKubernetesサービスディスカバリの実装

Kubernetesサービスレジストリへの接続

  1. 既存のゲートウェイグループに移動し、左側のメニューからサービスレジストリにアクセスします。

  2. サービスレジストリ接続を追加ボタンをクリックします。ディスカバリタイプとしてKubernetesを選択し、Kubernetes APIサービスのアクセスアドレスとトークンを提供します。

PA_1

  1. API7 Enterpriseがサービスレジストリへの接続に成功すると、正常なステータスが表示されます。

PA_2

テスト用サービスの公開

  1. サービスページに移動し、新しいサービスを作成して/anythingルートを追加します。

  2. サービスを公開し、適切なアップストリームを選択します。

PA_3

  1. 公開後、curlを使用してテストできます。

まとめ

以上、API7 Enterpriseを利用してKubernetesサービスをプロキシする手順について説明しました。API7 Enterpriseの機能についてさらに詳しく知りたい場合は、ぜひお問い合わせください

Tags: