アーキテクチャから導入まで、K3sの包括的な理解

アーキテクチャから導入まで、K3sの包括的な理解

Kubernetes は、開発者のラップトップ、Raspberry Pi、クラウド、データセンター、ハイブリッド クラウド、さらには複数のクラウドなど、あらゆる場所に存在します。これは、基盤となるコンピューティング、ストレージ、ネットワーク サービスを抽象化し、最新のインフラストラクチャの基盤となっています。 Kubernetes は、さまざまなインフラストラクチャ環境間の違いを隠し、マルチクラウドを実現します。

Kubernetes は、コンテナ オーケストレーションだけでなく、仮想マシン、データベース、さらには SAP Hana インスタンスなどのさまざまなリソースのオーケストレーションのためのユニバーサル コントロール プレーンにもなっています。

Kubernetes は急速に発展していますが、開発者やオペレーターにとって依然として多くの課題が生じています。重要な課題の 1 つは、エッジで Kubernetes を実行することです。エッジはクラウドやデータセンターとは大きく異なります。非常に制約のある環境の遠隔地で動作します。エッジ デバイスには、データ センターで実行される同様のデバイスのコンピューティング、ストレージ、およびネットワーク リソースのほんの一部しかありません。エッジ デバイスはクラウドへの接続が断続的であり、主にオフライン環境で動作します。これらの要因により、エッジでの Kubernetes クラスターの展開と管理が困難になります。

これを基に、業界で最も広く使用されている K8S 管理プラットフォームの作成者である Rancher Labs は、エッジ向けに高度に最適化された Kubernetes ディストリビューションである K3s をリリースしました。 K3s は Kubernetes の簡略化されたミニバージョンですが、API の一貫性と機能性には影響しません。 kubectl から Helm、Kubernetes まで、クラウド ネイティブ エコシステム内のほぼすべてのツールを K3s とシームレスに接続できます。実際、K3s は CNCF 認定の準拠 Kubernetes ディストリビューションであり、実稼働環境に導入できます。完全な Kubernetes クラスターで実行されるほぼすべてのワークロードは、K3s クラスターでも動作することが保証されています。

10 文字の単語 Kubernetes は、コミュニティでは K8S として知られています。 K3s は Kubernetes のメモリのちょうど半分なので、Rancher は新しいディストリビューションを表す 5 文字の単語を見つけ、単に K3s と名付けました。

K3sアーキテクチャの深い理解

K3sの魅力はそのシンプルさにあります。単一のバイナリ ファイル (約 100 MB) としてパッケージ化およびデプロイされるため、わずか数秒で本格的な Kubernetes クラスターを取得できます。インストール手順は、クラスター内の各ノードでスクリプトを実行するだけです。

K3s バイナリは、API サーバー、スケジューラ、コントローラなど、Kubernetes クラスターのほぼすべてのコンポーネントを実行する自己完結型のパッケージ エンティティです。デフォルトでは、すべての K3s インストールには、Kubernetes ワークロードを実行するのに十分なコントロール プレーン、kubelet、および containerd ランタイムが含まれています。もちろん、kubelet エージェントと containerd ランタイムのみを実行してポッドのライフサイクルをスケジュールおよび管理する専用のワーカーノードを追加することもできます。

従来の Kubernetes クラスターと比較すると、K3s のマスターノードとワーカーノードの間に明らかな違いはありません。ポッドは、その役割に関係なく、任意のノードでスケジュールおよび管理できます。したがって、マスターノードとワーカーノードの命名方法は、k3s クラスターには適用されません。

k3s クラスターでは、コントロール プレーン コンポーネントと kubelet を実行するノードはサーバーと呼ばれ、kubelet のみを実行するノードはエージェントと呼ばれます。サーバーとエージェントの両方に、クラスター全体のトンネルとネットワーク トラフィックを管理するためのコンテナ ランタイムと kubeproxy があります。

一般的な k3s 環境では、サーバーと複数のエージェントを実行します。インストール中にサーバー URL を渡すと、ノードはエージェントになります。そうしないと、独自のコントロール プレーンを持つ別の独立した k3s クラスターを実行することになります。

では、Rancher はどのようにして k3s のメモリ使用量を削減したのでしょうか?まず、最小限のクラスターを実行するために必須ではない Kubernetes のオプション コンポーネントを多数削除しました。次に、containerd、Flannel、CoreDNS、CNI、Traefik イングレス コントローラー、ローカル ストレージ、組み込みサービス ロード バランサー、統合ネットワーク ポリシー コントローラーなどの必要な要素を追加します。これらのコンポーネントはすべて単一のバイナリにパッケージ化され、同じプロセスで実行されます。これらに加えて、ディストリビューションは Helm チャートもすぐにサポートします。

アップストリームの Kubernetes ディストリビューションは肥大化しており、削除できるコードが多数あります。たとえば、ストレージ ボリューム プラグインやクラウド プロバイダー API によって、ディストリビューションのメモリ フットプリントが大幅に増加する可能性があります。 K3s はバイナリ サイズを最小限に抑えるためにこれらすべてを省略します。

もう 1 つの重要な違いは、クラスターの状態の管理方法です。 Kubernetes は、クラスター全体の状態を保存するために分散キー値データベース etcd に依存しています。 K3s は、etcd を、組み込みシナリオ向けの成熟したデータベースである SQLite と呼ばれる軽量データベースに置き換えます。多くのモバイル アプリケーションでは、状態を保存するために SQLite がバンドルされています。

少なくとも 3 つのノードで etcd を実行すると、Kubernetes コントロール プレーンの可用性が高まります。一方、SQLite は分散データベースではありません。コントロール プレーンの高可用性を実現するために、K3s サーバーは外部データベース エンドポイントを指すことができます。サポートされているデータベースには、etcd、MySQL、PostgreSQL などがあります。 K3s は、状態を外部データベースに効果的に委任することにより、複数のコントロール プレーン インスタンスをサポートし、クラスターの可用性を高めます。

Rancher は、DQLite と呼ばれる SQLite の分散バージョンを実験しており、最終的には K3s のデフォルトのデータ ストアになる可能性があります。

K3s の最大の強みは、「バッテリーが付属しているが交換可能」というアプローチです。たとえば、containerd ランタイムを Docker CE ランタイムに、Flannel を Calico に、ローカル ストレージを Longhorn に置き換えることができます。

K3s アーキテクチャの詳細な説明については、KubeCon North America 2019 での K3s アーキテクトの Darren Shepherd のプレゼンテーションを視聴することを強くお勧めします: https://youtu.be/-HchRyqNtkU

K3s の展開シナリオとトポロジ

K3s ディストリビューションは、AMD64、ARM64、ARMv7 を含む複数のアーキテクチャをサポートしています。一貫したインストール エクスペリエンスにより、K3s は Raspberry Pi Zero、NVIDIA Jetson Nano、Intel NUC、または Amazon EC2 a1.4xlarge インスタンスで実行できます。

マニフェストをデプロイするための同じワークフローを維持するために単一ノードの Kubernetes クラスターが必要な環境では、サーバーまたはエッジ デバイスに K3s をインストールします。これにより、既存の CI/CD パイプラインやコンテナ イメージ、Helm チャートや YAML ファイルを柔軟に使用できるようになります。

AMD64 または ARM64 アーキテクチャで実行される高可用性クラスターが必要な場合は、3 ノードの etcd クラスターをインストールし、その後に 3 つの K3s サーバーと 1 つ以上のエージェントをインストールします。これにより、本番環境レベルの環境が提供され、コントロール プレーンに HA が提供されます。

クラウドで K3s クラスターを実行する場合は、サーバーを Amazon RDS や Google Cloud SQL などのマネージド データベースにポイントして、複数のエージェントを備えた高可用性のコントロール プレーンを実行します。各 K3s サーバーは、最大の稼働時間を実現するために、異なる可用性ゾーンで実行できます。

信頼性の高い常時接続を備えたエッジ コンピューティング環境で K3s を実行する場合、サーバーをクラウドで実行し、エージェントをエッジで実行します。これにより、リモート環境でエージェントを実行しながら、クラウドで可用性が高く管理しやすいコントロール プレーンを柔軟に実行できるようになります。

最後に、エージェントをデバイス上で実行しながら、AWS Wavelength や Azure Edge Zones 環境などの 5G エッジ ロケーションに K3s HA コントロール プレーンを展開できます。このトポロジは、スマート ビルディング、スマート ファクトリー、スマート ヘルスケアのシナリオを反映しています。

<<:  企業はクラウドコンピューティングを適切に管理および制御するにはどうすればよいでしょうか?

>>:  IaaSからSaaSまで、テンセントの20年にわたる自社開発技術がクラウド上に集結

推薦する

使いやすい海外VPSとは?海外のクラウドサーバーを選ぶには?海外VPSおすすめ、格安海外クラウドサーバー10選

多くの人が気軽に海外VPSを購入しています。実は、最も本質的な問題は、どんな海外VPS(海外クラウド...

OpenWRT ルーターの設定のヒント

最近、中国でGoogleが全くアクセスできない状態が続いているため、VPN経由でインターネットにアク...

変革の次のステップ:クラウドコンピューティングホスティングが必須

企業が競争上の優位性を高めるための新しい方法や機能を模索するにつれて、企業とクラウド コンピューティ...

A5ウェブマスターネットワーク第3期ローカルウェブサイト運営研修受講生募集

コース概要インターネットの発展に伴い、ウェブサイト構築の敷居は下がり続け、さまざまなタイプのウェブサ...

低遅延、帯域幅節約、海外でのワールドカップ生中継も「中国の技術」を活用

先日終了した2022年カタールワールドカップの期間中、世界中の多くの主流ライブストリーミングプラット...

dmit - 高速香港 VPS、大規模トラフィック、固定および動的 IP、大規模帯域幅、月額料金は 39 ドルから

新興業者のdmit.ioは現在、香港VPSを主な事業として運営している。公式計画によると、将来的には...

cnドメイン名登録の開放の賛否についてコメント

2012年5月29日、cnドメイン名が個人登録に開放され、中国のインターネットに神秘的な色を添えたと...

ザッカーバーグのメタバースの8つの重要な要素

最近、著者は米国株、A株、香港株の資本市場の変化に夢中になっています。著者が見た最大のニュースは、F...

SEO はメンタリティがすべてです。適応できないなら、ただ去ってください。

SEO はかなり厄介な立場です。入札ほど速くはなく、競合他社の 72 の変更ほど速くもありません。企...

2013年全国(第1回)オンラインソフト記事マーケティングサミットフォーラムへの登録

会議広告:ソフト記事マーケティングがウェブマスターを変える ソフト記事マーケティングが市場を変えるソ...

海外メディア:米国防総省はマイクロソフトとの100億ドルのクラウドコンピューティング契約の解除を検討中

海外メディアの報道によると、アマゾンが起こした訴訟により、米国防総省はマイクロソフトとの100億ドル...

デスクトップ仮想化のセキュリティリスク

デスクトップ仮想化技術により、さまざまなアクセス方法と便利な管理モードが可能になり、デスクトップ シ...

グーグルが来年音声検索技術の開発に注力する計画は、検索エンジンの将来の方向性を示している

Computerworldによると、Googleは来年音声検索技術の開発に注力する予定だ。百度が近年...

高性能でクラウドネイティブなレイクウェアハウス統合ストレージアーキテクチャの探求

1. レイクウェアハウス統合ストレージアーキテクチャの進化1. ストレージアーキテクチャの進化ビッグ...

vpsao、安価な VPS、年間支払いはわずか 3.5 米ドル、x プロフェッショナル アカウント?

昨夜、vpsao からプロモーション メールを受け取りました。OpenVZ ベースの仮想 VPS が...