[K8S シリーズ] k8s と k8s アーキテクチャを理解する

1.k8sとは何ですか?

Kubernetes (k8s と呼ばれます) は、クラウド ネイティブ デプロイメントをサポートするプラットフォームです。K8s は基本的に、マイクロサービスの開発とデプロイメントを簡素化するために使用されます。これは、コンテナ化されたアプリケーションのデプロイメント、拡張、管理を自動化するために使用されるオープンソースのコンテナ オーケストレーション テクノロジです。従来の Docker は実際にはコンテナ オーケストレーション テクノロジ docker-compose も提供しますが、docker-compose は 1 つのホスト上のコンテナのみを管理できますが、k8s は複数のホスト上のコンテナを管理できます。

2. アプリケーションの導入方法の変更

2.1. 従来のデプロイメント (リソースは分離されていません):

利点: シンプルで他のテクノロジーは必要ありません。

短所: アプリケーションのリソース使用量の境界を定義できない、コンピューティング リソースを合理的に割り当てることが困難、プログラムの影響を受けやすい 特定のプロセスに多数のユーザーがアクセスすると、サーバー リソースの偏在が発生し、サーバー リソースの競合が発生します。リソース。

2.2. 仮想化の導入 (1 台の物理マシン上で複数の仮想マシンを実行、過剰な仮想化):

利点: プログラム環境は相互に影響を及ぼさないため、ある程度のセキュリティが提供されます。

欠点: オペレーティング システムの追加と一部のリソースの無駄

2.3. コンテナ化された展開 (仮想化に似ていますが、オペレーティング システムを共有します):

利点: 各コンテナーに独自のファイル システム、CPU、メモリ、プロセス スペースなどが確保され、アプリケーションの実行に必要なリソースがコンテナー内にパッケージ化され、基盤となるインフラストラクチャから切り離されます。

 3. k8sの特徴

(1) 自己修復: コンテナがクラッシュすると、約 1 秒以内に新しいコンテナを迅速に起動できます。
(2) 柔軟なスケーリング: クラスタは自動的に調整可能必要に応じて、実行中のコンテナの数を調整します
(3) サービス検出: サービスは、自動検出を通じて依存するサービスを見つけることができます
(4) 負荷分散: サービスが複数のコンテナを起動すると、リクエストの負荷分散を自動的に実現できます
(5) バージョンのロールバック: 新しくリリースされたプログラムのバージョンに問題が見つかった場合は、すぐに元のバージョンにロールバックできます。バージョン
(6) ストレージ オーケストレーション: コンテナ自体のニーズに応じてストレージ ボリュームを自動的に作成できます

4. コンテナ管理アーキテクチャのアップグレード

4.1.ボーグアーキテクチャ

4.2.kubernetアーキテクチャ

5. K8S アーキテクチャの解釈

5.1.マスターノード: クラスターのコントロールプレーンであり、クラスターの意思決定 (管理) を担当します。

 (1) ApiServer: リソース操作の唯一の入り口であり、ユーザーが入力したコマンドを受け取り、認証、認可、API の登録、検出などのメカニズムを提供します。

  (2) スケジューラ: クラスター リソースのスケジューリングと、事前に決定されたスケジューリング ポリシーに従って、対応するノード ノードへの Pod のスケジューリングを担当します。

  (3) ControllerManager: プログラムのデプロイメントの手配、障害の検出、自動拡張、ローリングアップデートなど、クラスターのステータスを維持する責任を負います。

(4) etcd: クラスター内のさまざまなリソース オブジェクトに関する情報を保存します。

5.2.node ノード: クラスターのデータプレーン。コンテナーに動作環境 (作業) を提供する役割を果たします。

(1) Kubelet: コンテナのライフサイクル、ストレージ、ネットワークの保守を担当します。

(2) KubeProxy: クラスター内でのサービス検出と負荷分散の提供を担当します。

(3) Docker: ノード上のコンテナのさまざまな操作を担当し、コンテナの実行環境として機能します。

(4) Pod: 1 つのノードに複数の Pod をデプロイでき、1 つの Pod に複数のコンテナをデプロイできます。

おすすめ

転載: blog.csdn.net/m0_73901077/article/details/134902458