

本指南提供了 Wickr Enterprise 的文档。如果您使用的是 AWS Wickr，请参阅 [AWS Wickr 管理指南](https://docs.aws.amazon.com/wickr/latest/adminguide/what-is-wickr.html)或 AW [S Wickr 用户](https://docs.aws.amazon.com/wickr/latest/userguide/what-is-wickr.html)指南。

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

# 连接到 Kubernetes 集群
<a name="connecting"></a>

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

## 通过堡垒机代理连接
<a name="connecting-proxying-connections-through-the-bastion"></a>

首次连接到集群时，必须使用 `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
```