2015-12-24 3 views
12

Я установил CentOS Atomic Host в качестве операционной системы для кубернетов на AWS.Кубернетес на провайдере облаков AWS

Все работает нормально, но, похоже, я что-то пропустил.

Я не настроил поставщика облачных вычислений и не могу найти документацию по этому вопросу.

В этом вопросе я хочу знать: 1. Какие особенности облачного провайдера дает кубернетам? 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: {} 

ответ

6

Я не могу говорить с битами ProjectAtomic, а также с env-var KUBERNETES_PROVIDER env-var, так как мой опыт был связан с устройством обеспечения CoreOS. Я расскажу о своих впечатлениях и посмотрю, поможет ли это вам немного углубиться в вашу настройку.

Прежде всего, абсолютно необходимо, чтобы контроллер EC2 и рабочие машины EC2 имели правильный IAM role, который позволит машинам совершать вызовы AWS от имени вашей учетной записи. Это включает в себя такие вещи, как резервирование ELB и работа с томами EBS (или прикрепление к ним EBS тома, в случае работника). Без этого ваш опыт облачных конфигураций никуда не исчезнет. Я уверен, что полезная нагрузка IAM определена где-то, кроме тех файлов .go, которые трудно читать, но это самая быстрая ссылка, которую мне было удобно показать, что нужно.

К счастью, ответ на этот вопрос, и тот, о котором я собираюсь поговорить, сосредоточен вокруг apiserver и controller-manager. Конфигурация их и журналы, которые они выводят.

У apiserver и controller-manager есть аргумент, указывающий на конфигурационный файл облачной конфигурации, который, к сожалению, не документирован нигде, кроме the source. Это поле Zone, по моему опыту, дополнительно (точно так же, как говорится в комментариях). Тем не менее, он видел, что KubernetesClusterTag побудил меня следовать этому полю в коде, чтобы увидеть, что он делает.

Если у вас есть что-то похожее на мое, вы увидите в журналах докеров controller-manager кучу сообщений об ошибках о том, как он создал ELB, но не смог найти подсетей для присоединения к нему; (что бит «docker logs» предполагает, конечно, что ProjectAtomic также использует докер для запуска демонов Kubernetes).

После того, как я прилагается Tag имени KubernetesCluster и установить каждый экземпляр Tag к одной и той же строки (это может быть что угодно, AFAIK), то aws_loadbalancer смог найти подсеть в VPC и прикрепил узлы к ELB и все было круто - за исключением части об этом можно создать только Интернет, стоящий ELBs, прямо сейчас. :-(

Просто для ясности: aws.cfg содержит поле с именем KubernetesClusterTag, что позволяет переопределитьTag что Kubernetes будет искать, без любое значение в этом файле, Kuberenetes будет использовать Tag имя KubernetesCluster.

Я надеюсь, что это поможет вам, и я надеюсь, что это помогает другим, потому что когда-то Kubernetes вверх, это совершенно удивительно.

+0

Привет, Даниэль, спасибо за ваш ответ. Я нашел роли AWS IAM в [репозитории кубернетов] (https://github.com/kubernetes/kubernetes/tree/master/cluster/aws/templates/iam). –

+0

относительно атомного хоста, проверьте этот документ https://docs.openshift.org/latest/install_config/configuring_aws.html#configuring-aws-variables –

2
  1. Какие функции поставщика облако дает kubernetes?

Некоторые особенности, которые я знать: external loadbalancer, тем persistent volumes.

  1. Как настроить провайдера облачных вычислений AWS?

Существует среда вар называется KUBERNETES_PROVIDER, но мне кажется, окр вар имеет значение только тогда, когда люди начинают K8S кластера. Поскольку вы сказали, что «все работает нормально», мне не нужна дополнительная настройка, чтобы использовать функции, упомянутые выше.

+0

Спасибо за ваш ответ. Я проверил внешний LB и он не работает. –

+0

ли вы следовать getti ng начал руководство для aws? https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/getting-started-guides/aws.md#supported-procedure-get-kube. Также см. Https://github.com/kubernetes/kubernetes/blob/4ca66d2aefa20c27b670b2fa890052daadc05294/docs/design/aws_under_the_hood.md. Если создание службы с помощью Type = Loadbalancer не создает внешний loadbalancer на AWS, это звучит как ошибка. У Kubernetes есть поддержка ELB, как указано в документе «under the hood». –

+0

Можете ли вы сказать, что вы имеете в виду, что LB не работает? Появляется ли она при выполнении следующей команды: 'kubectl get svc -o yaml' и посмотреть, возвращает ли он атрибут' hostname'? Проблема в том, что AWS не дает IP-адресов ELB, а только имена хостов. – aronchick

Смежные вопросы