Kubernetes とは何ですか?Borg システムは、Google 内で広く使用されているコンテナ管理システムです。初期には、セキュリティ分離を実現するために Chroot Jail が使用され、後に Namespace が使用されました。 CGroup を使用してリソースの分離を実現しました。 Google が Kubernetes のオープンソース バージョンをリリースしたのはなぜですか?私の個人的な理解は次のとおりです。
Kubernetes には次の特性があります。
Kubernetes を使用すると、顧客のニーズに迅速かつ効率的に対応できます。
Kubernetes は宣言型システムです。宣言型システムと命令型システムには本質的な違いがあります。いわゆる宣言型システムは、何をするか、つまり、どのような期待が達成されるかを伝え、それをどのように達成するかがシステムの業務であることに重点を置いています。一方、命令型システムでは、特定の目標またはタスクが対応する規則または手順に従って達成されることが求められ、その達成方法に重点が置かれます。 命令形は「どのように」を強調します。タスクを段階的に完了する方法をコンピューターに指示する必要があります。このシナリオでは、コンピューターは「知性」を持たず、タスクを機械的に完了します。タスクの結果に関しては、プログラマーのレベルによって異なります。 宣言的なスタイルでは、「何」が強調されます。コンピュータに何を望んでいるかを伝えるだけで、コンピュータが自動的にそれを実行します。この時点で、コンピューターはある程度の「知能」を備えています。もちろん、宣言型スタイルがすべてのニーズを満たすとは限りません。 日常業務では、命令型プログラミングがより一般的です。このタイプのプログラミングは実装が簡単で、開発には特定の手順のみが必要です。ただし、特定の状況では、宣言型プログラミングの方が命令型プログラミングよりも便利です。実際、ほとんどの宣言型言語は、特定のタスクのためのドメイン固有言語、つまり DSL です。 最も一般的な宣言型言語は SQL です。必要な結果セットをコンピューターに伝えるだけで、データベースが結果セットを取得して結果を返す実行パスの設計を支援します。 Kubernetes は宣言型システムです。 Kubernetes を使用する場合、ユーザーは A->B->C などのワークフローを定義する必要はありません。代わりに、期待される状態を直接記述することができ、Kubernetes はユーザーがその状態を実現できるように支援します。ユーザーは、この状態をどのように達成するかについて心配する必要はありません。この設計により、Kubernetes は使いやすくなり、より堅牢になり、柔軟性とスケーラビリティも向上します。 Kubernetes アーキテクチャKubernetes は全体として、次のようにマスター スレーブ アーキテクチャになっています。 で:
上記のアーキテクチャは論理アーキテクチャです。実際の運用アプリケーションでは、高可用性を実現するために、アーキテクチャがそれに応じて調整されます。調整対象はマスターノードであり、次のようになります。 主な変更点は次のとおりです。 (1)マスターノードを単一ノードから複数ノードに変更し、負荷分散のためkube-apiserverの前にロードバランサーを追加しました。 LB を介して通信されるその他のコンポーネント。 (2)マスターノードの障害によるetcdの影響を受けないように、etcdとマスターノードを分離する Kubernetes アーキテクチャの設計原則は次のとおりです。
Kubernetesの重要なコンポーネント上記では、Kubernetes の全体的なアーキテクチャを紹介し、各コンポーネントの機能を簡単に紹介しましたが、それらの間の具体的な関係については詳しく説明していません。それでは、コンポーネントとそれらがどのように連携するかを見てみましょう。 (1)kubectlクライアントはまずCLIコマンドをRESTful API呼び出しに変換し、それをkube-apiserverに送信します。 (2)認証、認可、アクセス検証後、kube-apiserverはタスクメタデータをetcdに保存します。次に、kube-scheduler はタスクをスケジュールし、スケジュール結果を kube-apiserver に返します。 (3)kube-schedulerがスケジューリングに適したターゲットノードを返すと、kube-apiserverはタスクのノード情報をetcdに保存し、タスクを作成します。 (4)この時点で、ターゲットノードのkubeletはapiserverをリッスンしています。このノードに新しいタスクをスケジュールする必要があることを検出すると、kubelet はローカル ランタイムを通じてタスク コンテナを作成し、ジョブを実行します。 (5)その後、kubeletはタスクステータスなどの情報をapiserverに返し、etcdに保存します。 (6)kube-proxyはapiserverも監視します。ネットワーク ポリシー関連の操作がある場合、対応する iptables または ipvs ルールがローカル マシンに作成されます。 (7)タスクが実行されると、コントロールマネージャが有効になり、タスクが期待どおりの状態を維持することが保証されます。 主な構成要素は次のとおりです。
その他Etcd は、一貫性と高可用性を兼ね備えたキー値ストレージです。サービス検出、共有構成、一貫性の保証に使用できます。 Kubernetes では、Etcd は Kubernetes のすべての API オブジェクトを保存する唯一のストレージです。 実稼働レベルの Kubernetes では、etcd は通常、クラスターとして存在します。セキュリティ上の理由から、API サーバーからのみアクセスできます。 API サーバーAPI サーバーは Kubernetes の最も重要なコア コンポーネントの 1 つであり、次の機能を提供します。
コントローラーマネージャーKubernetes はバックグラウンドでさまざまなコントローラー プロセスを実行し、サービス構成が変更されると (たとえば、ポッドが実行されるイメージを置き換えたり、構成 yaml ファイル内のパラメーターを変更したりする場合)、コントローラーはその変更を検出し、新しい望ましい状態に向けて作業を開始します。 論理的には、各コントローラーは個別のプロセスですが、複雑さを軽減するために、すべて同じ実行可能ファイルにコンパイルされ、単一のプロセスで実行されます。コントローラーには以下が含まれます。
以下は、デプロイメント コントローラーとレプリカセット コントローラーのワークフローです。 スケジューラkube-scheduler は、実行中のノードを指定していない新しく作成された Pod を監視し、Pod を実行するノードを決定する役割を担います。たとえば、アプリケーションに 1 GB のメモリと 2 つの CPU コアが必要な場合、そのアプリケーションのポッドは少なくともそれらのリソースを持つノードにスケジュールされます。スケジューラは、ポッドをスケジュールする必要があるたびに実行されます。スケジューラは、使用可能なリソースの合計と、各ノード上の既存のワークロードに割り当てられているリソースを認識する必要があります。スケジュールの決定では、個々のポッドとポッドのコレクションのリソース要件、ハードウェア/ソフトウェア/ポリシーの制約、アフィニティとアンチアフィニティの仕様、データの局所性、ワークロード間の干渉、および期限が考慮されます。 スケジュールは次の 3 つの段階に分かれています。
クベレットKubelet は各ノードのコア コンポーネントの 1 つであり、ノードのリソース オブジェクトの管理を担当します。
Pod マニフェストは、ローカル ファイル ディレクトリ、指定された HTTP サーバー、API サーバーなどから取得できます。 Kubeletはコンテナランタイム、ネットワーク、ストレージをCRI、CNI、CSIに抽象化します。
Kube プロキシkube-proxy は、クラスター内のすべてのノードで実行され、Kubernetes サービス コンセプトの一部を実装するネットワーク プロキシです。個々のホストのサブネット化を処理し、サービスを外部に公開するために使用されます。クラスター内のさまざまな分離されたネットワークにわたって、リクエストを適切なポッド/コンテナに転送します。 kube-proxy はノード上のネットワーク ルールを管理します。これらのネットワーク ルールにより、クラスター内外のネットワーク セッションから Pod とのネットワーク通信が可能になります。オペレーティング システムがパケット フィルタリング レイヤーを提供し、それが利用可能な場合、kube-proxy はそれを介してネットワーク ルールを実装します。それ以外の場合、kube-proxy はトラフィック自体のみを転送します。 その他のコンポーネント上記で紹介したコンポーネントがクラスターのフレームワークとなります。フレームワークだけでは不十分です。さらに強力にするには、サードパーティのコンポーネントも必要です。
|
>>: IDC: アリババクラウドは中国のビッグデータプラットフォームパブリッククラウド市場で引き続きトップ
世界的に有名なデータセンターである Zenlayer は、韓国のソウルにも独自のデータセンターを構え...
ICO アイコンは、アイコン ファイルの略語です。Web サイト管理者にとって、Web サイトの I...
動画業界のライセンスは多種多様で、企業側はライセンスの違いに戸惑うほどです。各省庁や協会が数日おきに...
中国マーチャントであるanyhkは、香港(HKBN、HKT)と台湾HinetのNAT VPS、および...
インドVPSの推奨事項インドは東南アジアの大きな国で、人口も大きいです。インドの VPS は市場が広...
みなさんこんにちは。私はHongtu Internetです。最近、私たちのクライアントのウェブサイト...
8月末、盛拓メディアは、自動車とITという2つの事業分野に応じて、ウェブサイトグループを2つの独立し...
分散システム分散システムは、オリジナルの CORBA から EJB、Web、SOA へ、クラスターか...
Hostigation は創立 10 周年を記念して、これまでにないほどコスト効率の高い特別価格の ...
月収10万元の起業の夢を実現するミニプログラム起業支援プラン検索エンジンは各ページに一定の重み値を与...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますA5ベンチ...
dedipath は、1Gbps の帯域幅、無制限のトラフィック、ロサンゼルスとニューヨークの 2 ...
隠しリンクについては、皆さんもよくご存知だと思います。しかし、最近、私は多くの新しいウェブマスターの...
losangelesvps は、HostCat にカスタマイズされた特別割引を導入しました: (1)...
オンラインショッピングは、より簡単、快適、便利になってきています。人々の買い物の仕方は、永遠に変わっ...