【Kubernetes】Ingressとは?概要と注意点

Categories:IngressKubernetes

k8sのIngressとは

Ingerssとは、Kubernetesのクラスター外からクラスター内ServiceへのHTTP&HTTPSのルートを公開します。いうなれば「ちゃんと外からアクセスできるようにする」ためのツールです。

Ingressリソースの定義

Ingressリソースのミニマルな例を紹介しましょう。コードは公式ドキュメントからの引用です。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          service:
            name: test
            port:
              number: 80

他の全てのKubernetesリソースと同様に、IngressにはapiVersionkindmetadataフィールドが必要です。Ingressオブジェクトの名前は、有効なDNSサブドメイン名である必要があります。

Ingressリソース Kubernetesドキュメント より

ここで、IngerssのapiVersionは要チェックです。IngressのapiVersionを” networking.k8s.io/v1beta1“と指定している記事も多くありますが、Kubernetesのv1.22では廃止されています。v1では、v1beta1では必要なかったspec.rules.paths.pathTypeが必須となっていたり、 spec.rules.paths. backend以下の書き方が変わっていたりするので、実装の際はお互いの記法が混在しないように注意が必要です(実際、わたしもコレでハマりました・・笑)

詳しい違いについては以下に参考リンクを載せておきますね。

参考リンク

返信がありません

コメントを残す

メールアドレスが公開されることはありません。