EKS ALB Ingress的配置設定(備忘錄)

子网

 

    Public サブネットは下記のようにタグを設定すること
Key: kubernetes.io/cluster/<クラスタ名>
Value: owned

Key: kubernetes.io/role/elb
Value: 1
    Private サブネットは下記のように設定すること
Key: kubernetes.io/role/elb
Value: 1

Ingress的Yaml文件

简要概况

 

    上記の手順を通して、Helmでaws-load-balancer-controllerを導入し、Ingressを作成すると、ALBが作成される

最开始没有serviceaccount,所以将步骤中的–set serviceAccount.create=false设置为true。

    • ALBの設定をannotationsで設定する

 

    annotationに関する説明

 

程序

步骤1. 创建 Ingress.yaml 文件

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: eks-ingress
  namespace: eks
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: instance
    alb.ingress.kubernetes.io/security-groups: sg-00000000000000000 # Clusterのセキュリティグループを指定すること
spec:
  ingressClassName: alb
  rules:
  - host: xxxxxxxxxxxxx.xxxxxxxxxxxx.xxxxxx # Route53のAレコード名を入れること
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: (service-name)
            port:
              number: 80

步骤2. 应用 ingress

kubectl apply -f ./ingress.yaml

第三步:在AWS界面上确认ALB已经被创建成功。

如果没有被创建,需要查看 aws-load-balancer-controllerPod 的日志。

第四步:适应Route53周边(主机、DNS、ACM、CNAME)等。

有时需要指定A记录名称,将其放入ingress.yaml文件的host字段中。在这种情况下,将其设为(xxxxxxxxxxxxx.xxxxxxxxxxxx.xxxxxx)。

第五步。 修改Ingress設置。

kubectl edit ingress eks-ingress -n eks
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: eks-ingress
  namespace: eks
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: instance
    alb.ingress.kubernetes.io/security-groups: sg-00000000000000000 # Clusterのセキュリティグループを指定すること
spec:
  ingressClassName: alb
  rules:
  - host: xxxxxxxxxxxxx.xxxxxxxxxxxx.xxxxxx # Route53のホスト名を入れること
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: (service-name)
            port:
              number: 80
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: eks-ingress
  namespace: eks
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: instance

## 修正箇所
    alb.ingress.kubernetes.io/security-groups: sg-00000000000000000 # Clusterのセキュリティグループを指定すること
        alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
    alb.ingress.kubernetes.io/actions.redirect-to-https: |
      {"Type":"redirect","RedirectConfig":{"Port":"443","Protocol":"HTTPS","StatusCode":"HTTP_302"}}
    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-northeast-1:000000000000:certificate/00000000-0000-0000-0000-000000000000 # ACMの証明書のARNを入れること
## 修正箇所

spec:
  ingressClassName: alb
  rules:
  - host: xxxxxxxxxxxxx.xxxxxxxxxxxx.xxxxxx # Route53のホスト名を入れること
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: (service-name)
            port:
              number: 80

完成修正

:wq!

步骤六:确认ALB的监听和规则栏已打开端口443。

步骤7:等待几分钟,直到记录被注册后,尝试访问A记录的xxxxxxxxxxxxx.xxxxxxxxxxxx.xxxxxx。

广告
将在 10 秒后关闭
bannerAds