Добавление правила брандмауэра для узлов GKE - PullRequest
0 голосов
/ 18 марта 2020

Поэтому я пытаюсь добиться следующего: - Через Terraform развернуть Rancher 2 на GCE - Создать кластер K8s - Добавить правила брандмауэра, чтобы узлы могли общаться с Racher Master Vm.

I был в состоянии добавить правило брандмауэра с внешними IP-адресами узлов для доступа к хозяину ранчо, но вместо добавления IP-адресов я смог использовать тег. Google Kubernetes Engine создает группу экземпляров вычислительного движка

 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, работающих над правилом брандмауэра?

1 Ответ

2 голосов
/ 19 марта 2020

Вы не используете правильный тег. Чтобы узнать это, go перейдите на страницу Compute Engine и нажмите на детали на виртуальной машине. Вы можете видеть это:

enter image description here

Имя группы экземпляров не совпадает с именем сетевого тега. Используйте сетевой тег вместо имени группы экземпляров.

Вы также можете увидеть эти значения, когда вы go перейдете на страницу группы экземпляров, а вы go - к детали шаблона экземпляра.

ОБНОВЛЕНИЕ

Поскольку вы не можете (или я не знаю, как это сделать) узнать сетевой тег, применяемый к ВМ, вы можете использовать специальный прием для 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. Таким образом, сделайте то же самое на Rancher. Используйте указанную c учетную запись службы для развертывания ранчо, и это должно сработать.

Надеюсь, эта помощь!

...