做法
使用以下語法,讓 ALB 將 HTTP 的流量導至 HTTPS:
| 1
 | alb.ingress.kubernetes.io/actions.${action-name}
 | 
修改 ingress.yaml 檔:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 
 | apiVersion: extensions/v1beta1kind: Ingress
 metadata:
 namespace: default
 name: ingress
 annotations:
 kubernetes.io/ingress.class: alb
 alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxx:certificate/xxxxxx
 alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
 alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
 spec:
 rules:
 - http:
 paths:
 - path: /*
 backend:
 serviceName: ssl-redirect
 servicePort: use-annotation
 - path: /*
 backend:
 serviceName: my-service
 servicePort: 80
 
 | 
- 註解 alb.ingress.kubernetes.io/listen-ports必須至少包含[{"HTTP": 80}, {"HTTPS":443}]兩個埠號。
- 註解 alb.ingress.kubernetes.io/certificate-arn必須設置憑證。
- 動作 ssl-redirect必須在規則的第一個,讓 ALB 優先解析。
套用設定。
| 1
 | kubectl apply -f ingress.yaml
 | 
查看 Ingress 狀態。
| 1
 | kubectl describe ingress my-service
 | 
參考資料