1.8 版 GKE on AWS 在不重新创建集群的情况下修改集群的代理设置的功能。
更改管理服务的代理
如需修改 GKE on AWS 管理服务的代理设置,请执行以下步骤:
更新管理服务的 proxy.json 文件的内容,如创建代理配置 JSON 文件中所述。
重新运行
anthos-gke aws management init
和anthos-gke aws management apply
以将更改应用到管理服务。
更改用户集群的代理
创建用户集群时,它使用管理服务的代理设置。如需更改用户集群的代理设置,而不更改管理服务的代理设置,您必须创建包含代理信息的 Kubernetes Secret,然后使用 kubectl
应用更改。
创建 Kubernetes Secret
首先,创建一个 YAML 文件,其中包含描述 Secret 的以下内容。Secret 必须定义为不透明且不可变。此示例使用文件名
proxy-secret.yaml
。apiVersion: v1 kind: Secret metadata: name: PROXY_SECRET type: Opaque immutable: true stringData: # You can include additional key value pairs as you do with Opaque Secrets httpProxy: HTTP_PROXY httpsProxy: HTTPS_PROXY noProxy: NO_PROXY_LIST
您需要将其中的:
- HTTP_PROXY 替换为代理服务器地址,以通过其路由 HTTP 请求
- HTTPS_PROXY 替换为可选的代理服务器地址,以通过其路由 HTTPS 请求
- NO_PROXY_LIST 替换为您的 VPN 中不应使用代理的 IP、CIDR 范围和网域的可选列表
- PROXY_SECRET 替换为您为 Secret 选择的名称
应用更改以创建 Secret:
env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f ./proxy-secret.yaml
更新用户集群和节点池配置
接下来,更新 AWSCluster 和 AWSNodePool 配置,以分别在 spec.proxySecretName
和 spec.controlPlane.proxySecretName
下引用该 Secret 名称。
最后,发出以下命令来更新用户集群。
env HTTPS_PROXY=http://localhost:8118 \
kubectl apply -f CLUSTER_YAML_FILE
将 CLUSTER_YAML_FILE 替换为定义集群的 yaml 文件的名称。
用户集群状态更改
运行 kubectl apply
命令以应用新代理设置后,用户集群状态会从 Provisioned
更改为 Updating
,并在完成后变回 Provisioned
。
为多个用户集群设置代理
如果您有多个用户集群,并且想为每个集群配置不同的代理,请按照更改用户集群的代理中的说明,为每个集群进行操作。您必须为每个代理创建一个不同的 Kubernetes Secret,并且必须分别更新每个用户集群配置,以引用该用户集群的 Secret 名称。
轮替用户集群的代理
如需更改已具有单独代理设置的集群的代理设置,请使用新代理设置和不同的 Secret 名称创建并应用新的 Secret。如果您重复使用当前 Secret 名称,则集群的代理设置将不会发生变化。
问题排查
如果 Secret 格式不正确或缺少必需的密钥,则命令会失败,并且不会应用更改。要检查您的 Secret 是否已正确验证,请使用以下命令查看 AWSCluster 和 AWSNodePool 的 Kubernetes 事件日志:
env HTTPS_PROXY=http://localhost:8118 \
kubectl get events
如果您的 Secret 配置存在错误,请使用以下命令删除 Secret:
env HTTPS_PROXY=http://localhost:8118 \ kubectl delete secret SECRET_NAME
将 SECRET_NAME 替换为您的 Secret 的名称。
然后使用格式正确的代理 Secret YAML 文件重新创建 Secret,然后重新应用更改。您可以使用在首次尝试中使用的相同 Secret 名称。
了解详情
如需首次配置代理设置,请参阅使用代理。
如需创建专用 AWS VPC,请参阅安装管理服务。