ホームページ > 運用・保守 > Docker > k8s と docker の違いは何ですか?

k8s と docker の違いは何ですか?

青灯夜游
リリース: 2020-10-23 16:27:32
オリジナル
4813 人が閲覧しました

違い: k8s は、コンテナ クラスタの自動展開、自動拡張と縮小、メンテナンスなどの機能を実現できるオープンソースのコンテナ クラスタ管理システムです。Docker は、オープンソースのアプリケーション コンテナ エンジンで、開発者はアプリケーションをパッケージ化できます。アプリケーションと依存関係はポータブル コンテナに入れられ、仮想化も可能な一般的な Linux マシンに配布されます。

k8s と docker の違いは何ですか?

(推奨チュートリアル: docker チュートリアル)

Docker と Docker の違いと概要k8s

2010年、ITに携わる若者数人が米国サンフランシスコに「dotCloud」という会社を設立した。

同社は主にPaaSをベースとしたクラウドコンピューティング技術サービスを提供している。具体的にはLXC関連のコンテナ技術です。

LXC は Linux コンテナ仮想化テクノロジ (Linux コンテナ)

その後、dotCloud はそのコンテナ テクノロジを簡素化および標準化し、それを ——Docker と名付けました。

#Docker テクノロジーの誕生後、Docker テクノロジーは業界の注目を集めませんでした。小規模なスタートアップである dotCloud も、激しい競争の中で苦戦しています。

まさにそれを失いかけたとき、「オープンソース」というアイデアが彼らの頭に浮かびました。

「オープンソース」とは何ですか?オープンソースとは、オープンソースコードを意味します。つまり、オリジナルの社内機密プログラムのソースコードは誰にでも公開され、誰もが参加してコードや意見を投稿できるようになります。

オープンソース、オープンソース

一部のソフトウェアは最初からオープンソースです。混在できないソフトウェアもあり、作成者は諦めたくないのでオープンソースを選択します。自分を養うことができないなら、「何百家族分の食べ物」を食べればいいのです。

2013 年 3 月、dotCloud の創設者の 1 人であり Docker の父である 28 歳の Solomon Hykes は、Docker プロジェクトをオープンソースにすることを正式に決定しました。

Solomon Hykes (今年 Docker を辞めたばかり)

開かなければ何もありませんが、開いてしまえば素晴らしいものです。

Docker の利点を発見し、Docker オープン ソース コミュニティに参加するために群がる IT エンジニアが増えています。

Docker の人気は急速に高まっており、そのスピードは驚くべきものです。

オープンソースの月に、Docker バージョン 0.1 がリリースされました。それ以来、Docker は毎月バージョンをリリースします。 2014 年 6 月 9 日までに、Docker バージョン 1.0 が正式にリリースされました。

現時点では、Docker は業界で最も人気のあるオープン ソース テクノロジの 1 つとなっています。 Google、Microsoft、Amazon、VMware などの大手企業もこれを支持し、全面的なサポートを表明しています。

Docker が普及した後、dotCloud は社名を Docker Inc に変更しただけです。

Docker とコンテナー テクノロジーがこれほど人気が​​あるのはなぜですか?ハッキリ言って「軽い」からです。

コンテナ テクノロジが登場する前、業界で最も人気のあるインターネット セレブは仮想マシンでした。 仮想マシン テクノロジーの代表的なものは、VMWareOpenStack です。

#仮想マシンを使用したことがある人は多いと思います。仮想マシンは、オペレーティング システムにソフトウェアをインストールし、このソフトウェアを使用して 1 つまたは複数の「サブコンピュータ」をシミュレートします。

「サブコンピューター」に似た仮想マシン

「サブコンピューター」では、QQ を開くなど、通常のコンピューターと同様にプログラムを実行できます。必要に応じて、QQ を実行する複数の「サブコンピューター」を作成できます。 「サブコンピュータ」と「サブコンピュータ」は

#隔離されており、相互に影響を与えません。 仮想マシンは仮想化テクノロジーに属します。 Docker などのコンテナ技術も仮想化技術であり、

軽量仮想化

に属します。 仮想マシンは多くの「サブコンピュータ」を分離できますが、より多くのスペースを消費し、起動が遅くなり、仮想マシン ソフトウェア (VMWare など) に費用がかかる場合があります。

コンテナ テクノロジーにはこれらの欠点はありません。オペレーティング システム全体を仮想化する必要はなく、小規模な環境 (「サンドボックス」に似た) を仮想化するだけで十分です。

サンドボックス

起動が早く、数秒で完了します。さらに、リソース効率が非常に優れています (1 つのホストで数千の Docker コンテナを同時に実行できます)。さらに、必要なスペースも非常に少なく、仮想マシンでは一般に数 GB から数十 GB のスペースが必要ですが、コンテナでは MB または KB しか必要としません。

コンテナと仮想マシンの比較

このため、コンテナ テクノロジは温かく歓迎され、求められており、急速に発展しています。

Docker について詳しく見てみましょう。

Docker 自体はコンテナではなく、コンテナとアプリケーション コンテナ エンジンを作成するためのツールであることに誰もが注意する必要があります。 Docker を理解したい場合は、その 2 つのスローガンを読んでください。

最初の文は「

構築、出荷、実行

」です。

つまり、「ビルドする、送信する、実行する」の 3 つです。

例:

空き地に来て、家を建てたいと思い、石を動かし、木を切り、図面を描き、最終的に家を建てました。

# その結果、私はしばらくそこに住んでいたのですが、別のオープンスペースに引っ越したいと思いました。現時点では、これまでの方法では、石を動かし、木を切り、図面を描き、再び家を建てることしかできません。

しかし、年老いた魔女がやって来て、私に魔法を教えてくれました。

この種の魔法は、私が建てた家のコピーを作成し、それを「鏡像」にして、バックパックに入れることができます。

別の空き地に着いたら、この「鏡像」を使って家をコピーし、そこに置き、カバンを持って移動します。

どうですか?すごいと思いませんか?

つまり、Docker の 2 番目のスローガンは、「

一度ビルドすればどこでも実行 (一度ビルドすればどこでも実行)

」です。 Docker テクノロジーの 3 つの中心的な概念は次のとおりです。

    イメージ
  • コンテナ
  • リポジトリ
  • 先ほどの例では、パッケージに配置された「ミラー」は
Docker イメージ

です。そして私のバックパックは Docker 倉庫 です。私が魔法を使って建てた家は、広場にある Docker コンテナ です。 端的に言うと、この Docker イメージは特別なファイル システムです。コンテナのランタイムに必要なプログラム、ライブラリ、リソース、設定ファイルなどを提供するほか、ランタイム用に用意されたいくつかの設定パラメータ(環境変数など)も含まれています。イメージには動的データが含まれておらず、その内容は構築後に変更されません。

つまり、家を変えるたびに、家は同じですが、日用品などは無視されます。物件に住む人が購入の責任を負います。

それぞれの鏡像が一種の家を作り出すことができます。そうすれば、複数のミラーを使用できるようになります。

つまり、ヨーロッパ風の別荘を建てて鏡像を生成しました。別の仲間が中国の中庭の家を建て、鏡像を生成した可能性もあります。アフリカの茅葺き家を建てて鏡像を生成した仲間もいます。 。 。

このようにして、画像を交換することができます。あなたは私のものを使用し、私はあなたの画像を使用します。素晴らしいと思いませんか?

それで、大きな公共倉庫になりました。

Docker イメージの管理を担当するのは、

Docker Registry サービス

(ウェアハウス管理者に似ています) です。 誰かが作ったミラーは合法ではありません。誰かが問題のある家を建てたらどうなるでしょうか?

つまり、Docker Registry サービスはイメージ管理に関して非常に厳格です。

最も一般的に使用されるレジストリ パブリック サービスは、公式の

Docker Hub

です。これはデフォルトのレジストリでもあり、高品質の公式イメージが多数含まれています。 さて、Docker について話した後、K8S に目を向けましょう。

Docker コンテナ テクノロジが宣伝されていたとき、誰もが、特定のビジネス実装に Docker を適用するのは難しい、手配、管理、スケジュール設定はすべて困難であることに気づきました。したがって、Docker とコンテナーをより高度かつ柔軟に管理するための管理システムが緊急に必要とされています。

この時、K8Sが登場しました。

K8S はコンテナベースのクラスター管理プラットフォームで、正式名は kubernetes です。

Kubernetes という言葉は、操舵手または航海士を意味するギリシャ語に由来しています。 K8S はその略語で、「ubernete」の 8 文字を「8」という単語に置き換えたものです。

Docker とは異なり、K8S の作成者は有名な業界大手

Google

です。 ただし、K8S はまったく新しい発明ではありません。その前身は、Google が 10 年以上にわたって開発を続けてきた

Borg システム

です。 K8S は、2014 年 6 月に Google によって正式に発表され、オープンソース化されました。

同年 7 月には、Microsoft、Red Hat、IBM、Docker、CoreOS、Mesosphere、Saltstack などの企業が相次いで K8S に参加しました。

その後 1 年以内に、VMware、HP、Intel などの企業も次々と参加しました。

2015 年 7 月、Google は OpenStack Foundation に正式に参加しました。同時に、Kuberentes v1.0 が正式にリリースされました。

現在、kubernetesのバージョンはV1.13まで発展しています。

K8S のアーキテクチャは少し複雑なので、簡単に見てみましょう。

K8S システムは通常、K8S クラスター (クラスター) と呼ばれます。

このクラスターは主に 2 つの部分で構成されます:

  • マスター ノード (マスター ノード)
  • ノード ノードのグループ(コンピューティングノード)

一目でわかるように、マスターノードは主に管理と制御を担当します。ノードは、特定のコンテナーを含むワークロード ノードです。

これら 2 つのノードを詳しく見てみましょう。

最初のノードは マスター ノードです。

#マスター ノードには、API サーバー、スケジューラー、コントローラー マネージャーなどが含まれます。

API サーバーは、クライアントやその他のコンポーネントが呼び出すためのシステム全体の外部インターフェイスであり、「ビジネス ホール」に相当します。

スケジューラは、クラスタ内のリソースのスケジュールを担当します。これは「スケジューリング ルーム」に相当します。

コントローラマネージャはコントローラの管理を担当し、「部長」に相当します。

次に、

ノード ノード

ノード ノードには、Docker、kubelet、kube-proxy、Fluentd、kube-dns (オプション)、および

Pod が含まれます。

Pod は、Kubernetes の最も基本的な操作単位です。ポッドはクラスター内で実行されているプロセスを表し、密接に関連する 1 つ以上のコンテナーをカプセル化します。 K8S には Pod に加えて Service という概念があり、Service は同じサービスを提供する Pod グループの外部アクセス インターフェイスとみなすことができます。この段落はわかりにくいので飛ばしてください。

Docker は言うまでもなくコンテナを作成します。

Kubelet は主に、作成、変更、監視、削除など、配置されているノードに割り当てられたポッドの監視を担当します。

Kube-proxy は主に、Pod オブジェクトにプロキシを提供する役割を果たします。

Fluentd は主にログの収集、保存、クエリを担当します。

少し混乱していますか?残念ながら、いくつかの言葉で明確に説明するのは非常に難しいので、読み飛ばしてください。

Docker と K8S について紹介しましたが、記事はまだ終わりません。

次の部分は、

コア ネットワーク エンジニア、さらにはすべての通信エンジニア向けに書かれています

数十年前の 1G から現在の 4G、そして将来の 5G に至るまで、モバイル通信は地球を揺るがす変化を遂げ、コア ネットワークも同様に変化しました。

しかし、これらの変化を詳しく見てみると、いわゆるコア ネットワークは本質的には変わっておらず、単なる多数のサーバーにすぎないことがわかります。異なるコア ネットワーク要素は、異なるサーバーと異なるコンピューティング ノードです。

変更されたのは、これらの「サーバー」の形式とインターフェイスです。形式はキャビネット シングル ボードからキャビネット ブレードに、キャビネット ブレードから X86 ユニバーサル ブレード サーバーに変更され、インターフェイスはトランク ケーブルから X86 ユニバーサル ブレード サーバーに変更されました。ネットワークケーブル、ネットワークケーブルから光ファイバーまで。

変わってもサーバーであり、計算ノードであり、CPUであることに変わりはありません。

サーバーである以上、ITクラウドコンピューティングのような仮想化の道を歩むことになるはずです。結局のところ、仮想化には、前述した低コスト、高利用率、完全な柔軟性、動的スケジューリングなど、あまりにも多くの利点があります。

過去数年間、仮想マシンはコア ネットワークの究極の形態であると誰もが考えていました。現時点では、

コンテナ化である可能性が高いようです。近年よく言われるNFV(Network Element Function Virtualization)も、NFC(Network Element Function Containerization)と名称変更される可能性があります。

VoLTE を例に挙げると、以前の 2G/3G 方式に従う場合、EPC と IMS のさまざまなネットワーク要素として機能するために多数の専用機器が必要になります。

VoLTE 関連のネットワーク要素

コンテナを使用した後は、サーバーを 1 台だけ必要とし、異なるコンテナを使用して 12 個のコンテナを作成するだけで済む可能性があります。それぞれ異なるネットワーク要素のサービス プログラム。

これらのコンテナはいつでも作成および破棄できます。また、停止することなく、任意に大きく、任意に小さく、任意に強く、任意に弱くすることもでき、パフォーマンスと消費電力の動的なバランスを実現します。

まさに完璧です!

5G 時代では、コア ネットワークはマイクロサービス アーキテクチャを採用し、コンテナとも完全に一致します。モノリシック アーキテクチャ (Monolithic) は、マイクロサービス アーキテクチャ (Microservices) になり、オールラウンダーになるのと同等です。 Nに特化したタイプです。各スペシャリストは隔離されたコンテナに割り当てられるため、最大限の柔軟性が得られます。

細かい役割分担

この開発傾向に応じて、移動通信システムではアンテナを除く残りの部分が仮想化される可能性があります。コア ネットワークは最初のものですが、最後ではありません。仮想化後のコアネットワークは、実際には通信ではなく IT に分類されるべきです。コアネットワークの機能は、コンテナ内の通常のソフトウェア機能にすぎません。

ここにいるコア ネットワーク エンジニアの皆さん、おめでとうございます。もうすぐ変革は成功するでしょう。

以上がk8s と docker の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート