|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
Kubernetesのワークロードとポッド
Kubernetesでは、ポッドとワークロードという2つの基本的な構造を使用して、複雑なコンテナ化アプリケーションを構築できます。アプリケーションを構築したら、同じクラスター内またはインターネット上でアクセスできるように、3つ目の構造であるサービスを使用して公開できます。
ポッド
ポッドは、ネットワーク名前空間とストレージボリュームを共有する1つ以上のコンテナです。ほとんどのポッドには1つのコンテナしかありません。したがって、_ポッド_について話すとき、この用語はしばしば_コンテナ_と同義です。ポッドは、サービスを実装する同じポッドの複数のインスタンスを持つことによって、コンテナ—と同じ方法でスケールします。通常、ポッドはワークロードによってスケールされ、管理されます。
ワークロード
_ワークロード_は、ポッドのデプロイメントルールを設定するオブジェクトです。これらのルールに基づいて、Kubernetesはデプロイメントを実行し、アプリケーションの現在の状態でワークロードを更新します。 ワークロードを使用すると、アプリケーションのスケジューリング、スケーリング、およびアップグレードのルールを定義できます。
ワークロードタイプ
Kubernetesはワークロードを異なるタイプに分けます。Kubernetesがサポートする最も一般的なタイプは次のとおりです:
-
_デプロイメント_は、ステートレスアプリケーション(すなわち、ワークロードの状態を維持する必要がない場合)に最適です。デプロイメントワークロードによって管理されるポッドは、独立して使い捨てとして扱われます。ポッドが中断に遭遇した場合、Kubernetesはそれを削除し、再作成します。例として、Nginxウェブサーバーがあります。
-
_ステートフルセット_は、デプロイメントとは対照的に、アプリケーションがそのアイデンティティを維持し、データを保存する必要がある場合に最適です。例えば、ストレージ用のデータベースが必要とされるアプリケーションとして、Zookeeper—のようなものがあります。
-
_デーモンセット_は、クラスター内のすべてのノードがポッドのコピーを実行することを保証します。ログを収集したり、ノードのパフォーマンスを監視したりするユースケースでは、このデーモンのようなワークロードが最適です。
-
_ジョブ_は、1つ以上のポッドを起動し、指定された数のポッドが正常に終了することを保証します。ジョブは、進行中の望ましいアプリケーション状態を管理するのではなく、有限のタスクを完了するために最適です。
-
_cronジョブ_は、ジョブに似ています。ただし、cronジョブは、cronベースのスケジュールで完了します。
サービス
多くのユースケースでは、ワークロードは次のいずれかである必要があります:
-
クラスター内の他のワークロードによってアクセスされる。
-
外部に公開される。
これらの目標を達成するには、_サービス_を作成します。サービスは、 セレクター/ラベルアプローチ(コードサンプルを参照)を使用して、基盤となるワークロードのポッドにマッピングされます。Rancher UIは、選択したサービスポートとタイプを使用して、ワークロードとともにサービスを自動的に作成することにより、このマッピングプロセスを簡素化します。
サービス種別
Rancherには、利用可能なサービスのいくつかのタイプがあります。以下の説明は、 Kubernetesドキュメントからの情報です。
-
ClusterIP
クラスタ内部のIP上でサービスを公開します。この値を選択すると、サービスはクラスタ内からのみアクセス可能になります。これがデフォルトの`ServiceType`です。
-
NodePort
各ノードのIP上の静的ポート(
NodePort)でサービスを公開します。ClusterIP`サービスがルーティングする`NodePort`サービスが自動的に作成されます。`NodePort`をリクエストすることで、クラスタ外から<NodeIP>:<NodePort>`サービスに連絡できるようになります。 -
LoadBalancer
クラウドプロバイダーのロードバランサーを使用してサービスを外部に公開します。外部ロードバランサーがルーティングする`NodePort`および`ClusterIP`サービスが自動的に作成されます。