Kubernetes 許容範囲を設定する方法

Kubernetes Xu Rong Fan Tongwo She Dingsuru Fang Fa



今日は、単純で基本的な例を使用して、Kubernetes の容認について学びます。この記事は、Kubernetes での容認の基本概念と、それを Kubernetes に実装してポッドをスケジュールする方法を学習することを目的としています。容認と汚染は一緒に機能するため、Kubernetes における汚染と容認の概念全体を理解するために、汚染についても簡単に説明します。汚染と寛容の基本的な定義から始めましょう。

Kubernetes の容認とテイントとは?

Kubernetes の容認と汚染は、ポッドが正しいノードに配置されるようにするために使用されます。 Toleration は Pod 仕様で定義され、テイントは Node 仕様で定義されます。 Pod に容認を適用すると、スケジューラーは特定のノードで Pod をスケジュールできます。ただし、テイントは容認とは逆に機能します。これにより、ノードは Pod のスケジュールを拒否できます。 Pod は、一致する taint で tolerations が適用されている場合にのみ、ノードでスケジュールすることが許可されます。

Kubernetes は、ポッド、クラスター、ノード、イベントなどと連携します。場合によっては、これらを管理するために、Kubernetes は容認と汚染を必要とします。許容は、スケジューリング プロセスの実装です。 Pod は、適切に機能し、操作を実行するために必要なときに十分なリソースを確保できるようにスケジュールする必要があります。作業中に中断や混乱が生じないように、汚染に対する耐性がポッドに適用されます。







Kubernetes のテイントにより、ポッドはポッドのスケジューリングを拒否できます。 「NodeSpec」ノード仕様を使用してノードに適用されます。スケジューラーは、テイントを持つノードに Pod を配置できません。ただし、テイントが既に適用されているノードでポッドをスケジュールする必要がある場合は、それに対する容認を宣言する必要があります。



Kubernetes の容認により、テイントが既に適用されているノードでポッドをスケジュールできます。 Pod の容認は、「PodSpec」Pod 仕様を使用して適用されます。テイントが一致する Pod に容認を適用すると、スケジューラーは特定のノードで Pod を簡単にスケジュールできます。



ここで、Kubernetes のポッドに容認を実装する方法を理解するのに役立つシナリオを提示しましょう。実装セクションに進む前に、すべての前提条件を満たしていることを確認してください。





前提条件:

以下は、Kubernetes のノードに容認を実装するために必要なものです。

  • Ubuntu 20.04 または任意の Linux システムのその他の最新バージョン
  • ミニキューブ(最新版)
  • Linux/Unix システムにインストールされた仮想マシン
  • Kubectl コマンド ライン ツール

システムが前提条件のすべてのニーズを満たしていると仮定して、Kubernetes 許容範囲の設定を開始しましょう。



ステップ 1: Minikube ターミナルを起動する

最初に行う必要があるのは、ノードでの Kubernetes toleration の実装に kubectl コマンドを使用できるように、minikube ターミナルを開始することです。 minikube を起動するには、次のコマンドを使用します。

> ミニキューブを始める

このコマンドを実行すると、ターミナルに次の出力が表示されます。

ステップ 2: アクティブなノードのリストを取得する

minikube を開始したので、システムは Kubernetes のポッドに容認を設定する準備が整いました。ポッドに容認を設定する前に、ノードの数とノードの種類を確認しましょう。これを行うには、次の後続のコマンドを使用します。

> kubectl でノードを取得 -ザ =custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints [ * ] .key,TaintValue:.spec.taints [ * ] .value,TaintEffect:.spec.taints [ * ] 。効果

この手順では、Kubernetes の既定のインストールによって汚染されたすべてのノードを一覧表示します。まず、このコマンドの出力を見てみましょう。次に、ノードのリストについて説明します。

Kubernetes の既定のインストールによって作成および汚染されたノードはなく、特にノードも作成していないため、結果は になります。前の出力から、ノードがないことがわかります。したがって、最初にノードを作成してから許容値を設定します。 Kubernetes のポッドに容認を設定するには、まずクラスターにアプリをデプロイする必要があります。次のいくつかの手順では、アプリをクラスターにデプロイする方法を示します。

ステップ 3: 名前空間を作成する

まず、クラスターにアプリをデプロイするための名前空間を作成します。ここでは、次のコマンドを使用して、値が「frontend」のアプリを作成します。

> kubectl create ns フロントエンド

このコマンドは、「frontend」値を持つ名前空間を作成します。次の出力を参照してください。

ステップ 4: 名前空間に Nginx Pod をデプロイする

次に、作成した名前空間に nginx ポッドをデプロイします。次のコマンドを使用して、nginx をデプロイします。

> kubectl 実行 nginx – 画像 =nginx –名前空間フロントエンド

これにより、アプリのデプロイの仕様に容認構成がないクラスターにアプリがデプロイされます。 kubectl コマンドを使用して、名前空間フロントエンドに nginx ポッドをデプロイします。

  自動生成されたテキスト説明

ステップ 5: Pod のリストを取得する

それでは、作成されたポッドをチェックして、そのステータスを確認しましょう。指定されたコマンドは、すべてのポッドとそのステータスも一覧表示します。

> kubectl でポッドを取得 -n フロントエンド

nginx のみを作成したため、このコマンドはそのポッドとそのステータスを一覧表示する必要があります。次の出力を参照してください。

ステップ 6: Kubernetes イベントを分析する

ここで、Kubernetes のイベントを分析して、それに応じてポッドの容認を設定できるようにします。次の kubectl コマンドを使用して、Kubernetes のイベントのリストを取得します。

> kubectl get イベント -n フロントエンド

これにより、フロントエンド値に関連付けられているすべてのイベントが、タイプ、理由、オブジェクト、メッセージなどのプロパティとともに一覧表示されます。次の出力で指定されたリストを参照してください。

  自動生成されたテキスト説明

前の出力からわかるように、nginx ポッドは特定の容認でスケジュールされています。 「メッセージ」プロパティは、プロセスに沿って実行されるアクションのリストを示します。

ステップ 7: Pod のステータスを確認する

最後のステップは、以前に作成したポッドのステータスを再度チェックして、特定の正しいノードで正常にスケジュールされていることを確認することです。これを行うには、次の kubectl コマンドを使用します。

> kubectl でポッドを取得 -n フロントエンド

前の出力からわかるように、許容範囲が設定されているため、汚染されたノードで Pod を実行できるようになりました。

結論

このガイドでは、テイントと耐性について説明しました。 taints と toleration の基本的な働きについて学びました。次に、Pod に容認を実装しました。簡単な例の助けを借りて、Kubernetes のノードに容認を設定する方法を学びました。