Kubernetes 集成的前提条件

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

本主题介绍了在 Kubernetes 集群中将 Edge Microgateway 安装为服务之前必须完成的步骤。

本主题将介绍:

  • Kubernetes 集群的最低要求。
  • 如何安装和配置 Edge Microgateway。
  • 如何将 Edge Microgateway 的基本配置安装到 Kubernetes 集群中。

Kubernetes 集群的要求

您的 Kubernetes 集群需要满足以下条件:

  • Kubernetes 1.9 或更高版本。
  • Kubernetes CLI kubectl v1.9 或更高版本。
  • 一个至少包含 3 个节点的集群,每个节点有 2 个 vCPU。

示例:在 Google Kubernetes Engine (GKE) 上创建 Kubernetes 集群

设置 Kubernetes 管理机器

Kubernetes 管理机器是用于针对 Kubernetes 集群运行命令的本地机器。此机器通常是有权访问您的 Kubernetes 虚拟机的桌面机器。

您必须在 Kubernetes 管理机器上安装以下实用程序:

  • 安装 kubectl 命令行界面 1.9 或更高版本。

  • (仅限 GKE)如果您在 GKE 上运行 Kubernetes,请安装 gcloud

在 GKE 上创建 Kubernetes 集群

  1. 登录 Google Cloud Platform (GCP) 上的 Google Kubernetes Engine (GKE) 信息中心。
  2. 点击创建集群
  3. 选择标准集群
  4. 输入集群的名称。
  5. 选择可用区。
  6. 选择 Cluster Version 1.9.7-gke-*。例如 1.9.7-gke.6
  7. 选择 3 个节点的大小。
  8. 选择 2 个 vCPU 和 7.5 GB 内存。
  9. 点击创建

    以下屏幕截图显示了按照前面步骤填充的 GKE 信息中心:

    GKE 信息中心

获取集群凭据

  1. 设置 GKE 项目名称:

    gcloud config set project projectName
  2. 设置 GKE 项目可用区:

    gcloud config set compute/zone zoneName
  3. 获取 gcloud 容器凭据

    gcloud container clusters get-credentials cluster-name --zone zone --project project-name

    其中:

    • cluster-name 是您创建的 Kubernetes 集群的名称。
    • zone 是集群所在的区域。
    • project-name 是您的 GCP 项目名称。

    例如:

    gcloud container clusters get-credentials edgemicrogateway-cluster --zone us-central1-a --project edgemicro-project
  4. 严格按照如下所示执行以下命令。该命令会向当前用户授予集群管理员权限。您需要拥有管理员权限,才能为 Edge Microgateway 服务创建必要的 RBAC 规则:

    kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
    

安装适用于 Kubernetes 的 Edge Microgateway

  1. 下载适用于 Kubernetes 的 Edge Microgateway。如果您使用的是 MacOS 或 Linux 计算机,可以通过指定版本名称下载最新版本或特定版本。

    如需获取最新版本,请执行以下操作:

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -

    按版本号获取特定版本。请注意,版本号必须带有字母“v”作为前缀。例如:v3.0.2

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -s  version

    例如:

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -s v3.0.2
  2. 将目录切换到安装目录 microgateway_Version_OS_ARCH。例如:

    cd microgateway_2.5.26_Darwin_x86_64
  3. 检查安装目录:

    • /install/kubernetes - 要部署到 Kubernetes 的配置 .yaml 文件。
    • /samples - 用于测试安装情况的示例应用。
    • /bin - edgemicroctl 可执行文件。edgemicroctl 命令会将 Edge Microgateway 注入 Kubernetes
  4. edgemicroctl 客户端添加到您的 PATH 中。例如,在 MacOS 或 Linux 系统上运行以下命令:

    export PATH=$PWD/bin:$PATH
  5. 将基本 Edge Microgateway 设置应用于 Kubernetes 集群。以下命令会创建 edgemicro-system 命名空间和集群角色。

    kubectl apply -f install/kubernetes/edgemicro.yaml
  6. 将 NGINX Ingress 控制器安装到集群中。确保没有其他 Nginix 控制器正在运行。您可以通过运行 kubectl get pods 进行检查。

    kubectl apply -f install/kubernetes/edgemicro-nginx-gke.yaml

验证安装

  1. 如需检查 Ingress 控制器是否已启动,请运行以下命令:

    kubectl get pods --all-namespaces -l app=edgemicro-ingress --watch

    如以下示例输出所示,这些进程需要一两分钟才能启动。在 STATUS 更改为 Running 之前,出现多次“错误”和“重启”循环是正常现象。

    NAMESPACE          NAME                                            READY     STATUS             RESTARTS   AGE
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       CrashLoopBackOff   1          33s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       Error              2          33s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       CrashLoopBackOff   2          40s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       Running            3          1m
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   1/1       Running            3          1m
    
  2. Ingress 运行后,您可以输入 Ctrl+C 来取消上述命令。

  3. 运行以下命令以检查 Kubernetes 服务是否已部署。您应该会看到类似于以下示例输出的输出:

    kubectl get svc -n edgemicro-system
    

    输出示例:

    NAME                        TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                     AGE
    default-http-backend        ClusterIP      10.19.255.106  <none>         80/TCP                       2h
    edgemicro-ingress           LoadBalancer   10.19.247.156  35.224.24.13   80:30176/TCP,443:32325/TCP   2h
    
  4. 验证所有 pod 是否正在运行:

    kubectl get pods -n edgemicro-system
    

    输出示例:

    NAME                                            READY     STATUS    RESTARTS   AGE
    default-http-backend-55c6c69b88-2lvtw           1/1       Running   0          4m
    edgemicro-ingress-controller-64444469bf-wjhrn   1/1       Running   3          4m
    

安装 Edge Microgateway

  1. 您必须安装 Edge Microgateway 2.5.26 或更高版本。您可以通过输入以下命令进行检查:

    edgemicro --version
  2. 如果您尚未安装 Edge Microgateway 2.5.26 或更高版本,请执行安装脚本:

    npm install edgemicro -g
  3. 如果您刚刚首次安装或升级了 Edge Microgateway,请运行以下命令:

    edgemicro init

    如果您需要其他帮助,请参阅安装 Edge Microgateway

下一步

现在,您可以将 Edge Microgateway 部署到 Kubernetes 了。