Kubernetes で CRD を作成する方法

Kubernetes De Crd Wo Zuo Chengsuru Fang Fa



この記事では、Kubernetes で CRD を作成する方法を学びましょう。このチュートリアルでは、Kubernetes で CRD を作成し、CRD のインスタンス作成要求を処理するために使用される Kubernetes コントローラーを作成する方法について説明します。 Kubernetes で CRD を処理するコントローラー オブジェクトと共に CRD を作成する作業を完全に理解できるように、例を使用して各手順を説明します。それでは始めましょう!

Kubernetes の CRD とは?

CRD は、別の API サーバーを追加せずに新しいリソースに使用されるカスタム リソース定義の略です。 CRD を操作するために、API アグリゲーションを理解する必要はありません。これは、Kubernetes 1.7 で導入された非常に強力な機能であり、さまざまな組み込みリソースと API オブジェクトが同梱されています。選択したスキーマと名前でカスタム リソースを定義できます。

CRD は、カスタム リソース定義を利用することで、デフォルトのインストールを超えて Kubernetes API の機能を拡張します。 CRD を利用することで、単なるコンテナー以上のものを処理できるように Kubernetes を導くことができます。独自のカスタム リソースを作成し、カスタム コントローラーを使用して宣言型にすることができます。ここで、カスタム リソース定義を作成し、CRD を制御するカスタム コントローラーを設計する方法を学びましょう。そして、CDR を削除して Kubernetes への影響を確認する方法。







前提条件

CRD の作成と削除の手順に進む前に、システムが前提条件のすべてのニーズを満たしていることを確認しましょう。



  • Ubuntu 20.04 またはその他の最新バージョンで、Linux/Unix 環境が動作します。
  • Kubernetes クラスター。
  • kubectl CLI は、kubectl コマンド、クラスター通信を使用し、開発環境を管理します。
  • クラスターを作成するための minikube またはその他の Kubernetes プレイグラウンド

これらのツールをまだインストールしていない場合は、次のセクションに進む前にインストールしてください。



次に、Kubernetes で CRD を作成する方法のステップバイステップ ガイドに進みます。





ステップ 1: Kubernetes を開始する

CDR を使用するには、コントロール プレーン ホストとして機能していない少なくとも 2 つの Kubernetes ノードを含むクラスターが必要です。 minikube を使用してクラスターを作成および使用しています。したがって、以下のコマンドを使用して minikube を起動します。

> ミニキューブを始める

このコマンドを実行すると、以下のような出力が得られます。



ステップ # 2: 構成ファイルを開くか作成する

minikube が起動して実行されたので、構成ファイルを開きます。 「nano」コマンドは、構成ファイルを開くために使用されます。 nano コマンドの横にファイル名を指定し、その後にファイル拡張子を入力して、Enter キーを押すだけです。ここに、CRD を作成するための構成の詳細を含む「red.yaml」ファイルがあります。目的のファイルを開くために使用できる完全な nano コマンドを次に示します。

> ナノ red.yaml

このコマンドを実行すると、ターミナルで次のファイルが開きます。

ステップ 3: エンドポイント リソースを作成する

構成リソースは red.yaml に保存されています。これを使用して、名前空間を持つ新しい RESTful API エンドポイントを作成します。 Kubectl には、構成ファイルからエンドポイントを作成するための「apply」コマンドが用意されています。新しい名前空間付き RESTful API を作成するために使用される完全な「適用」コマンドを次に示します。

> kubectl 適用 -f red.yaml

このコマンドで作成されたエンドポイントは、CRD を制御するカスタム オブジェクトの作成に使用されます。名前空間付きリソースに対して次の出力が生成されます。

ステップ 4: CRD を制御するカスタム オブジェクトを作成する

CRD は、カスタム オブジェクトによって制御されます。カスタム リソース定義が作成されたら、それらを作成できます。カスタム オブジェクトには、任意の JSON のカスタム フィールドが含まれます。カスタム オブジェクトを作成するには、YAML 構成ファイルが必要です。 「nano」コマンドを使用して、YAML 構成ファイルを作成します。

> ナノ ct.yaml

必要なフィールドを特定の詳細と共に YAML ファイルに保存します。サンプル構成の詳細を以下のサンプルに示します。

次に、同じ YAML ファイルを使用してカスタム オブジェクトを作成します。 「apply」コマンドを使用して、指定された YAML ファイルからカスタム オブジェクトを作成します。以下に示す完全なコマンドを参照してください。

> kubectl 適用 -f ct.yaml

このコマンドが正常に実行されると、次の出力が得られます。

ステップ 5: カスタム オブジェクトを使用して CRD を管理する

カスタム オブジェクトは、CRD の管理に使用されます。それでは、最近作成したカスタム オブジェクトを利用して、作成済みの CRD を管理する方法を学びましょう。ここでは、「get」コマンドを使用して、カスタム オブジェクトを含む詳細を確認します。以下のコード スニペットにあるコマンドを参照してください。

> kubectl で crontab を取得

このコマンドを minikube ターミナルで実行すると、次の出力が生成されます。

YAML ファイルに含まれる生データを確認する場合は、次のコマンドを使用できます。

> kubectl は ct を取得します -ザ yaml

これにより、以下のサンプルのように YAML ファイルの生データが表示されます。

これにより、CRD とカスタム オブジェクトを作成して、作成した CRD を管理および制御できます。ここで、作成した CRD を削除する場合は、以下の手順に従います。

Kubernetes で作成された CRD を削除するには?

kubectl コマンドを使用すると、Kubernetes の CRD を削除できます。 Kubernetes で CRD を削除しようとすると、それに関連付けられているカスタム リソースも削除されます。 kubectl は、任意のリソースを削除するための「delete」コマンドを提供します。以下のコマンドは、上記の手順で作成した CRD を削除するために使用されます。

> kubectl 削除 -f red.yaml

このコマンドが正常に実行されると、次の結果が得られます。

CRD とそれに関連付けられたカスタム オブジェクトが削除されたので、アクセスしようとすると、サーバーからエラーが返されます。名前空間付きの RESTful API にアクセスしようとしている以下のコマンドを参照してください。

> kubeclt は crontab を取得します

「crontabs」が削除されているため、サーバーはこのアクションに対してエラーを発生させます。以下に示すこのコマンドの出力を参照してください。

結論

この記事では、カスタム リソース定義を作成する方法、CRD を制御するカスタム オブジェクトを作成する方法、および Kubernetes から CRD を削除する方法について簡単に説明しました。サンプルの例を使用して、プロセスを簡単かつ迅速に理解できるように各ステップを示しました。