因此,我试图实现以下目标:-通过GCE上的2-创建K8s集群-添加防火墙规则,以便节点能够与Racher通信。
我能够在节点的外部I中添加防火墙规则来访问牧场主主,但我应该能够使用标记,而不是添加I。引擎创建一个计算引擎实例组
gke-c-wlvrt-default-0-5c42eb4e-grp当我添加防火墙规则时:
Target Tag: rancher-master
Source Tag: gke-c-wlvrt-default-0-5c42eb4e-grp毫无办法。
当我把它改为:
Target Tag: rancher-master
Source IP: 35.xx.xx.xx, 35.xx.xx.xx.xx, 35.xx.x.xxx.x它起作用了。
那么,我得到了在防火墙规则下工作的Kubernetes节点的标记吗?
发布于 2020-03-19 09:26:41
你没有使用正确的标签。要了解这一点,请转到Compute Engine页面并单击VM上的详细信息。你可以看到这个:

实例组名称与网络标记名不相同。使用网络标记而不是实例组名称。
当您转到实例组页和实例模板详细信息时,您还可以看到这些值。
更新
因为您不能(或者我不知道如何做)知道应用于VM的网络标记,所以您可以在GCP上使用一个特殊的技巧。
使用服务帐户开始更新节点池定义。
resource "google_service_account" "sa-node" {
account_id = "sa-node"
display_name = "sa-node"
}
resource "google_container_node_pool" "primary_preemptible_nodes" {
name = "my-node-pool"
location = "us-central1"
cluster = google_container_cluster.primary.name
node_count = 1
node_config {
preemptible = true
machine_type = "n1-standard-1"
service_account = google_service_account.sa-node.email
....然后使用服务帐户作为源来定义防火墙规则,而不是使用网络标记。
resource "google_compute_firewall" "default" {
name = "test-firewall"
network = google_compute_network.default.name
allow {
protocol = "tcp"
ports = ["80", "8080", "1000-2000"]
}
source_service_accounts = [google_service_account.sa-node.email]
}遗憾的是,您不能混合target tag和source service account,但是可以使用target service account。因此,在牧场上做同样的事情。使用特定的服务帐户为您的农场部署,这应该是可行的。
希望能帮上忙!
发布于 2020-11-20 11:06:07
我不太确定这里描述的问题是否相同,但是您可以向‘m添加另一个标记。(GKE的节点)
我的问题是,我想在GKE的自动生成防火墙规则中添加另一个端口。
resource "google_container_node_pool" "node_pool" {
...
tags = [
module.vpc_network.private
]
...
}resource "google_compute_firewall" "master_webhooks" {
...
target_tags = [module.vpc_network.private]
...
}https://stackoverflow.com/questions/60744761
复制相似问题