ALB Ingress Controller на AWS - PullRequest
       87

ALB Ingress Controller на AWS

0 голосов
/ 10 января 2020

Я пытаюсь настроить входной контроллер ALB на AWS -EKS, точно так, как описано в следующем руководстве: ingress_controller_alb , но я не могу получить входной адрес.

Действительно , если я запускаю следующую команду: kubectl get ingress/2048-ingress -n 2048-game, через 10 минут я не получаю адрес. Есть идеи?

Ответы [ 3 ]

0 голосов
/ 16 января 2020

Я боролся с той же проблемой, но, наконец, заработал, выполнив шаги @MaggieO, описанные выше. Несколько вещей для рассмотрения:

  1. Добавьте publi c и частные подсети в ваш кластер EKS. Убедитесь, что ваши публичные c подсети помечены как «kubernetes.io/role/elb":"1». При создании группы управляемых узлов выберите только частные подсети для размещения рабочих узлов.
  2. Убедитесь, что ваша роль IAM для рабочих узлов имеет политики AmazonEKSWorkerNodePolicy, AmazonEC2ContainerRegistryReadOnly, AmazonEKS_CNI_Policy и пользовательскую политику, определенную здесь https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.2/docs/examples/iam-policy.json.
  3. Изучите журналы вашего входного контроллера, они полезны.

    kubectl log -n kube-system [имя вашего входного контроллера]

0 голосов
/ 27 января 2020

Спасибо за ваши ответы!

Я думаю, что проблема заключается в создании кластера, который приводит к созданию кластера без экземпляров EC2, с помощью команды eksctl cluster create -f cluster.yaml

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: test
  region: eu-central-1
  version: "1.14"
vpc:
  id: vpc-50b17738
  subnets:
    private:
      eu-central-1a: { id: subnet-aee763c6 }
      eu-central-1b: { id: subnet-bc2ee6c6 }
      eu-central-1c: { id: subnet-24734d6e }
nodeGroups:
  - name: ng-1-workers
    labels: { role: workers }
    instanceType: t3.medium
    desiredCapacity: 2
    volumeSize: 5
    privateNetworking: true

Я пытаюсь с группы узлов и группы управляемых узлов, но я получаю следующую ошибку тайм-аута:

...
[ℹ]  nodegroup "ng-1-workers" has 0 node(s)
[ℹ]  waiting for at least 2 node(s) to become ready in "ng-1-workers"
Error: timed out (after 25m0s) waiting for at least 2 nodes to join the cluster and become ready in "ng-1-workers"
0 голосов
/ 13 января 2020

Возможно, проблема в версии aws -контроллера, который вы используете - вы используете старую версию входного контроллера - 1.0.0, новую - 1.1.3.

Я советую вам взглянуть в этой документации: ingress-controller-alb .

1. Загрузить образец манифеста контроллера доступа ALB

wget https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.3/docs/examples/alb-ingress-controller.yaml

2. Настройка манифеста входного контроллера ALB

Как минимум, отредактируйте следующие переменные:

--cluster-name=devCluster: name of the cluster. AWS resources will be tagged with kubernetes.io/cluster/devCluster:owned

Если ec2metadata недоступна из модуля контроллера, отредактируйте следующие переменные:

--aws-vpc-id=vpc-xxxxxx: vpc ID of the cluster.
--aws-region=us-west-1: AWS region of the cluster.

3. Развертывание манифеста ролей RBA C

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.3/docs/examples/rbac-role.yaml

4. Развертывание манифеста входного контроллера ALB

kubectl apply -f alb-ingress-controller.yaml

5. Убедитесь, что развертывание прошло успешно и контроллер запущен

kubectl logs -n kube-system $(kubectl get po -n kube-system | egrep -o "alb-ingress[a-zA-Z0-9-]+")

Вы должны отобразить вывод, подобный следующему:

-------------------------------------------------------------------------------
AWS ALB Ingress controller
Release:    1.0.0
Build:      git-7bc1850b
Repository: https://github.com/kubernetes-sigs/aws-alb-ingress-controller.git
-------------------------------------------------------------------------------

Затем вы можете развернуть пример приложения

Выполнить следующие команды:

* 10 45 *

Развертывание ресурса Ingress для игры 2048:

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.3/docs/examples/2048/2048-ingress.yaml

Через несколько секунд убедитесь, что ресурс Ingress включен:

kubectl get ingress/2048-ingress -n 2048-game
...