为 GKE API 创建入口防火墙规则

为 GKE API 创建入口防火墙规则

出于测试目的,我想公开 GKE API 端点。但是,我似乎无法创建防火墙规则来允许这样做。我"source_ranges": conflicts with destination_ranges使用以下 terraform 代码创建它时收到错误。

知道为什么我不能允许互联网流量但可以过滤目标 IP 吗?谢谢。

resource "google_compute_firewall" "gke_api_allow" {
  name        = "gke-${var.cluster_name}-allow-firewall"
  project     = var.project_id
  network     = google_compute_network.gke_cluster_vpc.name
  description = "Main firewall that allows traffic to GKE cluster API public endpoint."

  priority  = 9
  direction = "INGRESS"

  allow {
    ports = [443]
    protocol = "tcp"
  }

  destination_ranges = ["${google_container_cluster.gke_cluster.endpoint}/32"]
  source_ranges = ["0.0.0.0/0"]

  log_config {
    metadata = "INCLUDE_ALL_METADATA"
  }
}

答案1

Google Kubernetes 引擎 (GKE)自动创建防火墙规则在 Google Cloud 中。

警告:请勿修改或删除 GKE 创建的防火墙规则,否则您可能会在集群中遇到意外行为。

所有自动创建的防火墙规则的优先级为 1000,这是防火墙规则的默认值。如果您希望更好地控制防火墙行为,可以创建优先级更高的防火墙规则。优先级较高的防火墙规则在自动创建的防火墙规则之前应用。

GKE 在创建服务时会创建以下入口防火墙规则。

Name: k8s-fw-[loadbalancer-hash]

Purpose: Permits ingress traffic to reach a Service.

Source: Specified in the Service manifest. Defaults to 0.0.0.0/0 (any source)

Destination: Node tag

Protocol and ports: TCP and UDP on the ports specified in the Service manifest.

有一个类似问题并提供解决方法。

相关内容