「extensions/v1beta1 Ingress は非推奨です」というログ 質問する

「extensions/v1beta1 Ingress は非推奨です」というログ 質問する

次のようにIngressを追加します。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cheddar
spec:
  rules:
  - host: cheddar.213.215.191.78.nip.io
    http:
      paths:
      - backend:
          service:
            name: cheddar
            port:
              number: 80
        path: /
        pathType: ImplementationSpecific

しかし、ログには次のように書かれています:

W0205 15:14:07.482439       1 warnings.go:67] extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
time="2021-02-05T15:14:07Z" level=info msg="Updated ingress status" namespace=default ingress=cheddar
W0205 15:18:19.104225       1 warnings.go:67] networking.k8s.io/v1beta1 IngressClass is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 IngressClassList

なぜですか? 使用する正しい yaml は何ですか? 現在、microk8s 1.20 を使用しています

ベストアンサー1

あなたの問題を分析した結果、以下の結論に達しました。

  1. Ingress は動作します。表示されるこれらの警告は、利用可能な API のバージョンについて通知するだけです。これについて心配する必要はありません。私は同じ警告を見たことがあります:

@microk8s:~$ kubectl describe ing
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
  1. apiVersion: networking.k8s.io/v1を使用しているにもかかわらず、なぜこれが起こるのかについては、以下の説明:

これは期待どおりに動作しています。Ingress オブジェクトを作成すると、任意のバージョンで読み取ることができます (サーバーは要求されたバージョンへの変換を処理します)。kubectl get ingressこれは、どのバージョンを読み取る必要があるかを示していないため、あいまいな要求です。

あいまいなリクエストが行われると、kubectl はサーバーから返された検出ドキュメントを検索し、指定されたリソースを含む最初のグループ/バージョンを見つけます。

互換性の理由から、extensions/v1beta1これまでは が他のすべての API バージョンよりも優先されてきました。現在、Ingress はそのグループに残っている唯一のリソースであり、非推奨で GA の代替品があるため、1.20 では の優先順位が下がり、 はkubectl get ingressから読み取りますnetworking.k8s.io/v1が、1.19 サーバーは引き続き従来の優先順位に従います。

特定のバージョンを読み取りたい場合は、get リクエストを修飾するか ( kubectl get ingresses.v1.networking.k8s.io... のように)、マニフェスト ファイルを渡して、ファイルで指定されたものと同じバージョンを要求することができます ( kubectl get -f ing.yaml -o yaml)

簡単に言うと、適切な を使用しているにもかかわらずapiVersion、非推奨の が依然としてデフォルトの として認識され、警告が生成されます。

私もそう思います変更はまだ行われています最近なので、まだ作業中だと思います。

おすすめ記事