k8sとDockerの関係についての簡単な説明

k8sとDockerの関係についての簡単な説明

最近、プロジェクトでは kubernetes (以下、k8s と表記、k と s の間には 8 つの文字があります) を使用しています。これまでも簡単に使ってきたのですが、最近 k8s には多くの概念があり、コマンドだけでは不十分であることがわかったので、これを機会に k8s をより包括的に理解して使用できるように何か書いてみたいと思います。この記事の目的は、k8s の概念をより包括的に理解し、仕事でよく使われる操作を学ぶことです。全体的な焦点は、原則と応用に置かれています。 k8s を正式に始める前に、k8s と Docker の関係を確認し、仮想化と展開方法の観点からコンテナを使用する理由を説明します。それでは始めましょう。

現在、Kubernetes と Docker のテクノロジーの背景と要件を比較する記事はありません。この記事では、最も純粋な公式定義の観点から、2 つのテクノロジーの背景と従来のテクノロジーとの比較について説明します。

簡単な紹介:
公式定義 1: Docker は、開発者がアプリケーションと依存関係をポータブル コンテナーにパッケージ化し、仮想化も可能な一般的な Linux マシンに公開できるようにするオープン ソースのアプリケーション コンテナー エンジンです。

公式定義2:k8sは、コンテナクラスタの自動展開、自動拡張・縮小、メンテナンスなどの機能を実現できるオープンソースのコンテナクラスタ管理システムです。

従来の技術との比較:
次に、2つの古典的な絵を見てみましょう。

1. 仮想化の観点から:

図1

上の図は、Docker コンテナ (k8s で管理できるもの) と従来の仮想化方法の違いを示しています。従来の仮想化技術では、物理ハードウェアを複数のハードウェア セットに仮想化した後、各ハードウェア セットにオペレーティング システムを展開し、これらのオペレーティング システム上で対応するアプリケーションを実行する必要があります。 Docker コンテナ内のアプリケーション プロセスは、ホスト マシン (実際の物理マシン) のカーネル上で直接実行されます。Docker エンジンは、いくつかの独立したアプリケーションとそれぞれの依存関係をパッケージ化し、仮想化されていないホスト ハードウェア上で独立して直接実行します。同時に、各コンテナには独自のカーネルがないため、従来の仮想マシンよりも明らかに軽量です。 各クラスターには複数のノードがあり、各ノードを管理できます。これらのアプリケーションが配置されている小さな動作環境(コンテナ)を管理するために、私たちの Kubernetes が生まれました。

2. 展開の観点から

図2

この図を上記の Docker の図と混同しないように注意してください。図 1 は、仮想化の観点からアプリケーションに必要な動作環境を提供するために必要な仮想化操作を示しています (つまり、従来: オペレーティング システムがインストールされた仮想化された仮想マシン、Docker: コンテナー エンジンによって管理されるコンテナー)。

図 2 は、実際のアプリケーションがこれらの特定のオペレーティング環境にデプロイされる状況を示しています。従来の方法は、すべてのアプリケーションを同じ物理マシン ノードに直接デプロイすることです。この方法では、各アプリケーションの依存関係はまったく同じであり、アプリケーションを分離することはできません。もちろん、分離のために、仮想マシンを作成してその中にアプリケーションをデプロイすることもできます (図 1 の上部に示すように)。ただし、これは面倒すぎるため、仮想マシンよりも軽量な Docker テクノロジが登場しました。現在では、コンテナー テクノロジをデプロイすることでアプリケーションをデプロイしており、すべてのコンテナーはコンテナー エンジン上で実行できます。仮想マシンは面倒すぎると思うので Docker を使いたいのであれば、ぜひ使ってみてください。しかし、どのように使うのでしょうか?一つずつ手動で作成しますか?もちろんそうではありませんでした。そこで Kubernetes テクノロジーが登場し、Kubernetes に代表されるコンテナ クラスター管理システムが登場する時が来ました。

簡単に言えば、Kubernetes を使用して Docker クラスターを管理します。つまり、Docker は Kubernetes 内で使用される低レベルのコンポーネントと見なすことができます。さらに、kubernetes は Docker だけでなく、別のコンテナ技術である Rocket もサポートしています。この記事の簡単な説明が、両方についての理解と知識を与えてくれることを願っています。

k8sとDockerの関係について簡単に説明したこの記事はこれで終わりです。k8sとDockerの関係についてさらに詳しく知りたい方は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker+K8S クラスタ環境構築と分散アプリケーション展開
  • Dockerコンテナのk8sデプロイメントの実装
  • K8S クラスターを構築し、Hyper-V で Docker をインストールする方法
  • Docker 学習ノート k8s デプロイ方法

<<:  CSS スティッキーフッター実装コード

>>:  ハイパーリンクに関するいくつかの質問

推薦する

CSS マージンの重複とその防止方法

2 つ以上のブロックレベル ボックスの垂直に隣接するエッジが重なり合っています。結果として得られる境...

ウェブデザイナーが持つべき資質と能力

Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...

Ubuntuのバックアップ方法(4種類)のまとめ

方法1:リスピンを使用するには、次の手順に従ってください。 sudo add-apt-reposit...

コンパイル/サーバーなしでブラウザにCommonJSモジュールを実装する

目次導入1. one-click.jsとは2. パッケージングツールはどのように機能しますか? 3....

ログインフォームを実装するためのJavaScript

この記事の例では、ログインフォームを実装するためのJavaScriptの具体的なコードを参考までに共...

MySQL 8.0.22 winx64 のインストールと設定のグラフィックチュートリアル

mysql 8.0.22 winx64のインストールと設定のグラフィックチュートリアルは参考までに、...

Linux seqコマンドの使い方

1. コマンドの紹介seq (シーケンス) コマンドは、指定されたステップ サイズに従って、開始番号...

初心者向けのMySQLデータベースとテーブルDDLの作成と操作の学習

目次1. データベースを操作する1.1 データベースを作成する1.2 データベースをクエリする1.3...

MySQL をクリーンにアンインストールする方法 (テスト済みで効果的)

Mysql を完全にアンインストールするにはどうすればいいですか?以下の手順に従って実行してくださ...

クールなIoT大画面機能を実現するHTML+VUEページング

効果デモ.html <html> <ヘッド> <メタ文字セット=&qu...

モバイルレイアウトにvw+remを使用する方法

まだ rem フレキシブルレイアウトを使用していますか?圧縮された js コードの大きなセクションを...

MySQLインデックスの基礎となるデータ構造の詳細

目次1. インデックスの種類1. B+ツリー2. MyISAM と InnoDB の B+ ツリー ...

HTML ページはダーク モードの実装をサポートします

2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...

HTMLヘッダータグの使用に関する詳細な説明

HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...

Nginx における accept lock の仕組みと実装の詳細な説明

序文nginx はマルチプロセス モデルを使用します。リクエストが届くと、システムはプロセスをロック...