Kubernetes C# クライアント ライブラリを使用するにはどうすればよいでしょうか?

Kubernetes C# クライアント ライブラリを使用するにはどうすればよいでしょうか?

[51CTO.com クイック翻訳] Kubernetes の使用は必ずしも簡単ではありません。クラスターとポッドの管理には労力がかかります。クラウドでホストされる Kubernetes インスタンス (Azure の AKS など) は多くの面倒な作業を処理できますが、オンプレミスまたは独自の仮想インフラストラクチャで Kubernetes を実行している場合、これらは使用できません。

[[319140]]

ここで Kubernetes API が役立ちます。これは、Kubernetes がコンポーネントと外部コントローラー間で通信するための手段です。 kubectl コマンドライン ツールを使用して API と通信することも、使い慣れた REST (Representational State Transfer) 呼び出しを通じて API を使用することもできます。 API は、ワークロードの管理、クラスターの構成、アプリケーションとクラスターの動作の管理に役立ちます。

このような RESTful API は便利なツールですが、独自のコントローラーを構築する場合は多くの開発が必要になります。公式の Kubernetes API クライアント (現在は .NET ライブラリが含まれています) の 1 つを活用することで、関連する開発オーバーヘッドを回避できます。公式クライアントに加えて、非公式クライアントもあります。公式バージョンが使用方法に合わない場合は、非公式バージョンに 2 つの代替 .NET 実装が含まれています。

.NET Kubernetes API クライアント ライブラリの紹介

公式の .NET クライアント ライブラリは GitHub で入手でき、Microsoft の担当者を含むオープン ソース開発者のグループによって管理されています。最新バージョンは1.6.21で、現在開発中です。 GitHub からコードをダウンロードして自分でコンパイルすることも、KubernetesClient というパッケージとして NuGet 経由でライブラリをアプリケーションに追加することもできます。インストールしたら、load client ステートメントを使用してコードにライブラリを追加します。このライブラリは .NET と .NET Core の両方をサポートしているため、クロスプラットフォーム アプリケーションや純粋な Windows コードの作成に使用できます。

インストールが完了すると、ライブラリを使用して、分散アプリケーションのイベントに応答する特定のイベント ハンドラーなど、Kubernetes 用の独自のツールを構築できるようになります。まず、Kubernetes 名前空間のイベントをリッスンすることから始めます。これは、C# の既存の非同期プログラミング機能を使用し、イベントを監視するための await を設定し、ハンドラーを結果に接続することで実現できます。 Kubernetes は、独自のイベントを監視し、カスタム Kubernetes インフラストラクチャを管理するために使用できるカスタム リソースを提供します。

Kubernetes 側では、まずコードが使用するコントローラーの適切なカスタム リソース定義を構築します。これには、API バージョンと、リソースに必要な適切なメタデータが必要になります。これらの要素は C# Kubernetes API 内のオブジェクトにマップされ、オブジェクトから読み取ることができます。最後に、リソースの仕様とステータス フィールドに独自のデータを追加し、独自のリソース クラスを管理できます。

これらの要素が揃ったら、表示するリソースのカスタム リソース定義を使用して、Kubernetes API クライアント インスタンスにそれらをラップすることでコントローラーを構築できます。イベント ハンドラーから結果を取得したら、ログの書き込みや Kubernetes インスタンスの変更など、Kubernetes 管理アプリケーションの残りの部分でそれらを使用できます。 Kubernetes コードがカスタム リソースのステータス フィールドにメッセージを書き込む場合、そのようなハンドラーは必要に応じて新しいポッドを生成できます。

Kubernetes クライアントの作成

クライアントを作成するということは、インスタンスの Kubernetes 構成データを読み込むことを意味します。これは、デフォルトのローカル kubeconfig、特定のファイル、または現在のクラスターから実行できます。構成データを構成オブジェクトとして取得したら、読み込まれた構成を使用してクライアントを作成できます。

これにより、Kubernetes API 呼び出しで使用できるクライアント オブジェクトが提供されます。ライブラリの GitHub リポジトリには、便利なサンプル コード セットがあります。これらの例をコピーして実行すると、.NET Kubernetes クライアントの使用方法、構文の理解方法、API を使用して作成、読み取り、更新、削除などの操作を処理する方法を理解するのに役立つため、試してみる価値があります。

便利な例としては、ポッド内の名前空間を一覧表示する 25 行の小さなプログラムがあります。 Kubernetes インスタンスを制御するアプリケーションを構築する場合、存在するすべての名前空間をリストすることが重要です。これらの名前空間を使用すると、API を Kubernetes インフラストラクチャの特定の部分にターゲット設定できるためです。

Kubernetes APIドキュメントの操作

.NET API ライブラリを最大限に活用するには、Kubernetes API のドキュメントを時間をかけて読むことをお勧めします。ライブラリには始めるのに十分な情報が含まれていますが、独自のコントローラーを構築するために必要な詳細を取得するには、公式ドキュメントを詳しく調べる必要があります。他の API ライブラリ実装のドキュメントを参照すると役立つ場合があります。 Java または Go の呼び出しを C# に変換するのは難しくなく、他のユーザーがこれらの API をどのように使用しているかを確認することもできます。

もう 1 つのオプションは、kubectl ドキュメントを使用して、コード内で主要な kubectl 動詞を使用する方法を確認することです。より複雑なタスクに取り組む前に、API などのツールを使用して、一般的な操作を自動化するアプリケーションを構築することから始めることをお勧めします。新しいコードを書く前に、既存の Kubernetes 拡張機能が、KEDA (Kubernetes イベント駆動型自動スケーリング) など、検討している機能をすでに実装しているかどうかを確認する必要があります。

独自のコードでKubernetes操作を自動化する

Kubernetes の管理は複雑になる可能性があるため、Kubernetes API を操作するための独自のツールを構築するのに役立つ公式ライブラリのセットが用意されていると便利です。活発なコミュニティと非公式クライアントとのやり取りから、.NET API チームが、.NET Framework と .NET Core の両方で Kubernetes で実行できるコードを構築するための実用的なフレームワークを提供するために懸命に取り組んでいることは明らかです。

クラウドネイティブ プラットフォーム上で実行される分散アプリケーションに必要な次世代の運用ツールを構築するには、このようなツールが不可欠です。使い慣れた言語、特に他のプラットフォームのライブラリにアクセスできる言語を使用することで、Azure Pipelines、GitHub、Kubernetes などのプラットフォームに接続するツールを構築し、現在手動​​で行っている作業の多くを自動化できます。

元のタイトル: Kubernetes C# クライアント ライブラリの使用方法、著者: Simon Bisson

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  エッジコンピューティングはクラウドコンピューティングを飲み込む可能性があります。プレイヤーは誰が勝つかについて独自の考えを持っています。

>>:  KubernetesとDockerをバックアップする方法

推薦する

ポーランドのワルシャワにある justhost の VPS の簡単なレビュー

justhost.asiaはどうですか?最近、justhost はポーランドのワルシャワにデータセン...

WeChatモーメンツマーケティング30日間実践ノート:WeChatクコの販売事例まとめ

9月7日から10月15日まで、WeChatモーメンツマーケティングの力を借りて、38,988元のクコ...

dedispec-$55/E3-1230V2/32g メモリ/500g SSD/100M 無制限フロー

dedispec 朗報: E3 などのマルチコア サーバーを含む特別なサーバーはすべて特別な製品であ...

SEO共有: ウェブサイトのSEOに影響を与えるいくつかのアクション

現在、多くの初心者は、セクションや機能の追加、URL構造の変更など、Webサイトの関連情報の変更に注...

エンタープライズマーケティングは、ネットワークマーケティングのボトルネック期間をどのように克服できるでしょうか?

インターネットの急速な発展に伴い、ますます多くの企業がネットワークに参加しています。オンラインマーケ...

3月の中国ドメイン名サービスプロバイダー上位25社:HiChina DNSpodの市場シェアは低下

IDC Review Network (idcps.com) は 4 月 4 日に次のように報告しま...

arebz: マルチ IP クラウド ホスト + クラスター クラウド サーバー、香港データ センター/ロサンゼルス データ センター

arebzの新製品「マルチIPクラウドサーバー」は、ハイエンドのリソースと複数のIPを備えたクラウド...

Google Cloud Platform、アプリストアへの圧力が高まる中、手数料率を引き下げ

海外メディアの報道によると、アプリストアに対する圧力が高まり、大手テクノロジー企業に対してもグーグル...

2018年に最も人気の低コスト顧客獲得方法、ミニプログラム分裂の使い方とは?

月収10万元の起業の夢を実現するミニプログラム起業支援プランミニプログラムは、10億人以上のユーザー...

アメリカは世界のスーパーコンピューティングを支配しているのか?あまり知られていない中国のチップを発見

スーパーコンピューターは、あらゆるコンピューターの中で最も高速かつ強力なコンピューターです。科学研究...

社内ページの記事を載せるのが難しい。4つの側面から理由を探ってみましょう。

ウェブサイト最適化の重要な指標として、内部ページ記事の組み込みはウェブマスターの注目の的となっていま...

企業への恐喝を理由に全国76のウェブサイトが閉鎖

新華社によると、記者が国家インターネット情報局から得た情報によると、最近、「人民ニュース​​動画ネッ...

2020年の優秀事例が発表され、天一クラウドがリストに載る

1月20日、2020年度クラウド管理・クラウドネットワーク優秀事例選定結果が正式に発表されました。今...