1. ホーム
  2. kubernetes

[解決済み] バージョン "extensions/v1beta1" の種類 "Deployment" に一致するものはありません。

2022-09-01 15:14:42

質問

mojaloopのデプロイ中に、Kubernetesが以下のようなエラーで応答してきます。

Error: バリデーションに失敗しました。[unable to recognize "": no matches for kind "Deployment" in version "apps/v1beta2", unable to recognize "": no バージョン "extensions/v1beta1" の種類 "Deployment" に一致するものがなく、認識できません。 "": 種類に一致するものがありません "StatefulSet" in the version "apps/v1beta2"、認識できません "":種類に一致するものがありません。 "StatefulSet" in version "apps/v1beta1"] を認識できません。

私のKubernetesのバージョンは1.16です。

APIバージョンの問題はどのように解決すればよいのでしょうか?

調べたところ、Kubernetesはapps/v1beta2、apps/v1beta1をサポートしていないことがわかりました。

どうすればKubernetesに非推奨のバージョンや他のサポートされているバージョンを使わせることができるのでしょうか?

私はKubernetesに新しいです、そして、私をサポートできる人は誰でも、私は幸せです。

どのように解決するのですか?

Kubernetes 1.16では、いくつかの api が変更されました。

現在のKubernetesオブジェクトをサポートしているAPIを確認するには

$ kubectl api-resources | grep deployment
deployments                       deploy       apps                           true         Deployment

これは、apiVersion にのみ apps はデプロイメント( extensions はサポートされていません。 Deployment ). StatefulSetも同じ状況です。

DeploymentとStatefulSetのapiVersionを apiVersion: apps/v1 .

これで解決しない場合、あなたのYAMLを質問に追加してください。

EDIT この問題は、HELM テンプレートがバージョン 1.16 でサポートされていない古い apiVersions をデプロイメントに含んでいることが原因であるため、2 つの解決策が考えられます。

1. git clone レポ全体と、apiVersion を apps/v1 というスクリプトを使用して、すべてのテンプレート/deployment.yaml で置き換えてください。

2. Kubernetes の古いバージョン (1.15) を使用すると、バリデータが extensions として apiVersion に対して DeploymentStatefulSet .