この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

Kubernetesの概念

このページでは、Rancherの動作を理解するために重要なKubernetesに関連する概念を説明します。以下の説明は、Kubernetesコンポーネントの簡略化された概要を提供します。詳細については、 Kubernetesコンポーネントに関する公式ドキュメントを参照してください。

Dockerについて

Dockerは、コンテナのパッケージングとランタイムの標準です。開発者はDockerfileからコンテナイメージを構築し、Dockerレジストリからコンテナイメージを配布できます。 Docker Hubは人気のある公共レジストリです。多くの組織もプライベートDockerレジストリを設定します。Dockerは主に個々のノード上でコンテナを管理するために使用されます。

Kubernetesについて

Kubernetesは、コンテナクラスター管理の標準です。YAMLファイルは、アプリケーションを構成するコンテナやその他のリソースを指定します。Kubernetesは、スケジューリング、スケーリング、サービス発見、ヘルスチェック、シークレット管理、設定管理などの機能を実行します。

Kubernetesクラスターとは何ですか?

クラスターは、単一のシステムとして協力して動作するコンピュータのグループです。

_Kubernetesクラスター_は、 Kubernetesコンテナオーケストレーションシステムを使用してコンテナをデプロイ、維持、スケールするクラスターであり、組織がアプリケーションの運用を自動化できるようにします。

Kubernetesクラスターにおけるノードの役割

Kubernetesクラスターの各コンピューティングリソースは、_ノード_と呼ばれます。ノードは、ベアメタルサーバ、または仮想マシンのいずれかが可能です。Kubernetesはノードを3種類に分類します:_etcd_ノード、_コントロールプレーン_ノード、および_ワーカー_ノードです。

Kubernetesクラスターは、少なくとも1つのetcd、コントロールプレーン、およびワーカーノードで構成されています。

etcdノード

Rancherは、単一ノードおよび高可用性インストールの両方でetcdをデータストアとして使用します。Kubernetesでは、etcdはクラスタの状態を保存するノードの役割も果たします。

Kubernetesクラスタの状態は etcd.に保持されます。etcdノードはetcdデータベースを実行します。

etcdデータベースコンポーネントは、クラスタの調整や状態管理など、すべてのクラスタデータのKubernetesストレージとして使用される分散型キー-バリューストアです。常にフェールオーバー用のバックアップが利用できるように、複数のノードでetcdを実行することをお勧めします。

etcdを1つのノードで実行することもできますが、etcdはクラスタの状態を更新するために、過半数のノード、すなわちクォーラムが必要です。クラスタは常にクォーラムを形成するのに十分な健全なetcdノードを含むべきです。n個のメンバーを持つクラスタの場合、クォーラムは(n/2)+1です。奇数サイズのクラスタにノードを追加すると、常にクォーラムに必要なノードの数が増加します。

小規模なクラスタには通常3つのetcdノードで十分であり、大規模なクラスタには5つのetcdノードが推奨されます。

コントロールプレーンノード

コントロールプレーンノードはKubernetes APIサーバー、スケジューラー、およびコントローラーマネージャーを実行します。これらのノードは、クラスタが設定を維持できるようにルーチンタスクを処理します。すべてのクラスタデータはetcdノードに格納されるため、コントロールプレーンノードはステートレスです。コントロールプレーンは単一ノードで実行できますが、冗長性のために3つ以上のノードを推奨します。さらに、単一ノードがコントロールプレーンとetcdの役割を共有することもできます。

ワーカーノード

ワーカーノードは次のように実行されます:

  • *Kubelets:*ノードの状態を監視し、コンテナが正常であることを確認するエージェントです。

  • *ワークロード:*アプリを保持するコンテナとポッド、ならびに他のタイプのデプロイメントです。

ワーカーノードは、必要に応じてストレージおよびネットワーキングドライバー、そしてイングレスコントローラーも実行します。ワークロードを実行するために必要なだけのワーカーノードを作成します。

Helmについて

Rancherの高可用性インストールには、KubernetesクラスターにRancherをインストールするためにHelmが使用されます。

HelmはKubernetesのためのパッケージ管理ツールです。Helmチャートは、Kubernetes YAMLマニフェストドキュメントのテンプレート構文を提供します。Helmを使用すると、静的ファイルを使用する代わりに、設定可能なデプロイメントを作成できます。独自のデプロイメントカタログを作成する方法についての詳細は、 https://helm.sh.のドキュメントを参照してください。

サービスアカウントとクラスター役割バインディングに関する詳細は、 Kubernetesのドキュメントを参照してください。