Не мога да говоря с битовете на 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