Contents
k8sのIngressとは
Ingerssとは、Kubernetesのクラスター外からクラスター内ServiceへのHTTP&HTTPSのルートを公開します。いうなれば「ちゃんと外からアクセスできるようにする」ためのツールです。
Ingressリソースの定義
Ingressリソースのミニマルな例を紹介しましょう。コードは公式ドキュメントからの引用です。
apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: minimal-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /spec: rules: - http:paths:- path: /testpath pathType: Prefix backend: service:name: testport: number: 80
他の全てのKubernetesリソースと同様に、Ingressには
Ingressリソース Kubernetesドキュメント よりapiVersion
、kind
やmetadata
フィールドが必要です。Ingressオブジェクトの名前は、有効なDNSサブドメイン名である必要があります。
ここで、IngerssのapiVersionは要チェックです。IngressのapiVersionを” networking.k8s.io/v1beta1“と指定している記事も多くありますが、Kubernetesのv1.22では廃止されています。v1では、v1beta1では必要なかったspec.rules.paths.pathTypeが必須となっていたり、 spec.rules.paths. backend以下の書き方が変わっていたりするので、実装の際はお互いの記法が混在しないように注意が必要です(実際、わたしもコレでハマりました・・笑)
詳しい違いについては以下に参考リンクを載せておきますね。