コンテナー技術の導入により、アプリケーション開発の容易さが大幅に改善されました。Kubernetes はそのような進歩の最前線に立っています。 Kubernetes は、複数のマシン上でコンテナーのオーケストレーションを処理するオープンソース プラットフォームです。 これらの Kubernetes プラットフォームの XNUMX つ、 Red Hat OpenShift (Red Hat による)、クラウド アプリケーションを自動スケーリングする機能をユーザーに提供します。 を搭載したアプリケーションコンテナがあります デッカー Kubernetes の好意によるオーケストレーションおよび管理サービスを使用します。 そのため、OpenShift はそのシンプルなコンテナー アーキテクチャで人気を集めています。 これは、Kubernetes オーケストレーション サービスを使用してコンテナーを管理するための統合展開アーキテクチャを提供します。 したがって、いくつかの製品がこの展開を利用しています。
たとえば、それは完全に NCache-サポートされています。 NCache は、高いパフォーマンスとスケーラビリティを保証するインメモリ分散キャッシュ ソリューションです。 データをキャッシュする NCache データがアプリケーションに近いキャッシュに存在するため、ネットワークトリップとデータベースの負荷が軽減されます。 この記事では、必要な手順に焦点を当てています。 NCache Red Hat OpenShift でのデプロイメント。
NCache 詳細 NCache OpenShift-Docs でのデプロイメント NCache OpenShift ビデオで
NCache Red Hat OpenShift のデプロイメントアーキテクチャ
NCache、追加で OpenShift 環境ベースのクラウド オーケストレーションを楽しむことができます。 NCache 管理しやすいコンテナ アプリケーションを使用して機能を提供します。 さまざまなアプリケーションをデプロイする単一の Kubernetes クラスターから始めることができます。 NCache クラスター展開。 現在、環境で実行されている Docker ベースのコンテナー アプリケーションは次のとおりです。
- Java Web アプリケーション
- Java Web サービス アプリケーション
- ASP.NET Core
これらのアプリケーションには、 NCache インストール済み; 具体的には、Java アプリケーションは の Java クライアントを使用します。 NCache、一方、別の展開 ASP.NET core アプリケーションは Docker イメージを使用します Linux を採用し、 .NET Core のクライアント NCache コミュニケーション。 サーバー側の展開では、 Linux ベースの Docker の画像 NCache 上で利用可能 Dockerハブ.
アプリケーションは、Kubernetes 内のヘッドレス サービスである Cache Discovery Service と呼ばれるサービスに接続します。 の一部であるリソースのルーティングと割り当てを管理する目的に役立ちます。 NCache 集まる。 同様に、リモート監視ゲートウェイもこのサービスに接続して、次のような操作について Kubernetes の外部からキャッシュ クラスターを監視できるようにします。 NCache キャッシュ管理。
Kubernetes を使用している間、ポッドを使用します。 基本的に、Kubernetes では、IP がポッドに割り当てられます。 ポッドは、コンテナー上の仮想レイヤーとして機能しながら、基になるコンテナー インスタンスをカプセル化する Kubernetes オブジェクトです。 XNUMX つのポッドに複数のコンテナーを含めることができますが、XNUMX つのポッドに XNUMX つのコンテナーを含めることを強くお勧めします。 つまり、Kubernetes クラスター内のすべてのリソース割り当ては、コンテナーではなくポッドで行われます。
次の図は、 NCache 展開:
ステップ1:デプロイ NCache サーバー
展開 NCache Red Hat OpenShift のサーバーでは、 NCache 構成。 これらの YAML デプロイメントには、アプリケーションのすべてのコンポーネントが含まれており、デプロイは非常に簡単です。 アプリケーションの要件に従って、これらのコンポーネントを調整してください。 以下に、構成を含むサンプル YAML ファイルを示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: ncache labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: containers: - name: ncache image: docker.io/alachisoft/ncache:latest ports: - name: management-tcp containerPort: 8250 - name: management-http containerPort: 8251 - name: client-port containerPort: 9800 |
Kubernetes は非常に急速に進化しており、新しい機能を次々と生み出しており、これらの機能はすぐにコア API の一部になりつつあります。 ただし、実験的な性質のため、いくつかの機能はこの軌道をたどりません。 したがって、それに応じて「apiVersion」を設定します。 ここで使用されるバージョンは「v1beta1」で、基盤となる Kubernetes のバージョンに依存します。 そのため、古いバージョンを使用していないことを確認してください。
展開ファイルに記載されているポートには、次のものがあります。
- ポート8250:TCP管理用。
- ポート8251: HTTP の管理と監視用。
- ポート9800: に接続するクライアントアプリケーション間の通信用 NCache.
まず、kind を deployment に設定します。 次はレプリカの数 (この場合は 2) で、ロジックに従って増やすことができます。 ポッド レプリカの詳細については、以下を参照してください。 こちら. コンテナーの場合、Docker イメージのパスを指定して、Docker イメージを指定する必要があります。 NCache Enterprise で利用可能なサーバー Linux Docker イメージ Dockerハブ。 この Docker イメージをプルする一般的なコマンドは次のとおりです。
1 |
docker pull alachisoft/ncache:latest |
必要なすべての構成で YAML ファイルを作成したら、OpenShift Web コンソールを使用してファイルをインポートする必要があります。 任意の名前で新しいプロジェクトを作成し、YAML ファイルをプロジェクトにインポートします。 NCache 展開。 また、 OpenShift CLI ツール、デプロイのステータスを示します。
NCache 詳細 NCache 展開シナリオ ポートフォワーディング Docker
ステップ 2: キャッシュ検出サービスを作成する
以前に確立されたように、キャッシュ検出サービスはすべてのルーティングを担当します。 NCache 基盤となるポッドへの通信。 この検出サービスは、クライアント アプリケーションと NCache Kubernetes クラスターの一部であるキャッシュ クラスター。 さらに、これはヘッドレス サービスであり、基盤の IP アドレスを取得します。 NCache Kubernetes クラスター内のキャッシュサーバーポッド。
このようなサービスを作成するには、以下に示すように、別の YAML を構築する必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: v1 kind: Service metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None sessionAffinity: ClientIP selector: app: ncache ports: - name: management-tcp port: 8250 targetPort: 8250 - name: client-port port: 9800 targetPort: 9800 |
名付けたのはこちら キャッシュサーバー。 ただし、構成に応じて参照できます。 この場合、「種類」は サービス. さらに、検出サービスとの通信に必要な名前とポート番号を持つポートが含まれています。 「sessionAffinity」は ClientIP に設定されます。これにより、Kubernetes クラスター外の管理および監視操作が、特定の時間にポッドの XNUMX つに固定されるようになります。 YAML ファイルを作成した後、ウィザードを使用してこのファイルをインポートすると、下の画像に示すように、キャッシュ検出サービスが自動的に構築されます。
ステップ 3: 管理ゲートウェイの作成
このステップでは、Kubernetes クラスター外での操作の管理と監視を調整します。 実行中のすべての管理操作は、このゲートウェイを介してこのキャッシュ検出サービスにルーティングされます。これにより、基盤となるすべてのポッドの管理と監視も支援されます。
管理ゲートウェイを作成するには:
- OpenShift ポータルの「ネットワーキング」セクションに移動します。
- ドロップダウンメニューから「ルート」を選択します。
- ヘッドレス サービス (別名、キャッシュ検出サービス) へのルートを作成します。
- ルートの名前を指定し、前の手順で作成したサービス「cacheserver」を選択します。 さらに、Kubernetes クラスターの外部での管理と監視のために、ターゲット ポート 8251 を指定します。
5. 作成したら、リダイレクト先のロケーション パスを選択します。 NCache Webマネージャ 「場所」のキャッシュ サーバー ポッドの XNUMX つで。
ステップ4:キャッシュクラスターを作成する
これで無事にデプロイが完了しました NCache Red Hat OpenShift では、次を使用してキャッシュ クラスターを作成できます。 NCache Webマネージャ.
の手順に従ってキャッシュ クラスターを作成します。 ドキュメント 使用されている IP がキャッシュ ポッドの IP であることを確認します。 キャッシュ Pod の IP を取得するには、OpenShift Web コンソールまたはコマンドライン ツールから「Pods」セクションに移動します。 一度 キャッシュの作成 完了したら、次を使用してキャッシュを開始します NCache Webマネージャ.
NCache 詳細 キャッシュクラスターを作成する キャッシュ管理操作
ステップ 5: クライアント アプリケーションを展開する
クライアントのデプロイメントを含む YAML ファイルを作成することで、クライアント アプリケーションをデプロイして実行できるようになりました。 OpenShift ポータルを使用して、このデプロイメント ファイルをインポートします。 クライアント アプリケーションは、 .NET Core または必要に応じてJava。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: clientapp labels: app: clientapp spec: replicas: 1 template: metadata: labels: app: clientapp spec: containers: - name: clientapp image: your-client-application-repo-path ports: - name: management-tcp containerPort: 8250 |
ここで、キャッシュに接続するために、キャッシュ ポッドの IP アドレスは必要ありません。 「cacheServer」という名前で作成したキャッシュ検出サービスは、実行時にクライアント アプリケーションにキャッシュ ポッドの IP アドレスを提供します。 の NCache クライアントには、名前付きサービスと対話し、OpenShift Kubernetes プラットフォーム内のすべての基盤となるリソースを自動的に検出する組み込みロジックがあります。
従って NCache クライアントは、サービスの名前を提供することにより、完全に接続されたクラスターに接続するのに十分なほどインテリジェントです。
ステップ6:監視 NCache クラスタ
NCache には、キャッシュ クラスタの監視に役立つさまざまなツールが付属しています。 キャッシュ クラスターを監視すると、クラスターの状態、キャッシュ アクティビティ、実行中の操作の数などに関するリアルタイムの情報が得られます。 また、キャッシュ クラスターを監視して、ネットワークの中断、メモリのオーバーヘッドなどに対して適切な対策を講じることもできます。
NCache Webマネージャ が提供する管理ツールです。 NCache キャッシュを構成し、そのパフォーマンスを監視します。 同様に、 NCache Webモニター は、リアルタイムのキャッシュ パフォーマンスを監視できる Web 管理ツールです。
ステップ7:スケーリング NCache クラスタ
NCache 非常にスケーラブルなアーキテクチャを持つ分散キャッシュ システムです。 そのため、拡張された容量と機能を実現するために、 NCache OpenShift 環境では、 NCache ポッドを追加してクラスタ化します。 これを行うには複数の方法があります。 OpenShift Web ポータルから始めます。
- 「展開」に進みます。
- 「カウントを編集」ボタンをクリックします。
- 「+」ボタンをクリックしてポッドの数を増やします。
これらの手順を自動的に続行すると、追加されたポッドの数に従って、デプロイ ファイルのレプリカ数が増加します。 を使用して行うこともできます。 OpenShift CLI (oc) ツール.
これらのポッドを追加すると、別のポッドが作成されますが、それ自体がクラスターの一部になるわけではないことに注意してください。 する キャッシュサーバーを追加する 実行中のキャッシュ クラスターに移動するには、[サーバー ノード] ページに移動します。 NCache Web Manager を開き、クラスターにそのサーバー ノードを追加するためのサーバー IP を追加します。 実行時にサーバー ノードがキャッシュ クラスターに追加され、パフォーマンスが大幅に向上します。 NCacheの簡単なスケーリング。
NCache 詳細 NCache OpenShiftでのデプロイ NCache OpenShiftで
まとめ
基本的に、 NCache Red Hat OpenShift でのデプロイメントは、従いやすい段階的な手順です。 コンテナー化は、今日の世界で軽量性を実現するために新たに必要とされる技術です。 NCache は非常に高速な分散キャッシング ソリューションであり、Red Hat OpenShift を使用すると、コンテナー化された Kubernetes クラスターを簡単に管理できます。 さあ、その世界に足を踏み入れて NCache 簡単な手順をいくつか実行するだけで、Kubernetes クラスターでアプリケーションを実行できます。