Terraform не создает докер-сервис на рабочем узле - PullRequest
1 голос
/ 19 сентября 2019

У нас есть требование настроить несколько экземпляров jenkins на ограниченном количестве хост-машин.

Для этого я настроил Docker Swarm на двух серверах.

На «master»узел, я использую terraform для создания и управления сервисами докера.

Когда я создаю сервисы вручную, контейнер автоматически появляется на рабочем узле.Когда я создаю сервис с 2 репликами, контейнеры создаются на обоих узлах, как и должно быть.

Однако, когда я использую код terraform для создания и управления сервисом, контейнеры никогда не создаются на рабочем узле.Даже когда я настраиваю 2 реплики, обе создаются на главном узле.

Здесь представлен файл main.tf, используемый для создания службы.

resource "docker_service" "jenkins_service" {
  name = var.project_name
  task_spec {
    container_spec {
      image = docker_image.jenkins_image.name
      mounts {
        target = "/var/jenkins_name"
        source = docker_volume.jenkins_volume.name
        type   = "volume"
      }
      mounts {
        source = "/var/run/docker.sock"
        target = "/var/run/docker.sock"
        type   = "bind"
      }
    }
    networks = ["${docker_network.jenkins_network.name}"]
  }

  endpoint_spec {
    ports {
      target_port    = "8080"
      published_port = var.web_interface_port
      publish_mode   = "ingress"
      name           = "WEB_INTERFACE"
    }
    ports {
      target_port    = "50000"
      published_port = var.api_interface_port
      publish_mode   = "ingress"
      name           = "API_INTERFACE"
    }
  }
}

Я не знаю, чтоЯ делаю неправильно здесь.Любая помощь будет высоко ценится

С уважением.

1 Ответ

0 голосов
/ 20 сентября 2019

Для пользы других: я использовал пользовательские образы докеров, и код terraform по существу вызывал эти изображения, используя формат: тем самым заставляя рой запускать контейнеры только на главном узле, на котором фактически было изображение.

Я наткнулся на этот отличный пост, который указывает на точную проблему.В моей настройке отсутствовал реестр докеров.Я следовал инструкциям в этой ссылке, и это решило проблему.

Спасибо, «fernandezcuesta», за то, что нашли время ответить на мой запрос.

С уважением, Сентил Натан М

...