AWS Elastic Kubernetes Service (EKS) は、アマゾン ウェブ サービス (AWS) が管理する Kubernetes サービスで、これを使用すると、Kubernetes クラスターをすべての最新パッチとともにセットアップし、それをサポートする基盤となるインフラストラクチャにアップグレードできます。
EKS で実行されている .NET/.NET Core または Java アプリケーションを扱っていて、 NCache トランザクション負荷のピーク時のパフォーマンスとスケーラビリティを向上させるために、 NCache この環境を完全にサポートします。
このビデオを見て、展開がいかに簡単かを確認してください NCache AmazonElasticKubernetesクラスターに追加します。
AWSクラウドでは、Kubernetesクラスター内で実行されているIngressControllerの前にクラシックなロードバランサーがあります。 このIngressControllerによって実装されるKubernetesIngressリソースは、ロードバランサーからのHTTPリクエストをクラスター内で実行されているさまざまなサービスにルーティングします。 このような分散アプリケーション環境では、高速読み取り操作を実行するときにスケーラビリティ、信頼性、高可用性を提供する分散キャッシングソリューションも必要です。 NCache に入っています。
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 をインストールします。作成するクラスタ化キャッシュは、レプリカ トポロジのパーティションを使用します。使用する 2 つのテスト アプリケーションは次のとおりです。1 つの .NET Core アプリケーションと 1 つの Java アプリケーションがあり、どちらの場合も、アプリケーション データ キャッシングの側面を示します。 NCache。 2から始めます NCache サーバーを増やしてから、その数を3に増やします。これを実証するために、 NCache クライアントのパフォーマンスに影響を与えずにクラスターの状態。
これで、デモンストレーションを開始する準備が整いました。 もちろん、最初に行うことは、展開するEKSインフラストラクチャをセットアップすることです。 NCache サーバーとクライアントのリソース。 ここでは、EKSサービスのAWS入門ページを表示しています。 ここには、最初のEKSクラスターを起動して実行するために必要なすべての情報があります。 この情報には、IAMの役割や必要なポリシーなどの前提条件が含まれています。
さらに、EKSクラスターをデプロイするVPCの作成について詳しく説明します。
さらに下には、AWSCLIとKubernetesクラスターのアクセスと管理のための「kubectlc」コマンドラインユーティリティのインストールと使用法に関する情報があります。
また、Kubernetesリソースをデプロイするワーカーノードを提供するKubernetesマネージドノードグループに関する情報も含まれています。 ここに記載されている情報を使用して、2つのパブリックサブネットと2つのプライベートサブネットを持つVPC上にEKSクラスターを作成します。EKSクラスターが稼働したら、残りのデモを続行します。
スタートページに記載されているこれらの手順を使用して、EKSクラスターのIAMロールとVPCインフラストラクチャを既に作成しました。 次に、EKSインフラストラクチャを作成するこれらの手順を実行します。
そのために、AWS管理コンソールを使用して、ElasticKubernetesServiceリンクをクリックします。 これにより、EKSサービスのメインページが表示されます。 ページの左側のペインにある[AmazonEKS]見出しの下で、[クラスター]リンクをクリックします。
現在、EKSクラスターはありません。 そのために、「クラスターの作成」リンクをクリックします。
ここで設定パラメータを指定します。まず、EKS クラスターの名前「eks-ncache」を入力します。「Kubernetes バージョン」には「1.14」を選択します。「IAM ロール」と「VPC」も選択します。セキュリティ グループを選択し、その他はすべてデフォルトのままにします。EKS クラスターのタグを指定します。すべて完了したら、「作成」ボタンをクリックします。
今で EKSクラスター 作成中なので、しばらく時間がかかるのでビデオを一時停止します。EKS クラスターのページで、「eks-ncache」が「アクティブ」になっていることがわかります。2 番目のステップは、管理ノード グループを作成することです。そのためには、「ノード グループ」セクションまで下にスクロールし、「ノード グループの追加」ボタンをクリックします。
ノードグループの名前で始まるパラメータを指定し、「IAMロール」を選択します。
「SSHキーペア」を選択し、「次へ」をクリックします。
ここでは、次の「AMIタイプ」を使用し、「インスタンスタイプ」には「t3.small」を使用します。 この後、「次へ」をクリックします。
2つのワーカーノードを選択し、[次へ]をクリックします。
ここでパラメータを確認した後、[作成]をクリックしてノードグループの作成を開始します。 ここで、ノードグループが現在作成中のステータスになっていることがわかります。そこで、ビデオを一時停止します。 これで、EKSノードグループが「アクティブ」になり、EKSインフラストラクチャの作成が完了したことがわかります。
クライアントマシンのPowerShellターミナルで、AWS CLIを使用して、「kubeconfig」ファイルを作成し、EKSクラスターにアクセスして、「kubeconfig」ファイルを作成します。 次に、EKSクラスターへの接続を確認すると、EKS管理対象ノードグループに含まれているXNUMXつのワーカーノードが表示されます。
最初に行うことは、IngressControllerに必要なKubernetesリソースをデプロイすることです。 アーキテクチャ図に移ると、ここに示されているIngress Controllerは、後でデプロイするIngressリソースを実装するために使用されます。
私たちのデモンストレーションでは、人気があるため、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の前にあるロードバランサーです。
デプロイします NCache EKSクラスターへのサーバー。 再びアーキテクチャ図に戻ると、これらは NCache サーバーは、EKSクラスター内にクラスター化されたキャッシュを作成するために使用されます。 これがデプロイ用のYAMLファイルです NCache サーバーをKubernetesクラスターに接続します。 ご覧のとおり、これはスピンアップするデプロイメントリソースです。 NCache EKSクラスター内のサーバー。 以下は、 NCache サーバーがリッスンします。 値が8250の「management-tcp」ポートがあり、その上に NCache サーバーはクライアント接続要求をリッスンします。 値が8251の「management-http」ポートがあります。 NCache ウェブマネージャー リッスンし、値が9800の「client-port」があります。 NCache サーバーはクライアントのCRUD操作要求をリッスンします。
使い方 'kubectl apply' コマンド、私は今作成するつもりです NCache EKSクラスター上のサーバーポッドで、ポッドのステータスを確認しましょう。 ポッドが実行されています。 2つあります NCache ここに表示されているIPアドレスを持つサーバー。
次に、 NCache ディスカバリーサービス。 キャッシュ検出サービスは、上で実行されているヘッドレスサービスです。 NCache サーバーポッド。 その機能は、クライアントアプリケーションがクラスター化されたキャッシュに接続するときに使用するIPアドレスを解決することです。
これがKubernetesヘッドレスサービスのYAMLファイルです。 ご覧のとおり、サービスの名前は「cacheserver」になります。 「selector」セクションと「ports」セクションを見ると、このサービスが上で実行されていることがわかります。 NCache サーバーポッド。
次に、EKSクラスターでCacheDiscoveryServiceリソースを作成します。 'kubectl apply' 指図。 サービスが作成されたので、その説明を見てみましょう。 サービスが解決する「エンドポイント」に、のIPアドレスが含まれていることがわかります。 NCache 強調表示されたセクションに示されているIPアドレスを持つサーバーは、ここに示されているIPアドレスと同じです。
を使用します NCache Webマネージャ、クラスター化されたキャッシュを作成し、それにノードを追加します。 を公開するには NCache Web Managerは、別のKubernetesサービスリソースをデプロイします。 これがKubernetesサービスのYAMLファイルです。 NCache ウェブマネージャー
ご覧のとおり、サービスの「名前」は「ncache」になり、「ポート」セクションから、ポート80がターゲットポート8251にマッピングされることがわかります。 NCache Webマネージャーがリッスンします。 'selector'セクションを見ると、サービスが上で実行されていることがわかります。 NCache サーバーポッド。 このサービスは、後でデプロイするIngressリソースのバックエンドに登録され、そこからブラウザーからWebマネージャーにアクセスできるようになります。
これから作成します NCache を使用したEKSクラスターのサービスリソース 'kubectl apply' 指図。 サービスが作成されたので、説明をもう一度見てみましょう。ここで、「エンドポイント」が NCache サービスはに解決されます、のIPアドレスは NCache サーバー。
ここで、KubernetesIngressリソースをデプロイして NCache ブラウザからのWebマネージャ。 Ingressリソースは、NGINXIngressコントローラーによって実装されます。 The NCache Ingressのバックエンドに登録される予定のサービスは、ロードバランサーを介して着信するHTTPリクエストをにルーティングできるようにします。 NCache のWebマネージャー NCache 管理目的。 これは、EKSクラスターにデプロイするIngressリソースのYAMLファイルです。
Ingressの「名前」は「ncache」で、注釈から、NGINX Ingressコントローラーで実装されることがわかります。さらに、これらの注釈は、スティッキーセッションを使用することを示しています。 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 監視ツール。
まず、「クラスターヘルス」セクションから、クラスター化されたキャッシュが完全に接続されていることがわかります。
ここには、さまざまなサーバー側のパフォーマンスカウンターがあります。 「カウント」セクションでは、クライアントアプリケーションを開始していないため、アカウントが0であることがわかります。 「クライアントダッシュボード」に移動すると、ここで監視できるようになります NCache クライアント側のパフォーマンスカウンター。
「レポートダッシュボード」では、サーバー側とクライアント側の両方のカウンターの全体像を確認できます。
クラスタ化されたキャッシュが作成されたら、クライアントアプリケーションを実行します。 これがYAMLファイルで、クライアントアプリケーションをEKSクラスターにデプロイするために使用されます。
クライアントという名前のデプロイメント リソースからわかるように、クライアント アプリケーションが実行される Pod が 1 つあります。使用されている「イメージ」はここに示されており、これには .NET Core アプリケーションと Java アプリケーションの両方が含まれています。 NCache クライアント側を収集できるように、クライアントのインストール NCache パフォーマンスカウンター。これからクライアントリソースを EKS クラスターにデプロイします。リソースが作成されました。クライアント Pod の状態を確認しましょう。まず、.NET Core アプリケーションを起動します。クライアント Pod 内で、次のシェルコマンドを実行します。 "/app/testerdotmet/run.sh democache cacheserver" これはXNUMXつのパラメーターを取ります。つまり、キャッシュの名前である「democache」とヘッドレスサービスの名前である「cacheserver」です。
そして、.NET Core アプリケーションが実行されていることがわかります。 NCache モニターを見ると、「クラスタの状態」セクションにクライアントが 1 つあり、カウンターのアクティビティが増加していることがわかります。.NET Core アプリケーションがキャッシュにデータをダンプしているため、カウントが増加しています。また、「クライアント プロセス」セクションには、.NET Core アプリケーションが実行されている Pod の IP アドレスと、アプリケーションのプロセス ID が表示されています。「クライアント ダッシュボード」を見ると、クライアント Pod から送信されたクライアント側のカウンターが表示されています。
「レポートダッシュボード」では、これらのサーバー側とクライアント側の両方のパフォーマンスカウンターの全体像を確認できます。
.NET Core アプリケーションが起動したので、次に Java アプリケーションを起動します。.NET Core アプリケーションと同様に、クライアント Pod 内で、次のシェル コマンドを実行します。このコマンドは、.NET Core アプリケーションと同じパラメータ、つまりキャッシュの名前とヘッドレス サービスの名前を受け取ります。
ここで、Javaアプリケーションが実行されていることがわかります。 に戻って NCache モニター、ここで2つのクライアントがあり、「クライアントプロセス」セクションに移動すると、Javaアプリケーションに関連するクライアントプロセスの別のエントリが表示されます。 したがって、これにより、アプリケーションが NCache 同じKubernetesクラスターで実行されているサーバー。
スケールアウトします NCache 集まる。 私が最初にやろうとしていることは、スケールアウトすることです NCache 3にデプロイして、キャッシュクラスターに追加する別のサーバーを用意します。 展開がスケーリングされたので、サーバーのポッドIPアドレスを見てみましょう。ここに別のアドレスが表示されます。 NCache サーバーがKubernetesクラスターに追加されました。
そして、新しいキャッシュサーバーを追加するために、キャッシュの名前の前にある[詳細の表示]リンクをクリックします。
「サーバーノード」セクションに移動し、「追加」ボタンをクリックして、3番目のサーバーのIPアドレスを入力します。
サーバーが追加されたので、サーバーを起動します。そのために、IPアドレスの横にあるチェックボックスをオンにして、[開始]をクリックします。
キャッシュサーバーが起動したので、メインウィンドウに戻り、ここに「デモキャッシュ」用の3つのサーバーが表示されます。
モニターウィンドウに来て、「カウント」セクションで、有効な負荷分散戦略のためにノードあたりのカウントが減少しました。
メインウィンドウに戻って、キャッシュの名前の横にある省略記号ボタンをクリックし、[統計の表示]を選択して、キャッシュクラスターの別のビューを取得できるようにします。 ここでは、同じキャッシュクラスター内の別のサーバーノードによってバックアップされた1つのサーバーノードにデータを配置することにより、信頼性を提供するアクティブパーティションとレプリカパーティションを示しています。
これで、このプレゼンテーションは終了です。 今日実行されたデモンストレーションについて質問がある場合、またはさまざまな機能について詳しく知りたい場合 NCache 提供します、で私達に連絡することを躊躇しないでください support@alachisoft.com。 ありがとうございます。
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。