Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在 Amazon EKS 上安装单集群 CN2

总结 请参阅有关如何在 Amazon EKS 上安装单个集群 CN2 的示例。

在单个群集部署中,CN2 是该群集的网络平台和 CNI 插件。 图 1 显示了一个 Amazon EKS 集群,其中包含三个运行 Contrail 控制器的工作器节点。Amazon EKS 控制平面通过弹性网络接口 (ENI) 与用户 VPC 中的工作节点进行通信。在典型部署中,会有运行用户工作负载的其他工作器节点。

图 1:Amazon EKS CN2 on Amazon EKS 上的 CN2

本节中的过程显示了如何使用提供的 Amazon EKS 蓝图、Helm 图表和 YAML 清单在 Amazon EKS 集群上安装 CN2 的基本示例。我们将介绍如何在全新的集群和现有集群中安装 CN2。

不限于这些部分中所述的部署,也不限于使用提供的文件和清单。CN2 支持广泛的部署,这些部署数量太多,无法详细介绍。使用提供的示例作为起点,根据您的具体情况推出自己的清单。

使用 Amazon EKS 蓝图安装单集群 CN2

使用此过程通过适用于 Terraform 的 Amazon EKS 蓝图安装 CN2。

我们提供的蓝图执行以下操作:

  • 创建新的示例 VPC、3 个私有子网和 3 个公有子网

  • 为公有子网创建互联网网关,为私有子网创建 NAT 网关

  • 创建具有一个托管节点组的 EKS 集群控制平面(所需节点设置为 3)

  • 将 CN2 部署为 Amazon EKS 集群 CNI

  1. 克隆 AWS 集成和自动化存储库。这是存储 Terraform 清单的位置。
    注意:

    没有版本 23.2 分支。请改用版本 23.1 分支。

  2. 将您的 enterprise-hub.juniper.net 访问凭据添加到变量 的 terraform-aws-eks-blueprints/examples/eks-cluster-with-cn2/variables.tf container_pull_secret 中。
    添加的凭据必须采用 base64 编码。有关如何获取和编码凭据的示例,请参阅 配置存储库凭据
  3. 运行 terraform init.此命令初始化包含 Terraform 配置文件的工作目录。
  4. 运行 terraform plan.此命令将创建一个执行计划,允许您预览 Terraform 计划对基础架构所做的更改。
    验证此执行创建的资源。
  5. 运行 terraform apply.此命令将执行刚刚创建的地形规划。
    输入 yes以应用和创建群集。
  6. 从 Terraform 输出或 AWS 控制台获取新 Amazon EKS 集群的集群名称和其他详细信息。
  7. 将 kubeconfig 复制到您的本地计算机上。
  8. 检查新群集。
    列出工作线程节点: 列出所有 Pod:
  9. (可选)运行飞行后检查。请参阅运行印前检查和印后检查
  10. 如果遇到问题,请清理群集,然后重试安装。
    要清理集群,请销毁 Kubernetes 插件、Amazon EKS 集群和 VPC。您必须在 examples/eks-cluster-with-cn2 目录中运行这些 terraform 命令。 然后销毁所有剩余的资源:

使用 Helm 图表安装单群集 CN2

使用此过程通过 Helm 图表在现有 Amazon EKS 集群上安装 CN2。在此示例中,现有 Amazon EKS 集群正在运行 VPC CNI。

  1. 添加瞻博网络 CN2 Helm 存储库。
  2. 安装 CN2。
    请参阅 配置存储库凭据,了解获取凭据的一种方法。
  3. 使用标准 kubectl 命令检查安装。
    检查节点是否已启动。如果节点未启动,请等待几分钟,然后再次检查。

    检查 Pod 的状态是否为“正在运行”。如果没有,请等待几分钟,让 Pod 启动。

  4. (可选)运行飞行后检查。请参阅运行印前检查和印后检查

使用 YAML 清单安装单个群集 CN2

使用此过程通过 YAML 清单安装 CN2。

在本例中,我们使用 eksctl 创建集群,但您可以使用任何其他方法,只要您记得删除 CNI。

您将在此示例过程中使用的清单是 amazon-eks/single-cluster/single_cluster_deployer_example.yamlamazon-eks/single-cluster/cert-manager.yaml。此过程假定您已将这些清单放入 清单 目录中。

  1. 创建没有节点组的 EKS 集群。
    记下服务 IP 地址子网。在后面的步骤中需要用到此信息。默认情况下,Amazon EKS 从 10.100.0.0/16 或 172.20.0.0/16 CIDR 块分配服务 IP 地址。
  2. 为 Contrail kubemanager 配置服务 IP 地址子网。此子网必须与群集的服务 IP 地址子网匹配。
    编辑 single_cluster_deployer_example.yaml 清单并在 Kubemanager 部分中查找 serviceV4Subnet 配置。 根据需要更改子网以匹配群集的服务 IP 地址子网。
  3. 如果需要,请指定要在其中运行 Contrail 控制器的三个节点。
    默认情况下,提供的清单包含允许 Contrail 控制器容忍任何污点的容许。这意味着 Contrail 控制器将安装在任何节点上。使用节点选择器(或节点关联性)强制在所需的节点上安装 Contrail 控制器。然后污染这些节点以防止在那里调度其他 Pod。对其他两个节点重复此操作。
  4. 应用证书管理器清单。证书管理器为所有 CN2 管理和控制平面连接提供加密。
  5. 应用 Contrail 部署程序清单。
  6. 将运行 Amazon EKS 优化 AMI 的托管或自管理工作线程节点附加到集群。
    确保选择运行 CN2 支持的内核的 AMI。
  7. (可选)安装 Contrail 工具并运行印前检查。请参阅运行印前检查和印后检查
    请先更正任何错误,然后再继续。
  8. 使用标准 kubectl 命令检查部署。
    检查节点是否已启动。如果节点未启动,请等待几分钟,然后再次检查。

    检查 Pod 的状态是否为“正在运行”。如果没有,请等待几分钟,让 Pod 启动。

  9. (可选)运行飞行后检查。请参阅运行印前检查和印后检查