Я пытаюсь следовать этому руководству 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
Любая помощь .. Заранее спасибо ..