Kubernetes на облачен доставчик на AWS

Инсталирах CentOS Atomic Host като операционна система за kubernetes на AWS.

Всичко работи добре, но изглежда съм пропуснал нещо.

Не съм конфигурирал облачен доставчик и не мога да намеря никаква документация за това.

В този въпрос искам да знам: 1. Какви функции предоставя доставчикът на облак на kubernetes? 2. Как да конфигурирам облачен доставчик на AWS?

UPD 1: външен балансьор на натоварването не работи; Все още не съм тествал awsElasticBlockStore, но също подозирам, че не работи.

UPD 2: Подробности за услугата:

$ kubectl get svc nginx-service-aws-lb -o yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 2016-01-02T09:51:40Z
  name: nginx-service-aws-lb
  namespace: default
  resourceVersion: "74153"
  selfLink: /api/v1/namespaces/default/services/nginx-service-aws-lb
  uid: 6c28b718-b136-11e5-9bda-06c2feb29b0d
spec:
  clusterIP: 10.254.172.185
  ports:
  - name: http-proxy-protocol
    nodePort: 31385
    port: 8080
    protocol: TCP
    targetPort: 8080
  - name: https-proxy-protocol
    nodePort: 31370
    port: 8443
    protocol: TCP
    targetPort: 8443
  selector:
    app: nginx
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer: {}

person emcpow2    schedule 24.12.2015    source източник


Отговори (2)


Не мога да говоря с битовете на 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
comment
Здравей Даниел, благодаря ти за отговора. Намерих роли на AWS IAM в хранилище на kubernetes. - person emcpow2; 26.01.2016
comment
по отношение на атомния хост, проверете този документ docs.openshift.org/latest /install_config/ - person Muayyad Alsadi; 11.07.2016

  1. Какви функции дава доставчикът на облак на kubernetes?

Някои функции, които познавам: външен loadbalancer, постоянните томове.

  1. Как да конфигурирам облачен доставчик на AWS?

Има променлива среда, наречена KUBERNETES_PROVIDER, но изглежда, че променливата env има значение само когато хората стартират k8s клъстер. Тъй като казахте „всичко работи добре“, предполагам, че не се нуждаете от допълнителна конфигурация, за да използвате функциите, които споменах по-горе.

person caesarxuchao    schedule 27.12.2015
comment
Благодаря за вашият отговор. Тествах външен LB и не работи. - person emcpow2; 29.12.2015
comment
Следвахте ли началните ръководства за aws? github.com/kubernetes/kubernetes/blob/release-1.1/docs/. Моля, вижте също github.com/kubernetes/kubernetes/blob/. Ако създаването на услуга с Type=Loadbalancer не създава външен loadbalancer на AWS, това звучи като грешка. Kubernetes има ELB поддръжка, както е споменато в документа под капака. - person Prashanth B; 30.12.2015
comment
Можете ли да кажете повече какво имате предвид, че LB не работи? Показва ли се, когато изпълните следната команда: kubectl get svc -o yaml и видите дали връща атрибут hostname? Проблемът е, че AWS не дава IP адреси на ELB, а само имена на хостове. - person aronchick; 31.12.2015
comment
Да, прочетох това ръководство. Клъстер, създаден с водачитеhttp://www.projectatomic.io. - person emcpow2; 02.01.2016
comment
Не трябва да се налага да конфигурирате доставчика на облак. Можете ли да поставите във вашата услуга .yaml файл? Освен това, можете ли да поставите вашите версии на kubernetes (както главна, така и възел)? kubctl get version - person aronchick; 04.01.2016