View a markdown version of this page

连接到 Kubernetes 集群 - Wickr Enterprise

本指南提供了 Wickr Enterprise 的文档。如果您使用的是 AWS Wickr,请参阅 AWS Wickr 管理指南或 AW S Wickr 用户指南。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接到 Kubernetes 集群

Amazon EKS API 只能通过在部署过程中创建的堡垒主机进行访问。因此,所有 kubectl 命令都必须要么在堡垒主机上运行,要么通过堡垒主机进行代理。

通过堡垒机代理连接

首次连接到集群时,必须使用 aws eks update-kubeconfig 命令更新本地 kubeconfig 文件,然后在配置中进行 proxy-url 设置。然后,每次要连接到集群时,都要启动与堡垒主机的 SSM 会话,以转发到代理进行 API 访问。

一次性设置

WickrEks CloudFormation 堆栈上有一个名称以开头的输出值WickrEnterpriseConfigCommand。该值包含为您的集群生成 kubectl 配置所需的完整命令。输出可以通过以下命令查看:

aws cloudformation describe-stacks --stack-name WickrEks \ --query 'Stacks[0].Outputs[?starts_with(OutputKey, `WickrEnterpriseConfigCommand`)].OutputValue' \ --output text

这应该输出一个以 aws eks update-kubeconfig 开头的命令。运行以下命令。

接下来,必须将 Kubernetes 配置修改为通过堡垒主机的代理请求。可以使用下面的命令进行这项操作:

CLUSTER_ARN=$(aws cloudformation describe-stacks --stack-name WickrEks --query 'Stacks[0].Outputs[?OutputKey==`WickrEnterpriseEksClusterArn`].OutputValue' --output text) kubectl config set "clusters.${CLUSTER_ARN}.proxy-url" http://localhost:8888

如果运行正常,您会看到类似 'Property "clusters.arn:aws:eks:us-west-2:012345678912:cluster/WickrEnterprise5B8BF472-1234a41c4ec48b7b615c6789d93dcce.proxy-url" set.' 的输出

端口转发到堡垒机

要连接到 Amazon EKS 集群,您必须启动 SSM 会话,将转发请求移植到堡垒主机上运行的代理。执行此操作的命令作为 WickrEks 堆栈上的输出 BastionSSMProxyEKSCommand 提供。运行以下命令查看输出值:

aws cloudformation describe-stacks --stack-name WickrEks \ --query 'Stacks[0].Outputs[?OutputKey==`BastionSSMProxyEKSCommand`].OutputValue' \ --output text

它输出的命令将以 aws ssm start-session 开头。运行此命令启动在端口 8888 上运行的本地代理,您可以通过该代理连接到 Amazon EKS 集群。如果端口转发工作正常,则输出应显示“正在等待连接...”。在您访问 Amazon EKS 集群所需的整个过程中,请保持此过程处于运行状态。

如果一切设置正确,您将能够kubectl get nodes在另一个终端中运行以列出 Amazon EKS 集群中的工作节点:

kubectl get nodes NAME STATUS ROLES AGE VERSION ip-10-0-111-216.ec2.internal Ready none 3d v1.26.4-eks-0a21954 ip-10-0-180-1.ec2.internal Ready none 2d23h v1.26.4-eks-0a21954 ip-10-0-200-102.ec2.internal Ready none 3d v1.26.4-eks-0a21954