出于测试目的,我想公开 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.
有一个类似问题并提供解决方法。