четверг, 10 июня 2021 г.

AWS LoadBalancer Ingress Controller выносим наружу свой домен в EKS

 1. В качестве балансировщика я использую AWS load balancer controller.

 2. в EKS создаем новый Ingress.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: default
  name: test1
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
spec:
  rules:
    - http:
        paths:
          - path: /
            backend:
              serviceName: test1
              servicePort: 5000

или

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: default
  name: test1
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
spec:
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              serviceName: test1
              servicePort: 5000







3.  Создаем CNAME запись у хостинг-провайдера и копируем в DNS зону А запись из AWS Load Balancer.






AWS EKS использование SSL сертификата с помощью AWS Certificate Manager

Необходимо было использовать SSL сертификаты для сервисов которые торчат наружу.


1.  Переходим в AWS Certificate Manager и жмем Request Certificate, я использовал DNS валидацию и добавляем в DNS зону нужный нам CNAME.



2. переходим в EKS и создаем нам нужный Ingress, в качестве балансировщика я использую aws-load-balancer-controller.


apiVersion: extensions/v1beta1

kind: Ingress

metadata:

  namespace: default

  name: test1

  annotations:

    kubernetes.io/ingress.class: alb

    alb.ingress.kubernetes.io/scheme: internet-facing

    alb.ingress.kubernetes.io/target-type: ip

    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxxx:certificate/xxxxxxx

spec:

  rules:

    - http:

        paths:

          - path: /

            backend:

              serviceName: test1

              servicePort: 5000


3. Из AWS Certificate Manager копируем нужный нам ARN и вставляем в annotation Ingress (выше отмечено красным)



4. Через минуты две проверяем созданный ingress в браузере.




четверг, 3 июня 2021 г.

Kubernetes 1.19 создание ServiceAccount с ограниченными правами.

Создаем Service Account с ограниченными правами в Kubernetes.

1.

kubectl create serviceaccount a-plus-sa --namespace=a-plus

kubectl create role a-plus-deployments-get --verb=get,list,watch,update --resource=deployments --resource=pods --namespace=a-plus

kubectl create rolebinding a-plus-user --role=a-plus-role --serviceaccount=a-plus:a-plus-sa --namespace=a-plus

kubectl auth can-i get pods -n=a-plus --as=system:serviceaccount:a-plus:a-plus-sa