apiVersionの選択について考えているk8s

Kubernetes APIは、HTTPを介して提供されるリソースベース(RESTful)のプログラミングインターフェースです。

REST:REpresentational State Transferの直接変換は、プレゼンテーション層の状態転送であり、理解するのは簡単ではありません。
まず、あいまいな理由は、前のサブジェクトが削除されているためであり、フルネームはResourceRepresentationalです。状態転送:素人の用語では、リソースがネットワーク内で特定の方法で表現されることを意味します。形式での状態遷移

  • リソース:リソース、つまりデータ(ネットワークのコアについては前述しました)。ニュースフィード、友達など。
  • 表現:JSON、XML、JPEGなどの特定の形式の表現。
  • 状態の転送:状態の変更。HTTP動詞を介して。

RESTは、ネットワーク内のクライアントとサーバー間の相互作用の形式を記述します。REST自体は実用的ではありませんが、RESTful API(RESTスタイルのネットワークインターフェイス)を設計する方法は実用的です。

資源

  • 私たちのコンピュータに保存されているさまざまなフォルダなどのリソースは、写真、名簿、ビデオなどを保存するさまざまな機能に従って分類されています。

状態転送(httpに基づいて提供)

状態の変化は、リソースの追加、変更、削除などの操作を実装するためのいくつかの英語の動詞で構成されています。つまり、リソースの状態はHTTP動詞によって逆になります

  • GETはリソースを取得するために使用されます
  • POSTは、新しいリソースの作成に使用されます(リソースの更新にも使用できます)
  • PUTはリソースを更新するために使用されます
  • DELETEはリソースを削除するために使用されます

代表的

  • これは、JSON、XMLを使用してテキストを送信したり、JPG、WebPを使用して画像を送信したりするなどのリソース送信の形式です。もちろん、HTTP送信中にデータを圧縮することもできます

URL

  • サーバーが提供するRESTfulAPIでは、URLを使用してリソースアクセス方法を指定します

ここに画像の説明を挿入します

知乎の作者からの抜粋で、よく理解できるように書かれているので、読むことをお勧めします

著者:タンウルトラ
リンク:https://www.zhihu.com/question/28557115/answer/48094438

APIバージョン

古いバージョンとの互換性を保ちながら新しいAPIを継続的にアップグレードするために、Kubernetesは複数のAPIバージョンをサポートしており、各APIバージョンには/ api / v1や/ apis / extensions / v1beta1などの異なるAPIパスがあります。

  • アルファレベル:Kubernetesの新機能の初期の候補。これらにはエラーが含まれている可能性があり、将来の動作が保証されていません
  • ベータレベル:APIバージョンの名前は、テストがアルファレベルを超えて進行したことを意味し、この機能は最終的にKubernetesの「テスト」に含まれる予定です。動作方法が変更されたり、オブジェクトの定義方法が完全に変更されたりする場合がありますが、関数自体が何らかの形でKubernetesに組み込まれる可能性があります。
  • 安定レベル:安定バージョン。バージョンの名前は次のとおりです。vXここで、Xは整数です。

APIの多くのバージョンによって引き起こされる問題

k8sが1.16の場合、多くのバージョンが非推奨になり、問題が発生します。1.15より前のバージョンが1.16にアップグレードされると、リソースが使用できなくなり、APIインターフェースが使用可能なリソースを見つけることができなくなり、複数のインターフェースがあります。同じリソースをサポートしている場合は、コマンドを使用して表示できます

 kubectl get deployments.v1.apps  -o yaml
 kubectl get deployments.v1beta1.extensions  -o yaml
 #资源结构都是一样的

解決

Plutoは、ユーザーが「InfrastructureasCode」リポジトリとHelmディストリビューションで非推奨のKubernetesAPIバージョンを簡単に見つけるのに役立つオープンソースユーティリティです。

ここに画像の説明を挿入します
非推奨、非推奨、および推奨される交換バージョンのヒントを確認できます

冥王星:https://www.fairwinds.com/blog/kubernetes-easily-find-deprecated-api-versions-with-pluto
冥王星:https://github.com/FairwindsOps/pluto

おすすめ

転載: blog.csdn.net/yangshihuz/article/details/112648675