HTTPS
kubernetes
ingress

kubernetesのingressでhttpsリクエストのみ許可する

More than 1 year has passed since last update.

公式に書いてあるんですけどメモとして
httpsリクエストのみ許可すると言っているので、httpでのリクエストが来ても404を返すようになります
実際はhttpへのアクセスが来たらhttpsにリダイレクトさせたいですよね、残念ながら現在のingress(GCE)の設定では出来ないようです
※リダイレクトさせるにはnginx ingressか何らかのwebサーバーでリダイレクトするようにしないといけません
僕はリダイレクトさせたいので結局httpを許可してフロントエンドで使用しているnginxでhttpsへリダイレクトさせました

使わなかったけど調べたのでとりあえず書いておきます

参考
GitHub kubernetes/ingress#Blocking HTTP
StackOverFlow: How to force SSL for Kubernetes Ingress on GKE

httpリクエストを許可しないingress.yamlの例

ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
  annotations:
    kubernetes.io/ingress.allow-http: "false" # ここの行を追加するとhttps強制できる
spec:
  tls:
  # This assumes tls-secret exists.
  # To generate it run the make in this directory.
  - secretName: tls-secret
  backend:
    serviceName: echoheaders-https
    servicePort: 80

これで終了(書く必要あったか…)
以上