Member-only story

ディザスタリカバリを内蔵したクロスクラウドKubernetesクラスタの導入方法(前半)

gavin.zhou
14 min readNov 25, 2021

--

この記事では、単一のKubernetesクラスターをハイブリッドクラウド環境にまたがって実行し、障害に強い環境を作る方法について説明します。これが必要な理由とMicroK8s、WireGuard、Netmakerを使ってこのアーキテクチャを実装する方法を説明します。さて、準備はいいですか?長い記事なので、前半と後半に分けて投稿します。今回は前半です。

Kubernetesは難しいですが、それ以上に難しいことがあります。マルチクラウド、マルチクラスターのKubernetesは、Kubernetesを本番で運用する際に必然的に扱うべきものになります。

通常、本番環境では最低でも2つのクラスターを導入します。1つは本番環境として、もう1つはフェイルオーバー(ディザスタリカバリ)用としてです。これを見たら、あなたは疑問に思うかもしれません。

「なぜディザスタリカバリに対応するために2つのクラスターが必要なのでしょうか?Kubernetesは分散型アーキテクチャだと思っていましたけど…」

正解です! Kubernetesは分散型です。1つのデータセンター/リージョンの中では分散しています。それ以外のリージョンでは…そうではありません。

一般的に、「高可用」インフラを構築するためには、2つのクラスター(またはそれ以上)を導入することになります。さらに、クラスター間でアプリケーションを移動、またはコピーするための自動化ツールや、クラスターがダウンしたときにフェイルオーバーを処理するための何らかの仕組みを導入しなければなりません。面白そうでしょう?

今回は、ディザスタリカバリ(およびハイブリッド・ワークロード)をより簡単に処理する方法をご紹介します。この方法は、追加のツールが不要で、1つのクラスターで実行できます。

The Distributed Cluster — MicroK8s and Netmaker

1つのクラスターを複数の環境で使用するには、通常3つの制限があります。

1. Etcd:クラスタのブレインであり、レイテンシ耐性はありません。地理的に離れた環境で運用するのには問題があります。

2. ネットワーク:クラスタノードは、お互いに直接かつ安全に通信できないといけません。

3. レイテンシ:エンタープライズ・アプリケーションでは、高いレイテンシーは受け入れられません。マイクロサービスベースのアプリケーションが複数の環境にまたがっている場合、最適なパフォーマンスが発揮されない可能性があります。

この3つの問題をMicroK8sとNetmakerで解決することができます:

1…

--

--

No responses yet