使い方 NCache AWS Elastic Kubernetes Service (EKS) で

Dockerコンテナを使用したElasticKubernetesクラスタ

AWS Elastic Kubernetes Service (EKS) は、アマゾン ウェブ サービス (AWS) が管理する Kubernetes サービスで、これを使用すると、Kubernetes クラスターをすべての最新パッチとともにセットアップし、それをサポートする基盤となるインフラストラクチャにアップグレードできます。

.NET/を使用している場合.NET Core またはEKSで実行されているJavaアプリケーションを使用したい NCache トランザクション負荷のピーク時のパフォーマンスとスケーラビリティを向上させるために、 NCache この環境を完全にサポートします。

このビデオを見て、展開がいかに簡単かを確認してください NCache AmazonElasticKubernetesクラスターに追加します。

NCache EKSでの展開

AWSクラウドでは、Kubernetesクラスター内で実行されているIngressControllerの前にクラシックなロードバランサーがあります。 このIngressControllerによって実装されるKubernetesIngressリソースは、ロードバランサーからのHTTPリクエストをクラスター内で実行されているさまざまなサービスにルーティングします。 このような分散アプリケーション環境では、高速読み取り操作を実行するときにスケーラビリティ、信頼性、高可用性を提供する分散キャッシングソリューションも必要です。 NCache に入っています。

ncache-deployment_eks

NCache 次のようにEKSクラスターにデプロイできます NCache Linuxコンテナーで実行されているサーバーとこれらのコンテナーは、Kubernetesポッド内でホストされます。 これらのIPアドレス NCache サーバーはによって解決されます キャッシュ検出サービス、これはKubernetesヘッドレスサービスであり、そこからのIPアドレスは、クライアントアプリケーションが接続できるキャッシュハンドルを作成するために使用されます。 NCache クラスタ化して、管理およびCRUD操作の実行を開始します。

以下は、本日実施するデモンストレーションの重要なパラメータです。 The NCache EKSクラスターにデプロイされるサーバーは、次のDockerイメージを使用します 'alachisoft/ncache' のタグ付き 'enterprise-server-linux-5.0.2'.

デモ-環境-詳細

すべての画像を取得するには NCache 提供します、私に来させてください Alachisoft Webサイト。 を選択 'ダウンロード' タブをクリックしてから'をクリックしますNCache'。 これはあなたをに連れて行きます NCache ダウンロードセンター。 [Docker Hub]セクションまで下にスクロールすると、上からXNUMX番目のエントリをクリックするだけで、 Dockerハブ のページ Alachisoft NCache。 ここでは、すべての画像を見ることができます NCache 提供します。 パラメータに戻ると、使用される画像には NCache Enterprise 5.0 SP2 Edition .NET Core インストール。 作成するクラスター化されたキャッシュは、レプリカトポロジのパーティションを使用します。 使用するXNUMXつのテストアプリケーションは次のとおりです。 XNUMXつあります .NET Core アプリケーションとXNUMXつのJavaアプリケーション、そしてどちらの場合も、のアプリデータキャッシングの側面を示します。 NCache。 2から始めます NCache サーバーを増やしてから、その数を3に増やします。これを実証するために、 NCache クライアントのパフォーマンスに影響を与えずにクラスターの状態。

EKSクラスターを作成する

これで、デモンストレーションを開始する準備が整いました。 もちろん、最初に行うことは、展開するEKSインフラストラクチャをセットアップすることです。 NCache サーバーとクライアントのリソース。 ここでは、EKSサービスのAWS入門ページを表示しています。 ここには、最初のEKSクラスターを起動して実行するために必要なすべての情報があります。 この情報には、IAMの役割や必要なポリシーなどの前提条件が含まれています。

作成-eks-クラスター

さらに、EKSクラスターをデプロイするVPCの作成について詳しく説明します。

作成-eks-cluster2

さらに下には、AWSCLIとKubernetesクラスターのアクセスと管理のための「kubectlc」コマンドラインユーティリティのインストールと使用法に関する情報があります。

作成-eks-cluster3

また、Kubernetesリソースをデプロイするワーカーノードを提供するKubernetesマネージドノードグループに関する情報も含まれています。 ここに記載されている情報を使用して、2つのパブリックサブネットと2つのプライベートサブネットを持つVPC上にEKSクラスターを作成します。EKSクラスターが稼働したら、残りのデモを続行します。

スタートページに記載されているこれらの手順を使用して、EKSクラスターのIAMロールとVPCインフラストラクチャを既に作成しました。 次に、EKSインフラストラクチャを作成するこれらの手順を実行します。

aws 管理コンソール

そのために、AWS管理コンソールを使用して、ElasticKubernetesServiceリンクをクリックします。 これにより、EKSサービスのメインページが表示されます。 ページの左側のペインにある[AmazonEKS]見出しの下で、[クラスター]リンクをクリックします。

aws 管理コンソール 2

現在、EKSクラスターはありません。 そのために、「クラスターの作成」リンクをクリックします。

作成-eks-cluster4

ここでは、構成パラメーターを指定します。 それで、私は'eks-であるEKSクラスターの名前から始めます。ncache'。 「Kubernetesバージョン」には「1.14」を選択します。 「IAMロール」と「VPC」も選択します。 セキュリティグループを選択すると、他のすべてがデフォルトのままになり、EKSクラスターのタグが付けられます。これがすべて完了したら、[作成]ボタンをクリックします。

今で EKSクラスター 作成中です。時間がかかるため、ビデオを一時停止します。 私のEKSクラスターのページで私はそれを見ることができます'eks-ncache' アクティブです'。 XNUMX番目のステップは、管理ノードグループを作成することです。そのために、[ノードグループ]セクションまでスクロールして、[ノードグループの追加]ボタンをクリックします。

作成ノード グループ

ノードグループの名前で始まるパラメータを指定し、「IAMロール」を選択します。

iam-役割

「SSHキーペア」を選択し、「次へ」をクリックします。

ssh-キーペア

ここでは、次の「AMIタイプ」を使用し、「インスタンスタイプ」には「t3.small」を使用します。 この後、「次へ」をクリックします。

アミタイプ

2つのワーカーノードを選択し、[次へ]をクリックします。

ワーカーノード

ここでパラメータを確認した後、[作成]をクリックしてノードグループの作成を開始します。 ここで、ノードグループが現在作成中のステータスになっていることがわかります。そこで、ビデオを一時停止します。 これで、EKSノードグループが「アクティブ」になり、EKSインフラストラクチャの作成が完了したことがわかります。

ノードグループ2の作成

クライアントマシンのPowerShellターミナルで、AWS CLIを使用して、「kubeconfig」ファイルを作成し、EKSクラスターにアクセスして、「kubeconfig」ファイルを作成します。 次に、EKSクラスターへの接続を確認すると、EKS管理対象ノードグループに含まれているXNUMXつのワーカーノードが表示されます。

CMD

IngressControllerをデプロイします

最初に行うことは、IngressControllerに必要なKubernetesリソースをデプロイすることです。 アーキテクチャ図に移ると、ここに示されているIngress Controllerは、後でデプロイするIngressリソースを実装するために使用されます。

ncache-deployment_eks

私たちのデモンストレーションでは、人気があるため、NGINXIngressコントローラーを使用しています。 まず、Kubernetes環境でNGINX Ingress Controllerを実行するために必要な必須リソースをデプロイし、その後、AWS固有のリソースをデプロイします。これにより、NGINXIngressの前に従来のロードバランサーが起動します。 NGINX Ingress Controllerが、この従来のロードバランサーを介してKubernetesクラスターの外部からHTTPリクエストを受信できるようにします。

次に、NGINXIngressControllerに必要な必須リソースをデプロイします。 これらのリソースの定義は、強調表示されたセクションに示されているURLをたどることで見つけることができます。 それでは、これ以上のことはせずに、始めましょう。必須のリソースがデプロイされました。 ここでは、YAMLファイルを開いています。これを使用して、NGINXIngressコントローラーに関連するXNUMXつのリソースをデプロイします。

ヤムル

最初のリソースは、NGINXIngressControllerの前で従来のロードバランサーを起動するために使用されるロードバランサーサービスです。 アノテーションセクションからわかるように、ロードバランサーはレイヤー7で動作し、HTTPリクエストをNGINXIngressControllerにルーティングします。 デプロイするもうXNUMXつのリソースは、「ConfigMap」リソースです。このリソースには、NGINXIngressControllerがKubernetesクラスター内でどのように動作するかについての構成パラメーターが含まれています。

次に、これらのリソースを使用してデプロイします。 'kubectl apply' コマンドとリソースがデプロイされました。 EC2ダッシュボードにアクセスして、ロードバランサーがスピンアップしたことを確認します。 このページを更新すると、新しいロードバランサーが導入されていることがわかります。 「ロードバランサー」リンクをクリックしてみましょう。これがNGINXIngressControllerの前にあるロードバランサーです。

ec2-ダッシュボード

配備します NCache サーバー

デプロイします NCache EKSクラスターへのサーバー。 再びアーキテクチャ図に戻ると、これらは NCache サーバーは、EKSクラスター内にクラスター化されたキャッシュを作成するために使用されます。 これがデプロイ用のYAMLファイルです NCache サーバーをKubernetesクラスターに接続します。 ご覧のとおり、これはスピンアップするデプロイメントリソースです。 NCache EKSクラスター内のサーバー。 以下は、 NCache サーバーがリッスンします。 値が8250の「management-tcp」ポートがあり、その上に NCache サーバーはクライアント接続要求をリッスンします。 値が8251の「management-http」ポートがあります。 NCache ウェブマネージャー リッスンし、値が9800の「client-port」があります。 NCache サーバーはクライアントのCRUD操作要求をリッスンします。

yaml2

使い方 'kubectl apply' コマンド、私は今作成するつもりです NCache EKSクラスター上のサーバーポッドで、ポッドのステータスを確認しましょう。 ポッドが実行されています。 2つあります NCache ここに表示されているIPアドレスを持つサーバー。

cmd2

NCache ディスカバリーサービス

次に、 NCache ディスカバリーサービス。 キャッシュ検出サービスは、上で実行されているヘッドレスサービスです。 NCache サーバーポッド。 その機能は、クライアントアプリケーションがクラスター化されたキャッシュに接続するときに使用するIPアドレスを解決することです。

ncache-deployment_eks3

これがKubernetesヘッドレスサービスのYAMLファイルです。 ご覧のとおり、サービスの名前は「cacheserver」になります。 「selector」セクションと「ports」セクションを見ると、このサービスが上で実行されていることがわかります。 NCache サーバーポッド。

yaml3

次に、EKSクラスターでCacheDiscoveryServiceリソースを作成します。 'kubectl apply' 指図。 サービスが作成されたので、その説明を見てみましょう。 サービスが解決する「エンドポイント」に、のIPアドレスが含まれていることがわかります。 NCache 強調表示されたセクションに示されているIPアドレスを持つサーバーは、ここに示されているIPアドレスと同じです。

cmd3

NCache マネージャーサービス

を使用します NCache Webマネージャ、クラスター化されたキャッシュを作成し、それにノードを追加します。 を公​​開するには NCache Web Managerは、別のKubernetesサービスリソースをデプロイします。 これがKubernetesサービスのYAMLファイルです。 NCache ウェブマネージャー

yaml4

ご覧のとおり、サービスの「名前」は「ncache'および'ポート'セクションから、80のポートが8251のターゲットポートにマップされることがわかります。 NCache Webマネージャーがリッスンします。 'selector'セクションを見ると、サービスが上で実行されていることがわかります。 NCache サーバーポッド。 このサービスは、後でデプロイするIngressリソースのバックエンドに登録され、そこからブラウザーからWebマネージャーにアクセスできるようになります。

これから作成します NCache を使用したEKSクラスターのサービスリソース 'kubectl apply' 指図。 サービスが作成されたので、説明をもう一度見てみましょう。ここで、「エンドポイント」が NCache サービスはに解決されます、のIPアドレスは NCache サーバー。

cmd4

NCache 進入

ここで、KubernetesIngressリソースをデプロイして NCache ブラウザからのWebマネージャ。 Ingressリソースは、NGINXIngressコントローラーによって実装されます。 The NCache Ingressのバックエンドに登録される予定のサービスは、ロードバランサーを介して着信するHTTPリクエストをにルーティングできるようにします。 NCache のWebマネージャー NCache 管理目的。 これは、EKSクラスターにデプロイするIngressリソースのYAMLファイルです。

yaml5

イングレスの「名前」は「ncache'そして注釈から、NGINXIngressコントローラーで実装されることがわかります。 さらに、これらの注釈は、スティッキーセッションを使用することを示しています。 NCache Webマネージャー。 したがって、別のWebマネージャーインスタンスで実行されている別のWebマネージャーインスタンスの周りでバウンスしないように NCache サーバーと私たちは簡単にクラスター化されたキャッシュを作成し、同じセッション内でそれにノードを追加することができます。 ルールのセクションから、URLのルートパスがにマップされることがわかります。 NCache サービス、それは公開します NCache Webマネージャー。

次に、EKSクラスターにIngressリソースを作成します。 Ingressが作成されたので、そのステータスを確認しましょう。 これで、Ingressが稼働していることがわかります。 イングレスのURLを確認しましょう。 URLは「アドレス」セクションに記載されています。 このURLをブラウザにコピーすると、Webマネージャにアクセスできるようになります。 だから、私のブラウザに来て、ここをクリックしてURLを貼り付けると、これで正常にアクセスできました NCache Kubernetesクラスター内からのWebマネージャー。

キャッシュクラスターの作成

次に、クラスター化されたキャッシュを作成します。 次に、を使用してクラスター化されたキャッシュを作成する手順を実行します。 NCache Webマネージャー。 したがって、最初に、ここに表示されている[新規]ボタンをクリックします。

作成-キャッシュ-クラスター

次に、クラスター化されたキャッシュに「democache」という名前を付け、「次へ」をクリックします。

キャッシュ名

「非同期」モードで、レプリカトポロジのパーティションを使用します。

非同期モード

そして今、私は追加するつもりです NCache クラスター化されたキャッシュへのサーバー。 したがって、「+」ボタンをクリックして、他のサーバーも追加します。 両方のサーバーを追加したら、[次へ]をクリックします。

ncache-サーバー

すべてをデフォルトのままにして、最後に「完了」をクリックします。 ここで、メインウィンドウに「デモキャッシュ」が正常に作成されたことがわかります。

デモキャッシュ作成

開始するには、キャッシュ名の横にあるチェックボックスをオンにして、[開始]を押します。

デモキャッシュ作成2

キャッシュが正常に開始されました。 次に、[監視]タブをクリックして、 NCache 監視ツール。

ncache-監視ツール

まず、「クラスターヘルス」セクションから、クラスター化されたキャッシュが完全に接続されていることがわかります。

クラスターヘルス

ここには、さまざまなサーバー側のパフォーマンスカウンターがあります。 「カウント」セクションでは、クライアントアプリケーションを開始していないため、アカウントが0であることがわかります。 「クライアントダッシュボード」に移動すると、ここで監視できるようになります NCache クライアント側のパフォーマンスカウンター。

クライアント-ダッシュボード

「レポートダッシュボード」では、サーバー側とクライアント側の両方のカウンターの全体像を確認できます。

レポート-ダッシュボード

クライアントアプリケーションのデプロイと実行

クラスタ化されたキャッシュが作成されたら、クライアントアプリケーションを実行します。 これがYAMLファイルで、クライアントアプリケーションをEKSクラスターにデプロイするために使用されます。

yaml6

クライアントという名前のデプロイメントリソースからわかるように、クライアントアプリケーションが実行されるポッドがXNUMXつあります。 使用されている「画像」はここに表示されています。これには両方が含まれています .NET Core およびJavaアプリケーションと NCache クライアント側を収集できるように、クライアントのインストール NCache パフォーマンスカウンター。 次に、クライアントリソースをEKSクラスターにデプロイします。 これでリソースが作成されました。 クライアントポッドのステータスを確認しましょう。 最初に行うことは、開始することです .NET Core 応用。 クライアントポッド内で、次のシェルコマンドを実行します。 "/app/testerdotmet/run.sh democache cacheserver" これはXNUMXつのパラメーターを取ります。つまり、キャッシュの名前である「democache」とヘッドレスサービスの名前である「cacheserver」です。

 command

そして今、私たちは .NET Core アプリケーションが実行されています。 にやってくる NCache モニターします。「クラスターヘルス」セクションで、クライアントが1つあり、カウンターアクティビティが取り込まれていることがわかります。 カウントが増加しているので、 .NET Core アプリケーションがデータをキャッシュにダンプし、「クライアントプロセス」セクションで、ここにポッドのIPがあります。 .NET Core アプリケーションが実行されており、アプリケーションのプロセスIDも実行されています。 「クライアントダッシュボード」にアクセスすると、クライアントポッドからのクライアント側カウンターがあることがわかります。

クライアントダッシュボード2

「レポートダッシュボード」では、これらのサーバー側とクライアント側の両方のパフォーマンスカウンターの全体像を確認できます。

レポート-ダッシュボード2

今で .NET Core アプリケーションが実行されているので、Javaアプリケーションを起動します。 と同じように .NET Core アプリケーション、クライアントポッド内で、次のシェルコマンドを実行します。これは、 .NET Core アプリケーション、つまりキャッシュの名前とヘッドレスサービスの名前。

cmd5

ここで、Javaアプリケーションが実行されていることがわかります。 に戻って NCache モニター、ここで2つのクライアントがあり、「クライアントプロセス」セクションに移動すると、Javaアプリケーションに関連するクライアントプロセスの別のエントリが表示されます。 したがって、これにより、アプリケーションが NCache 同じKubernetesクラスターで実行されているサーバー。

スケールアウト NCache クラスタ

スケールアウトします NCache 集まる。 私が最初にやろうとしていることは、スケールアウトすることです NCache 3にデプロイして、キャッシュクラスターに追加する別のサーバーを用意します。 展開がスケーリングされたので、サーバーのポッドIPアドレスを見てみましょう。ここに別のアドレスが表示されます。 NCache サーバーがKubernetesクラスターに追加されました。

cmd6

そして、新しいキャッシュサーバーを追加するために、キャッシュの名前の前にある[詳細の表示]リンクをクリックします。

新しいキャッシュ サーバー

「サーバーノード」セクションに移動し、「追加」ボタンをクリックして、3番目のサーバーのIPアドレスを入力します。

追加 IP アドレス

サーバーが追加されたので、サーバーを起動します。そのために、IPアドレスの横にあるチェックボックスをオンにして、[開始]をクリックします。

start

キャッシュサーバーが起動したので、メインウィンドウに戻り、ここに「デモキャッシュ」用の3つのサーバーが表示されます。

3サーバー

モニターウィンドウに来て、「カウント」セクションで、有効な負荷分散戦略のためにノードあたりのカウントが減少しました。

サーバー-ダッシュボード

メインウィンドウに戻って、キャッシュの名前の横にある省略記号ボタンをクリックし、[統計の表示]を選択して、キャッシュクラスターの別のビューを取得できるようにします。 ここでは、同じキャッシュクラスター内の別のサーバーノードによってバックアップされた1つのサーバーノードにデータを配置することにより、信頼性を提供するアクティブパーティションとレプリカパーティションを示しています。

統計

これで、このプレゼンテーションは終了です。 今日実行されたデモンストレーションについて質問がある場合、またはさまざまな機能について詳しく知りたい場合 NCache 提供します、で私達に連絡することを躊躇しないでください support@alachisoft.com。 ありがとうございます。

お問い合わせ(英語)

電話
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。