railsがんばる子

Ruby on Railsがんばる子です。胡蝶蘭のECサイトを運営しています。

EKS Ingress 俺的ハマりポイント

ローカル環境でminikubeを用いてKubernetesを構成して、パブリッククラウド使いたいなぁとおもってAmazon EKSを利用しました。 ekstool便利だし、慣れ親しみのあるAWSですし。

次のようにIngressを作り、kubectl apply -f ingress.yamlなどしてアクセスしてみると上手くいきました。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: sample2
  name: rails-ing
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
spec:
  rules:
  - host: 're----ruzu.com'
    http:
      paths:
      - path: /
        backend:
          serviceName: rails
          servicePort: 3000

しかし8b27e02b-sample2-railsing-837f-1682119185.ap-northeast-1.elb.amazonaws.com/hogeにアクセスすると404が返ってきます。🤔ハテ…。 ルート以外のpathはすべて404となってしまうようです。

いろいろ試行錯誤した結果 pathを/*としたらうまくいきました。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: sample2
  name: rails-ing
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
spec:
  rules:
  - host: 're----ruzu.com'
    http:
      paths:
      - path: '/*'
        backend:
          serviceName: rails
          servicePort: 3000

メンターさんに相談してみたところ、ALBの挙動だと思うから調べてみなはれとのこと。

ほーん、、、たしかに/以外は404になっていますね。。。 なるほどね。