Kubernetes extensions/v1beta1 の Ingresの を networking.k8s.io/v1 に更新する

Posted by: ytyng 1 month, 3 weeks ago

最新版 (1.25ぐらい? ) の Kubernetes では、 apiVersion: extensions/v1beta1 は使えなくなっている。

Ingress をextensions/v1beta1 で書いている場合、kubectl apply の時

error: unable to recognize "ingress.yml": no matches for kind "Ingress" in version "extensions/v1beta1"

が表示され適用できないので、apiVersion: networking.k8s.io/v1 に更新する必要がある。

apiVersion: networking.k8s.io/v1beta1 の場合は使えなくなっているかは確かめてないが、同様に apiVersion: networking.k8s.io/v1 に更新しておいたほうが今後のトラブルを回避できるだろう。

その際、backend.service の書き方が少し変更されているので注意する。

apiVersion: networking.k8s.io/v1 の kind: Ingress のマニフェストのサンプル

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
namespace: my-namespace
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- secretName: my-tls-cert-secrets
rules:
- host: my-app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-service
port:
number: 80


extensions/v1beta1 の時に、 backend.serviceName backend.servicePort と書いてたものは、
backend.service.name, backend.service.port.number に変更されている。
pathType を書く必要がある。従来と同じ動作は、 pathType: Prefix

Currently unrated

Comments

Archive

2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011