Я не могу получить адрес ALB. Адрес пуст - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь следовать этому руководству https://aws.amazon.com/blogs/containers/using-alb-ingress-controller-with-amazon-eks-on-fargate/

Шаги ниже:

Подготовка кластера AWS_REGION = us-east-1 CLUSTER_NAME = eks-fargate-alb- demo

eksctl создать кластер --name $ CLUSTER_NAME --region $ AWS_REGION --fargate

kubectl get svc Вы должны получить следующий ответ: NAME TYPE CLUSTER-IP PORT EXTERNAL-IP PORT (S ) AGE kubernetes ClusterIP 10.100.0.1 443 / TCP 16h

Установите поставщика OID C с кластером и создайте политику IAM, используемую ALB Ingress Controller wget -O alb-ingress-iam-policy. json https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/master/docs/examples/iam-policy.json aws iam create-policy --policy-name ALBIngressControllerIAMPolicy --policy-file file: //alb-ingress-iam-policy.json

STACK_NAME = eksctl- $ CLUSTER_NAME-кластер VPC_ID = $ (aws описание облака - стеки - имя-стека "$ STACK_NAME" | jq -r '[.Stacks [0] .Outputs [] | {key: .OutputKey, значение: .OutputValue}] | from_entries '| jq -r' .VP C ') AWS_ACCOUNT_ID = $ (aws sts get-caller-identity | jq -r '.Account')

cat> rba c -role.yaml << - EOF </h2> apiVersion: rba c .authorization.k8s.io / v1 вид: метаданные ClusterRole: метки: app.kubernetes.io/name: имя контроллера alb-ingress: правила контроллера alb-ingress: - apiGroups: - "" - ресурсы расширений: - configmaps - конечные точки - события - входы - входы / статус - сервисные глаголы: - создать - получить - список - обновить - посмотреть - патч - apiGroups: - "" - ресурсы расширений: - узлы - модули - секреты - сервисы - глаголы пространств имен: - получить - список - посмотреть

apiVersion: rba c .authorization.k8s.io / v1 вид: ClusterRoleBinding метаданные: метки: app.kubernetes.io/name: имя альб-ингресс-контроллера: ролик альб-ингресс-контроллера roleRef: apiGroup: rba c .authorization.k8s.io вид: имя кластера: имя субъекта alb-ingress-контроллера: - вид: имя учетной записи Service: пространство имен alb-ingress-controller: kube-system EOF

применить kubectl -f rba c -role.yaml Эти команды создадут для нас два ресурса: Выходные данные должны быть примерно такими:

clusterrole.rba c .authorization.k8s.io / alb-ingress-controller созданный clusterrolebinding.rba c .authorization.k8s.io / alb-ingress -контроллер создан И, наконец, учетная запись службы Kubernetes:

eksctl создать iamserviceaccount \ --name alb-ingress-controller \ --namespace kube-system \ --cluster $ CLUSTER_NAME \ --attach-policy-arn arn : aws: iam :: $ AWS_ACCOUNT_ID: policy / ALBIngressControllerIAMPolicy \ --approve Эта команда eksctl развернет новый стек CloudFormation с ролью IAM. Подождите, пока он не завершится sh, прежде чем продолжать выполнение следующих шагов.

Развертывание контроллера входа ALB Теперь давайте развернем контроллер входа ALB в нашем кластере:

cat> alb-ingress-controller .yaml << - EOF apiVersion: apps / v1 type: метаданные развертывания: метки: app.kubernetes.io/name: имя alb-ingress-controller: пространство имен alb-ingress-controller: kube-system spe c: селектор: matchLabels: app.kubernetes.io/name: шаблон alb-ingress-controller: метаданные: метки: app.kubernetes.io/name: alb-ingress-controller spe c: контейнеры: - имя: alb-ingress-controller args : - --ingress-class = alb - --cluster-name = $ CLUSTER_NAME - - * aws -vp c -id = $ VPC_ID - - aws -region = $ AWS_REGION image: docker .io / amazon / aws -alb-ingress-controller: v1.1.4 serviceAccountName: alb-ingress-controller EOF kubectl apply -f alb-ingress-controller.yaml </p>

Развернуть пример приложения в кластер Сейчас что у нас работает наш входной контроллер, мы можем развернуть приложение на блеск и создайте входной ресурс, чтобы выставить его.

Начнем с развертывания:

cat> nginx -deployment.yaml << - EOF apiVersion: тип расширений / v1beta1: метаданные развертывания: имя: "nginx -deployment" пространство имен: " по умолчанию "spe c: реплики: 3 шаблон: метаданные: метки: приложение:" nginx "spe c: контейнеры: - изображение: nginx: последнее изображениеPullPolicy: всегда имя:" nginx "порты: - containerPort: 80 EOF </p>

kubectl apply -f nginx -deployment.yaml Выходные данные должны быть похожи на:

deploy.apps / alb-ingress-controller созданный Тогда давайте создадим службы, поэтому мы можем предоставить NGINX pods:

cat> nginx -service.yaml << - EOF apiVersion: v1 вид: метаданные службы: аннотации: alb.ingress.kubernetes.io/target- тип: имя ip: "nginx -service" пространство имен: "default" spe c: порты: - порт: 80 targetPort: 80 протокол: TCP тип: селектор NodePort: приложение: "nginx" EOF </p>

kubectl apply -f nginx -service.yaml Вывод будет похож на:

deploy.extensions / nginx -deployment create d Наконец, давайте создадим наш входной ресурс:

cat> nginx -ingress.yaml << - EOF </strong> apiVersion: extensions / v1beta1 вид: входные метаданные: имя: "nginx -ingress "namespace:" default "аннотации: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: inte rnet -дисковые метки: приложение: nginx -ingress spe c: правила : - http: paths: - path: / * backend: serviceName: "nginx -service" servicePort: 80 EOF kubectl apply -f nginx -ingress.yaml

Вывод будет:

ingress.extensions / nginx -ingress создан Как только все будет сделано, вы сможете получить ALB URL, выполнив следующую команду:

kubectl get ingress nginx -ingress Выходные данные Эта команда будет похожа на эту:

ИМЯ ХОСТОВ АДРЕС ПОРТ ВОЗРАСТ nginx -ingress * 5e07dbe1-default-ngnxingr-2e9-113757324.us-east-2.elb.amazon aws .com 80 9s

, но я не могу получить ALB URL на этом шаге kubectl get ingress nginx -ingress

Любая помощь .. Заранее спасибо ..

...