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年にわたる自社開発技術がクラウド上に集結
11 月 23 日から 12 月 3 日まで、friendhosting はサイト全体のすべての V...
私が stablehost について最後に言及したのは、昨年の 9 月でした。2009 年に設立され...
良いニュースです。Prometeus のインド データ センターの VPS が再入荷しました。最初の...
電子商取引サイトには独自の特徴があります。コンテンツを通じて人気を蓄積できるフォーラムや情報ポータル...
この記事では、Kubernetes RBAC 認証モデルを最初から再作成する方法と、Roles、Cl...
[[239975]]または、オンラインで買い物をすると、お金が引き落とされているのに、取引が行われて...
今日のインターネットは、合併や買収が絶えない時代、あるいは寡占の時代とも言えます。競争が激化する中で...
過去10年間で人事異動が数多くありました。年末の退職や新入社員の波を経験した後、多くの学生の手元にあ...
クリスマスの雰囲気がますます強くなり、CEEN「世界名靴淘宝顧客」プロモーションコンテスト[シーズン...
1. プログラミングコードホスティングウェブサイトから新たなオープンソース熱が生まれるソースコードは...
[要約] Sina WeiboのIPO価格は17ドルに設定され、予想IPO価格帯の最低値となった。テ...
コンテンツは王様、外部リンクは女王様です。この文が意味するのは、成功するウェブサイトには、高品質のオ...
福祉のデジタル化は2.0時代に入り、「指先」から「クラウド」へと移行しつつあります。テンセントは、2...
Ramnode はブラックフライデーに 25% オフの割引コードをリリースし、わずか 2 日後には新...
滴滴出行と快滴行のタクシー配車アプリへの補助金が意味をなさなくなると、その背後にある2つのインターネ...