使用 API7 企业版代理 Kubernetes 集群中的应用

更新时间 1/24/2024

在当今快速演进的云原生时代,Kubernetes 已经成为许多企业构建弹性且可扩展应用的首选解决方案。API7 企业版 提供了强大的安全性和流量管理的能力,并且具备极高的性能。API7 企业版支持您一键连接到 Kubernetes 服务注册中心,代理您在 Kubernetes 集群中部署的服务,下面我们来介绍如何使用 API7 企业版代理 Kubernetes 集群中的应用。

前置准备

  1. 安装 API7 企业版

注意:如果 API7 企业版没有在 Kubernetes 中部署,需要配置部署 API7 企业版机器的网络配置,确保 API7 企业版可以访问到 Kubernetes 中的上游 pod。

  1. 在 Kubernetes 中部署服务

如果你已经在 Kubernetes 中部署了一些服务,那么你可以忽略此步骤;如果没有,你可以运行下面的命令创建服务:

1# 创建一个新的 namespace
2kubectl create namespace api7ee
3
4kubectl create deployment httpbin --image=kennethreitz/httpbin:latest -n api7ee
5kubectl create service clusterip httpbin --tcp=80:80 -n api7ee
  1. 创建 Kubernetes 服务账户
  • API7 企业版需要此凭证去请求 Kubernetes 的 API 获取上游配置,所以我们需要创建一个 rbac 的资源,yaml 文件如下:

    1  # rbac.yaml
    2  apiVersion: rbac.authorization.k8s.io/v1
    3  kind: ClusterRole
    4  metadata:
    5    name: api7-k8s-sd-watcher
    6  rules:
    7    - apiGroups: [""]
    8      resources: ["endpoints"]
    9      verbs: ["list", "watch"]
    10  ---
    11  apiVersion: rbac.authorization.k8s.io/v1
    12  kind: ClusterRoleBinding
    13  metadata:
    14    name: api7-k8s-sd-watcher-binding
    15  subjects:
    16    - kind: ServiceAccount
    17      name: api7-k8s-sd-sa
    18      namespace: api7ee
    19  roleRef:
    20    kind: ClusterRole
    21    name: api7-k8s-sd-watcher
    22    apiGroup: rbac.authorization.k8s.io
    23  ---
    24  apiVersion: v1
    25  kind: ServiceAccount
    26  metadata:
    27    name: api7-k8s-sd-sa
    28    namespace: api7ee
    29  ---
    30  apiVersion: v1
    31  kind: Secret
    32  metadata:
    33    name: api7-k8s-sd-secret
    34    namespace: api7ee
    35    annotations:
    36      kubernetes.io/service-account.name: api7-k8s-sd-sa
    37  type: kubernetes.io/service-account-token
    38
    
  • 创建 RBAC 资源并获取 Token。

    1kubectl apply -f rbac.yaml -n api7ee
    2kubectl 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 企业版连接服务注册中心成功后,可以看到健康的状态。

PA_2

发布服务进行测试

  1. 点击进入到服务页面,创建服务并添加 /anything 路由;

  2. 发布服务,并选择对应的上游:

PA_3

  1. 发布成功后,使用 curl 直接进行测试即可。

结论

以上就是使用 API7 企业级网关代理 Kubernetes 集群中服务的步骤,如果你想了解更多有关 API7 企业版网关的功能,欢迎联系我们

微信咨询

获取方案