如何获取 Autopilot 集群的 K8S 节点网络标签?

如何获取 Autopilot 集群的 K8S 节点网络标签?

我正在尝试使用独立 NEG 设置 GKE(避免使用 Ingress,而是使用 Terraform 设置负载均衡器)。一切正常,但到目前为止,我一直在使用另一个 Ingress 中的防火墙规则。

但是要创建正确的防火墙规则,我需要 GKE_NODE_NETWORK_TAGS。但是在创建 Autopilot 集群时我无法设置它们。我无法列出文档中列出的节点,因为 Autopilot 节点不可见gcloud compute instances describe

如何为 Autopilot 集群正确创建防火墙规则?

PS:有关独立 NEG 的文档:https://cloud.google.com/kubernetes-engine/docs/how-to/standalone-neg#attaching_a_load_balancer_to_your_standalone_negs

答案1

当设置为自动驾驶仪,GKE 会自动创建防火墙规则,您可以通过输入 gcloud 命令来查看它们:

gcloud compute firewall-rules list --filter="name=gke-autopilot"

更详细的视图:

gcloud compute firewall-rules list --filter="name=gke-autopilot" --format=json

虽然可以使用以下命令更新防火墙规则并添加所需的目标标签:

gcloud compute firewall-rules update firewall-rule-name \
--target-tags=tag-name

正如您正确指出的那样,无法在任何自动驾驶仪节点中设置标签,因为这些标签由 Google 管理,因此您需要将您的集群配置为标准集群。

答案2

Autopilot 目前不支持网络标签,但该功能正在开发中,并将很快在 RAPID 发布渠道中推出。

答案3

嘿伙计们,我不知道这对你们是否有帮助,但我发现它已经给你们带来了麻烦,这是谷歌的疏忽。所以我自动化了这个过程并分享了脚本,这是一个docker容器,它会出去获取集群上的当前IP列表,然后更新防火墙规则,删除集群中不存在的任何IP,并确保当前集群节点的IP存在。除非存在差异,否则它不会更新防火墙规则。

它可能会有所改进,我只是需要一些可以起作用的东西,以便每次自动驾驶仪更新我们的节点时我们的生产集群不会受到影响。

https://github.com/neuronic-ai/google-scripts

相关内容