このセクションでは、外部データベースと高可用性K3sクラスタをインストールする方法について説明します。
シングルサーバークラスタは、ユースケースの多様性を満たすことができますが、Kubernetes制御プレーンの稼働時間が重要な環境のために、あなたは、HA構成でK3sを実行することができます。HA K3sクラスタはで構成されています。
- 二つ以上のサーバノード KubernetesのAPIを提供し、他のコントロールプレーンサービスを実行します
- ゼロ以上のエージェント・ノードアプリやサービスを実行するために指定されています
- 外部データストア(単一サーバーのセットアップで使用埋め込まSQLiteのデータストアとは対照的に)
- 固定された登録アドレスサーバノードの前に配置されているエージェントノードがクラスタに登録することを可能にします
これらのコンポーネントがどのように連携するかの詳細については、を参照してくださいアーキテクチャセクション。
エージェントは、固定された登録アドレスを通じて登録しますが、登録後、彼らは、サーバー・ノードの1つに直接接続を確立します。これは、WebSocketの接続によって開始されk3s agent
、プロセス、それはエージェント・プロセスの一部として実行しているクライアント側の負荷分散装置によって維持されています。
インストールの概要
HAクラスタを設定するには、次の手順が必要です。
外部データストアを作成します。1.
あなたは、最初のクラスタのための外部データストアを作成する必要があります。参照してください。クラスタのデータストアオプションの詳細は、マニュアルを参照して。
2.起動サーバーノード
K3sは、このHA構成のための2つ以上のサーバ・ノードが必要です。参照ノードの要件最低限のマシンの要件のためのガイドを。
実行している場合k3s server
、これらのノードでコマンドを、あなたが設定する必要がありdatastore-endpoint
K3sは、外部のデータストアに接続する方法を知っているようにパラメータを。
たとえば、次のようなコマンドは、外部のデータストアとしてMySQLデータベースとK3sサーバーをインストールするために使用することができます。
curl -sfL https://get.k3s.io | sh -s - server \
--datastore-endpoint="mysql://username:password@tcp(hostname:3306)/database-name"
データベースタイプに基づいてデータストアのエンドポイントフォーマットが異なります。詳細については、上のセクションを参照してくださいデータストアのエンドポイント・フォーマット。
サーバー・ノードを起動するときのconfigure TLS証明書を、参照データストアの設定ガイド。
注:単一サーバのインストールに利用できる同じインストールオプションは、高可用性のインストールのために用意されています。詳細については、インストールおよび設定オプションのマニュアルを参照して。
デフォルトでは、サーバー・ノードは、スケジュールになりますので、あなたのワークロードは、それらの上に立ち上げ得ることができます。あなたは何のユーザーのワークロードが実行されません専用の制御プレーンを持っているしたい場合は、は汚染さを使用することができます。node-taint
パラメータを使用すると、たとえば、は汚染さでノードを構成することができます--node-taint k3s-controlplane=true:NoExecute
。
あなたが進水したらk3s server
、すべてのサーバー・ノード上のプロセスを、クラスタが適切に来ていることを確認してくださいk3s kubectl get nodes
。あなたはレディ状態でサーバー・ノードが表示されます。
3.設定fixed登録住所
エージェント・ノードは、反対登録するURLを必要としています。これは、IPまたはサーバ・ノードのいずれかのホスト名とすることができるが、多くの場合、それらは、時間の経過とともに変化することがあります。あなたはサポートグループをスケーリングすることをクラウドでクラスタを実行している場合たとえば、あなたはノードが作成され、破壊させるため、サーバーノードの初期設定と異なるIPアドレスを持つ、時間をかけて上下サーバノードグループをスケーリングすることができます。したがって、あなたは、時間の経過とともに変化しません、サーバー・ノードの前に安定したエンドポイントを持っている必要があります。:このエンドポイントは、次のような、任意の数のアプローチを使用して設定することができます
- レイヤ4(TCP)ロードバランサ
- ラウンドロビンDNS
- 仮想または弾性IPアドレス
このエンドポイントはまたKubernetesのAPIにアクセスするために使用することができます。だから、例えば、あなたの変更ができkubeconfigの代わりに、特定のノードのことを指すようにファイルを。
4.オプション:エージェントノードに参加
K3sサーバノードは、デフォルトでスケジュールされているので、HA K3sサーバクラスタのノードの最小数は、2つのサーバー・ノードとゼロエージェントノードです。アプリやサービスを実行するために、指定されたノードを追加するには、クラスタへのエージェントノードに参加します。
HAクラスタ内のエージェント・ノードを結合する単一のサーバクラスタにエージェント・ノードを結合と同じです。あなただけのエージェントはに登録し、それを使用する必要があるトークンすべきURLを指定する必要があります。
K3S_TOKEN=SECRET k3s agent --server https://fixed-registration-address:6443