Запусти кубернетес построить из терраформ - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь сделать простой тест для сборки простого nginx на kubernetes из terraform.Это первый раз, когда работает terraform.

Это основной файл terraform:

provider "kubernetes" {
  host = "https://xxx.xxx.xxx.xxx:8443"

  client_certificate     = "${file("~/.kube/master.server.crt")}"
  client_key             = "${file("~/.kube/master.server.key")}"
  cluster_ca_certificate = "${file("~/.kube/ca.crt")}"

  username = "xxxxxx"
  password = "xxxxxx"

}

resource "kubernetes_service" "nginx" {
  metadata {
    name = "nginx-example"
  }
  spec {
    selector {
      App = "${kubernetes_pod.nginx.metadata.0.labels.App}"
    }
    port {
      port = 80
      target_port = 80
    }

    type = "LoadBalancer"
  }
}

resource "kubernetes_pod" "nginx" {
  metadata {
    name = "nginx-example"
    labels {
      App = "nginx"
    }
  }

  spec {
    container {
      image = "nginx:1.7.8"
      name  = "example"

      port {
        container_port = 80
      }
    }
  }
}

Я получаю следующую ошибку после запуска применения terraform.

Ошибка: ошибка применения плана:

1 произошла ошибка (и):

  • kubernetes_pod.nginx: 1 произошла ошибка (и):

  • kubernetes_pod.nginx: сервер попросил клиента предоставить учетные данные (почтовые модули)

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

У меня есть права администратора на kubernetes, и все работает правильно.Но по какой-то причине я получаю эту ошибку.

Что я делаю не так?

Спасибо

По вопросу @ matthew-l-daniel

Когда я использую только имя пользователя / пароль, я получаю эту ошибку:

Ошибка: ошибка при применении плана:

1 произошла ошибка:

Terraform не выполняет автоматический откат в случае ошибок.Вместо этого ваш файл состояния Terraform был частично обновлен любыми успешно завершенными ресурсами.Пожалуйста, исправьте ошибку выше и примените снова, чтобы постепенно изменять вашу инфраструктуру.

Я пытался использовать имя сервера или ip сервера и каждый раз получал одну и ту же ошибку.

При использовании сертификатовЯ получил ошибку из исходного поста, касающуюся «учетных данных»

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

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Решение было довольно простым, я использовал мастер CRT и ключ от openshift на terraform.Затем я протестировал его, используя административный ключ и ключ из openshift, и он заработал.

0 голосов
/ 04 декабря 2018

Помимо официальной документации поставщика kubernetes , предлагающей только сертификат или basic (пользователь / пароль), это похоже на проблему OpenShift.Удалось ли вам получить какие-либо журналы из кластера OpenShift?

Некоторые поиски связывают сообщение, которое вы видите, с некоторыми ошибками нестабильности в Kubernetes, в которых kubelet не регистрируется должным образом после перезагрузки.Я бы вручную подтвердил, что узел отображается как Ready в OpenShift, прежде чем вы попытаетесь выполнить развертывание, так как пока это не произойдет, Terraform не сможет взаимодействовать с ним.

Если на самом деле узел не Ready, Terraform просто обнаруживает основную ошибку, переданную обратно из OpenShift.

Отдельно ошибка, которую вы видите при попытке аутентификации с использованием параметров только сертификатасвидетельствует о неправильной конфигурации.Аналогичный вопрос был поднят на Kubernetes GitHub , и было предложено изучить центр сертификации, загруженный в кластер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...