この記事はWeChatの公開アカウント「JAVA Daily Knowledge」から転載したもので、著者は+++++です。この記事を転載する場合はJAVA Rizhilu公式アカウントまでご連絡ください。 概要 JAVA 開発では、独自に構築した Docker リポジトリで docker run コマンドを使用すると、JAVA サービスを簡単にデプロイできますが、Docker を使用してアプリケーションをデプロイする場合、いくつかの問題があります。
開発中に特に役立つアプローチは、Docker Compose を使用することです。 Docker Compose は、YAML ファイルを使用してコンテナーのセットを宣言的に定義し、それらのコンテナーをグループとして起動および停止できるツールです。 しかし、Docker Compose を使用する場合の明らかな問題は、1 台のマシンに制限されることです。サービスを確実にデプロイするには、Kubernetes などの Docker オーケストレーション フレームワークを使用する必要があります。 Kubernetes 入門 Kubernetes は Docker オーケストレーション フレームワークであり、Docker 上のソフトウェア レイヤーで、コンピューターのハードウェア リソースのグループを、サービスを実行するための単一のリソース プールに変換します。各サービスの必要な数のインスタンスを維持し、サービス インスタンスまたはマシンがクラッシュした場合でも、それらが常にオンラインであることを保証します。コンテナの柔軟性と Kubernetes の洗練性を組み合わせることで、サービスを展開する強力な手段となります。 Kubernetes には主に 3 つの機能があります。
Kubernetes アーキテクチャ Kubernetes アーキテクチャ Kubernetes はマシンのクラスター上で実行されます。 Kubernetes クラスター内のコンピューターの役割は、マスター ノードと共通ノードに分かれています。クラスターにはマスターノードが数個(おそらく 1 個だけ)あり、通常のノードが多数あります。 「マスターノード」はクラスターの管理を担当します。 Kubernetes の「通常のノード」は「ワーカーノード」と呼ばれ、1 つ以上のポッドを実行します。 Pod は Kubernetes のデプロイメント ユニットであり、コンテナのグループで構成されます。 マスター ノードは、次のような複数のコンポーネントを実行します。
通常のノードは、次のような複数のコンポーネントを実行します。
次に、Kubernetes にサービスをデプロイするために習得する必要がある主要な Kubernetes の概念を見てみましょう。これらの概念を習得することで、Kubernetes の核心を理解できるようになります。 Kubernetes の主要概念 Kubernetes は非常に複雑ですが、いくつかの「主要オブジェクト」の概念を習得すれば、Kubernetes を効率的に使用できるようになります。 Kubernetes は多くの種類のオブジェクトを定義します。開発者の観点から、最も重要なオブジェクトは次のとおりです。
Pod は Kubernetes の基本的なデプロイメント ユニットです。 IP アドレスとストレージ ボリュームを共有する 1 つ以上のコンテナーで構成されます。サービス インスタンスのポッドは通常、JVM を実行するコンテナーなどの単一のコンテナーで構成されます。ただし、場合によっては、Pod にサポート機能を実装する 1 つ以上の「サイドカー」コンテナーが含まれることがあります。たとえば、Nginx サーバーには、定期的に git pull を実行して Web サイトの最新バージョンをダウンロードするサイドカー コンテナーが存在する場合があります。 Pod のコンテナまたはそれが実行されるノードがクラッシュする可能性があるため、Pod の寿命は短くなります。
デプロイメント: Pod の宣言的な仕様。デプロイメントは、必要な数の Pod インスタンス (サービス インスタンス) が常に実行されていることを保証するコントローラーです。ローリングアップグレードとロールバックによるバージョン管理をサポートします。
アプリケーション サービスのクライアントに提供される静的/安定したネットワーク アドレス。これは、インフラストラクチャによって提供されるサービス検出の形式です。各サービスには IP アドレスとその IP アドレスに解決される DNS 名があり、1 つ以上のポッド間で TCP および UDP トラフィックの負荷を分散します。 IP アドレスと DNS 名は Kubernetes 内からのみアクセスできます。 サービスはデフォルトで ClusterIp モードを使用します。外部からサービスにアクセスする必要がある場合は、NodePort と LoadBalancer という 2 つの他のタイプのオブジェクトを使用する必要があります。
1 つ以上のアプリケーション サービスの外部化された構成を定義する、名前と値のペアの名前付きコレクション。 Pod コンテナの定義では、ConfigMap を参照してコンテナの環境変数を定義できます。 ConfigMap を使用してコンテナ内に構成ファイルを作成することもできます。 Secret を使用して機密情報 (パスワードなど) を保存できます。これも ConfigMap の形式です。 |
生放送トラックにおける「斗魚と虎牙」の二強パターンはなかなか破れず、変革を求める英客は社交分野に根を...
みなさんこんにちは。Hua Zaiです。またお会いできて嬉しいです。監視は常に Kafka にとって...
今日、ますます多くの企業がオンプレミスのデータセンターからクラウド コンピューティング環境に業務を移...
A5ウェブマスターネットワーク(www.admin5.com)は6月10日、国内のビデオ会社であるB...
意外にも、世論の注目から王力宏を救ったのはヴィヤだった。 12月20日、「ヴィヤの脱税」のニュースが...
序文:百度プロモーション入札者として入札技術を習得したいなら、28 原則を実際の戦闘で柔軟に適用する...
SEO に対する考え方は人それぞれです。SEO 担当者の間でも、学習経験や接するサイトの種類、その他...
単一タイプの CMS ウェブサイト、私はこれまで多くの CMS ウェブサイトを見てきましたが、多かれ...
ウェブマスターの皆さん、こんにちは。では、SEO ウェブマスターに関する現在の見解についてお話ししま...
[[333057]]ガートナーによれば、現在、約 210 億個の接続された「モノ」が、必死にデータを...
インターネットマーケティングは、本当に一人でもできると多くの友人が言っているのを聞きました。実際、オ...
Pinduoduo の共有リンクにうんざりしている人は多く、Pinduoduo 上の高品質の模造品や...
[[276793]] [51CTO.com クイック翻訳] あなたのビジネスはクラウドに移行する準備...
Baidu Green Radish Algorithm 2.0 のリリース後、ウェブマスターたちは...
Internet of Everythingの時代の到来により、IoTデバイスの数は爆発的に増加しま...