Я не могу говорить ни с битами ProjectAtomic, ни с KUBERNETES_PROVIDER
env-var, поскольку у меня был опыт работы с инициатором CoreOS. Я расскажу о своем опыте и посмотрю, поможет ли это вам углубиться в свою настройку.
Прежде всего, абсолютно необходимо, чтобы контроллер EC2 и рабочие машины EC2 имели правильный роль IAM, которая позволит машинам выполнять вызовы AWS от имени вашей учетной записи. Это включает в себя такие вещи, как подготовка ELB и работа с томами EBS (или присоединение тома EBS к себе, в случае работника). Без этого ваша облачная конфигурация никуда не денется. Я почти уверен, что полезные данные IAM определены где-то помимо этих .go
файлов, которые трудно читать, но это самая быстрая ссылка, которая у меня была под рукой, чтобы показать, что нужно.
К счастью, ответ на этот вопрос и тот, о котором я собираюсь поговорить, сосредоточены вокруг apiserver
и controller-manager
. Их конфигурация и журналы, которые они выводят.
Оба тега apiserver и controller-manager имеет аргумент, указывающий на файл конфигурации облака на диске, который, к сожалению, нигде не документирован, кроме источник. Это поле Zone
, по моему опыту, необязательное (как говорится в комментариях). Однако именно KubernetesClusterTag
заставил меня проследить за этим полем в коде, чтобы увидеть, что оно делает.
Если ваш опыт похож на мой, вы увидите в журналах докеров controller-manager
кучу сообщений об ошибках о том, как он создал ELB, но не смог найти никаких подсетей для подключения к нему; (этот бит «журналов докеров», конечно, предполагает, что ProjectAtomic также использует докеры для запуска демонов Kubernetes).
Как только я прикрепил Tag
с именем KubernetesCluster
и установил для каждого экземпляра Tag
одну и ту же строку (это может быть что угодно, AFAIK), тогда aws_loadbalancer
смог найти подсеть в VPC, и он подключил узлы к ELB, и все было круто - кроме той части, что прямо сейчас он может создавать только выходящие в Интернет ELB. :-(
Для ясности: aws.cfg
содержит поле с именем KubernetesClusterTag
, которое позволяет вам переопределить Tag
, которое будет искать Kubernetes; без какого-либо значения в этом файле Kuberenetes будет использовать Tag
имя KubernetesCluster
.
Я надеюсь, что это поможет вам, и я надеюсь, что это поможет другим, потому что как только Kubernetes работает, это просто потрясающе.
person
mdaniel
schedule
25.01.2016