JavaRush /Java Blog /Random-JA /Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか...
Павел
レベル 11

Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?

Random-JA グループに公開済み
すべては梱包から始まります。 産業開発では、たとえば、開発者が自分のコンピュータ上で組み立てた形式で、アプリケーションが動作するサーバーに転送できるように、組み立てられたアプリケーションを「パッケージ化」する必要があります。一種の保護として機能するはずです。これにより、アプリケーションがテスト中は動作していても、運用環境に移行したときに停止するなどの予期せぬ事態が回避されます。また、「パッケージ化」は、あるアプリケーションを同じサーバー上にある別のアプリケーションから分離します。このような分離により、あるアプリケーションが別のアプリケーションの作業に干渉することがなくなります (たとえば、あるアプリケーションがサーバーのすべての RAM を引き継ぐことができなくなり、その運命に対する二度目の適用)。マイクロサービス アーキテクチャによる「パッケージ化」の利点は特に顕著であり、これは理解できます。多くのマイクロサービス、つまり相互に通信する必要があるが、同時に相互に干渉してはならない多数の小さなアプリケーションが存在します。例としては、タンス (サーバー) があります。このチェストにはさまざまな引き出しがあり、さまざまな靴下をある引き出しから別の引き出しに簡単に移動でき、同時に靴下同士が混ざったり、パンティーと混ざったりすることはありません。 Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?  - 1 パッケージ化は仮想化ツールによって作成されます。かつて、仮想マシン (VM) は「パッケージ」として使用されていました。古い人は、仮想マシンの Vista に Windows XP を展開した方法を覚えているでしょう。現在、アプリケーションのパッケージ化に VM を使用するのは過去のものです。コンテナは世界を席巻しました。なぜなら、軽量で生産性が高く、安全だからです。 さらに詳しく: コンテナーは仮想マシンとどう違うのですか? Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?  - 2 コンテナーの利点をいくつか覚えておく必要があります。 • コンテナーのサイズが小さい (サーバー上で使用するメモリが少ない)。• 共有サーバー リソース (RAM、プロセッサのコンピューティング時間) にアクセスできます。• 他の環境 (テスト環境から産業環境まで) への移植性が向上します。• 起動速度が向上します (コンテナが軽量であるため、起動が速くなります)。 Docker はコンテナの母です。 コンテナというと、Docker のことを指します。Docker は、コンテナ化された環境でのアプリケーションのデプロイと管理を自動化するソフトウェアです。例を挙げると、Docker はオンライン デザイナーとクレーン付き 3D プリンターを組み合わせたものです。つまり、最初にコンテナのテンプレート (画像) をデザインし、指定された条件 (画像) に従ってコンテナを印刷 (作成) し、必要な場所に移動することができます。Dockerfile はレバーの代わりに使用されます。管理プロセスはシンプルです。ファイル、コマンドを作成し、実行して、何が起こるかを確認します。 Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?  - 3 Docker についての最初の知識 Docker Compose - アップグレードされた Docker 次に、複数のコンテナーを 1 つの場所で実行する必要があるシナリオを見てみましょう。これに使用されるユーティリティは Docker Compose です。Docker Compose は、Docker に含まれるツールです。プロジェクトの展開に関連する問題を解決するように設計されています。Docker と Docker Compose の違い: Docker は、個々のコンテナーを管理するために使用されます。Docker Compose は、複数のコンテナを同時に管理するために使用されます。このツールは Docker と同じ機能を提供しますが、より複雑な構造を操作できるようになります。 Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?  - 4 Docker Compose を使用する一般的なシナリオ: あなたが Web プロジェクトの開発者であると想像してください。このプロジェクトには 2 つの Web サイトが含まれています。1 つ目は、ビジネスマンが数回クリックするだけでオンライン ストアを作成できるようにするものです。2 つ目は顧客サポートを目的としています。これら 2 つのサイトは同じデータベースと対話します。あなたのプロジェクトはますます人気が高まっており、それを実行するサーバーの能力ではもはや十分ではないことが判明しました。その結果、プロジェクト全体を別のマシンに移動することにしました。Docker Compose などを使用したことがない場合は、プロセス中に何も忘れないようにしながら、コンテナーを一度に 1 つずつ移行して再構成する必要があります。Docker Compose を使用している場合、プロジェクトを新しいサーバーに移動することは、いくつかのコマンドを実行することで解決できます。プロジェクトの新しい場所への転送を完了するには、いくつかの設定を行ってデータベースのバックアップ コピーを新しいサーバーにアップロードするだけです。典型的な DockerComposer: Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?  - 5 ここで覚えておく必要があること:コンテナーは、アプリケーションを「パッケージ化」するための主な手段です。Docker はコンテナーを処理し、コンテナー イメージを作成し、コンテナーを選択して移動します。多数のコンテナを同時に管理するには、Docker に含まれる Docker Compose を使用します。これらのプログラムはフリー ソフトウェア (一言で言えば景品) Kubernetes (K8s) - Docker オートメーション そしてコンテナをデプロイし、コンテナをマシンからマシンへ「バッチで」転送する方法を知りました。しかし、突然コンテナの 1 つが落下しました。何をするか?誰がまた上げてくれるでしょうか? Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?  - 6 もちろん、これを Docker 経由で手動で行うこともできます。しかし、何かをしなければならず、何かを書かなければならず、何らかの自動化ツールが必要です。ここで Kubernetes (略称 K8s) が登場し、コンテナの管理とオーケストレーション (関連エンティティの自動管理) も扱います。K8 を自由に使用できるため、昼夜を問わずコンテナを監視する必要はありません。動作シナリオを定義するだけで十分であり、K8s はすべてを自動的に実行します。Kubernetes の主な機能 1. 構成のスケーラビリティと管理を提供します。2. クラスターをデプロイするときに取得したいものを記述することができ、K8s がそれを実行します。たとえば、ポッドの数を指定します。、それらに割り当てるメモリの量は、ポッド上に (コンテナー内に) デプロイされたアプリケーションのレプリカ (インスタンス) の数を示します。3. システムを特定の状態に維持する責任を負い、何かが落ちた場合、確立された構成に従って K8 がそれを拾います。ここで覚えておく必要があること: Kubernetes は、コンテナ化されたアプリケーションをオーケストレーションし、クラスタ内でのデプロイメント、スケーリング、調整を自動化するためのツールです。Docker などの主要なコンテナ化テクノロジをサポートします。K8s はオープンソース ソフトウェアです。 Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?  - 7 OpenShift は、仮想化の世界におけるフェラーリであり、クールで高速、そして高価です 。 話題が発展して、OpenShift に移りましょう。 OpenShift は、追加機能を提供する Kubernetes のアドオンであり、 すぐに使用できるようになり、時間と労力を要する構成を必要とせず、すぐに実稼働環境に導入できます。Kubernetes の上にさまざまなアイコンがいくつあるか見てください。そして、彼らはそれぞれ独自の素晴らしいことをしています。 Docker、Kubernetes、OpenShiftとは何ですか?また、それらは相互にどのように関係していますか?  - 8 OpenShift のハイライトは次のとおりです。 • K8 とは異なり、有料の製品です。• すぐに使える DevOps、基本的な Blue/Green、カナリア展開シナリオのサポート。• 組み込みの Jenkins サポート。• クラスターの管理と操作に便利なツールを提供します。• より厳格なセキュリティ モデルと組み込みの監視機能を備えています。Kubernetes とは異なり、OpenShift は有料製品であることをもう一度強調する価値があります。違いは次のとおりです。裸の Kubernetes を使用すると、すべての問題を自分たちで解決できます。OpenShift について話す場合、これは Red Hat の製品であり、有償サポートの一環として新たな問題を解決します。要約しましょう: 産業開発では、アプリケーションを「パッケージ化」する必要があります。このアプローチは、マイクロサービス アーキテクチャに特に関連します。コンテナーは、アプリケーションをパッケージ化する主な手段です。Docker はコンテナーを処理し、コンテナー イメージを作成し、コンテナーを選択して移動します。多数のコンテナを同時に管理するには、Docker に含まれる Docker Compose を使用します。これらのプログラムは無料ソフトウェアです。Kubernetes(K8s) は、コンテナ化されたアプリケーションを調整し、クラスタ内でのデプロイ、スケーリング、調整を自動化するためのツールです。Docker などの主要なコンテナ化テクノロジをサポートします。K8s はオープンソース ソフトウェアです。OpenShift は、追加機能を提供する Kubernetes のアドオンです。K8sとは異なり、法人利用を目的とした有料製品です。すぐに使用できる DevOps を提供します。ブルー/グリーン、カナリアの主要な展開シナリオをサポートし、Jenkins のサポートが組み込まれており、クラスターの管理と操作に便利なツールを提供します。より厳格なセキュリティ モデルと組み込みの監視が備わっています。 コードを書きたくてうずうずしている人向け: Spring Boot アプリケーションをコンテナーにパッケージ化する Docker に Postgres をデプロイし、Spring-Boot アプリケーションに接続する方法 ウェビナー: Docker - コンテナーを操作するには? — Java でのバックエンド開発
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION