我有这个 GKE 自动驾驶仪集群,我正在尝试为其服务设置负载均衡器。需要注意的是:我必须手动定义一个 LB,而不是为集群定义一个 Ingress(这将创建 LB 和所有相关配置)。
GKE 创建了我需要的所有 NEG,我只是将现有集群指向它们作为后端,它运行良好。
问题:我无法手动创建允许健康检查网络到达 pod 的防火墙规则,因为该规则希望接收 TAG 作为其目标,但自动驾驶仪 GKE 隐藏了其节点的所有信息,例如自动创建的标签。
这是 GKE 入口控制器创建的防火墙规则示例:
Name: gke-autopilot-gke-cluster-XXXXX-xxxxx-egress
Target: gke-autopilot-gke-cluster-XXXXXX-node
我可以创建针对整个 VPC/子网的防火墙规则,但是如果我不知道节点将获得的 TAG,如何实现自动驾驶仪集群内的节点粒度?
答案1
可以通过以下命令查看自动创建的防火墙规则:
gcloud compute firewall-rules list --filter="name=gke-autopilot" --format=json
虽然下面的命令可以用来更新防火墙规则并添加所需的目标标签:
gcloud compute firewall-rules update firewall-rule-name \ --target-tags=tag-name
由于标签由 Google 维护,因此无法在任何自动驾驶节点中设置它们;相反,您必须将集群配置为标准集群。