コンテナソリューショングループの髙井です。
AKSへMicrosoft Docsの通りにAGICをインストールしていたら、
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
というエラーが出た人向けの情報です。
いきなりですがKubernetesのDeprecated API Migration Guideを見てみましょう。
中段のあたりにIngressの項目があります。
The extensions/v1beta1 and networking.k8s.io/v1beta1 API versions of Ingress is no longer served as of v1.22.
- Migrate manifests and API clients to use the networking.k8s.io/v1 API version, available since v1.19.
- All existing persisted objects are accessible via the new API
- Notable changes:
spec.backend
is renamed tospec.defaultBackend
- The backend
serviceName
field is renamed toservice.name
- Numeric backend
servicePort
fields are renamed toservice.port.number
- String backend
servicePort
fields are renamed toservice.port.name
pathType
is now required for each specified path. Options arePrefix
,Exact
, andImplementationSpecific
. To match the undefinedv1beta1
behavior, useImplementationSpecific
.
言ってしまえば、今日の内容としてはここにほぼすべてが書かれているわけですが、もう少し丁寧に追っていきましょう。
Microsoft Docsのサンプルがextensions/v1beta1
になっている
こちらのページにAGICをグリーンフィールドにデプロイするチュートリアルが載っています。
そこで使用するサンプルアプリケーションを外部からダウンロードするようになっていますが、これがextensions/v1beta1
のままです。
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: aspnetapp annotations: kubernetes.io/ingress.class: azure/application-gateway spec: rules: - http: paths: - path: / backend: serviceName: aspnetapp servicePort: 80
一応、こういった変更漏れに対するプルリクエストも出ているようですね。
対処方法
先ほど公式ページに書いてあった通りの内容に直していきましょう。
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: aspnetapp annotations: kubernetes.io/ingress.class: azure/application-gateway spec: rules: - http: paths: - path: / backend: # serviceName: aspnetapp # servicePort: 80 # コメントアウトした部分の指定方法が変更 service: name: aspnetapp port: number: 80 # pathTypeの指定が必須 pathType: Exact
pathType
をどうすればいいか
公式のページに日本語で詳しい説明がありますのでそちらを参照するのがよいです。
ちなみにMicrosoft Docsのサンプルアプリなら正直どれを選んでも動きます。
他の場合でも悩んだらImplementationSpecific
を指定しておけばいいですね(記事の冒頭で引用した部分の内容ですが、これまで指定していなかった時と同じ動きをすると書いてあります)。
おわりに
どれも公式の情報ですが、AGICをチュートリアルを見ながらはじめて使うケースなどでは、それなりに詰まりやすいポイントかもしれません。
最初のうちは「どこを調べればいいかわからない!」ということが多いので、対処方法がどこを探せば見つかるのかも含め書いてみました。
そんなわけで、みなさんのAzureライフが楽しくなりますように! それでは~。