extensions/v1beta1 Ingress から networking.k8s.io/v1 Ingress に移行する
最近バージョンアップした Kubernetes クラスタで作業していると Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
というワーニングが表示された。メッセージに書いてあるとおりだけど Kubernetes v1.14 から extensions/v1beta1
の Ingress リソースは非推奨、 v1.22 で廃止になるようだ。
言われたとおり Ingress を定義する YAML ファイルで apiVersion: extensions/v1beta1
としているところを apiVersion: networking.k8s.io/v1
と書き換えれば完了...ではなく、 API の仕様が変わっているので最新の ドキュメント (2021年05月10日現在、日本語ドキュメントは未更新)に合わせて修正する必要があった。
下に例を示したが、ざっくりと pathType
が無いとバリデーションで失敗するようになったのと、 backend
下の要素の書き方が変わったの大きな違いか。 annotations
なども変わっているのかもしれないけど、現状困っていないので調べていない。
extensions/v1beta1
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: example spec: rules: - host: example.com http: paths: - path: / backend: serviceName: example servicePort: 80
networking.k8s.io/v1
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example spec: rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: example port: number: 80
廃止前に気がつくことができたし、ワーニングも出なくなってメデタシメデタシ。