コンテナ化の導入により、アプリケーションの開発、デプロイメント、および管理が容易になりました。そのため、クラウドデプロイメントの人気が高まっています。 Azureは、ビジネスで最高であり、Kubernetesのデプロイを次の形式で最も速く簡単に使用できます。 Azure Kubernetes Service (AKS).
Azure Kubernetes環境でのアプリケーションのパフォーマンスを向上させるには、 NCache AKSクラスター内にデプロイして使用する必要があります。 NCache はメモリ内分散キャッシングソリューションであり、キャッシュがアプリケーションに近づくにつれて、アプリケーションのパフォーマンスを何倍にも向上させます。 使用する NCacheは本質的に分散されているため、遅延を改善するために必要な数のサーバーを追加できるため、AKSに非常に高いスケーラビリティがもたらされます。
NCache 詳細 コンテナの展開 NCache AKSドキュメント
NCache AzureKubernetesサービスのデプロイアーキテクチャ
の全体的なレイアウト NCacheAzureKubernetesServiceでののデプロイは次のようになります。ヘッドレスに接続されているアプリケーションがあります キャッシュ検出サービス。 このサービスは、クライアントがキャッシュサービスを実行しているクラスターポッドにアクセスできるようにする役割を果たします。 もあります ゲートウェイサービス これは、提供されたクライアントIPに基づいてトラフィックを特定のポッドにダウンさせるロードバランサーを提供します。
ポッドは、すべてのコンテナが同じホスト上にあることを保証するサービスを構築するための基本ユニットです。 ポッドには、RAM、CPU、ネットワークなどのリソースを共有するXNUMXつ以上のコンテナーが含まれますが、ポッドごとにXNUMXつのコンテナーを使用することをお勧めします。
リクエストのフローとAKSクラスターの構造 NCache その中に展開されているのは、次の図に示されています。
によって提供される多くのすぐに使える機能の使用を開始するには NCache Azure Kubernetes Serviceクラスターで、デプロイする必要があります NCache およびAKSセットアップで必要なサービス。 以下に示す手順は、展開と使用を開始するのに役立ちます NCache AzureKubernetesクラスター内。
NCache 詳細 コンテナの展開 NCache AKSドキュメント
ステップ1:作成 NCache 展開
Azure Kubernetes Serviceでは、アプリケーションまたはサービスのデプロイについて話すときはいつでも、YAMLファイルを作成する必要があります。 このYAMLファイルには、AKSクラスター内にポッドを作成するために必要なすべての情報が含まれています。 を含むポッドを正常に作成するためにYAMLファイルがどのように表示されるかを示します NCache サービス。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
kind: Deployment apiVersion: apps/v1beta1 # underlying Kubernetes version metadata: name: ncache labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: nodeSelector: "beta.kubernetes.io/os": linux containers: - name: ncache image: docker.io/alachisoft/ncache:enterprise-server-linux-5.0.2 ports: - name: cache-mgmt-tcp # for tcp communication containerPort: 8250 - name: cache-mgmt-http # for http communication containerPort: 8251 ... # remaining necessary ports |
作成しているものがデプロイメントポッドになることをクラスターが理解するには、「種類」を次のように言及する必要があります。 展開。 ここで注意する必要があるのは、「apiVersion」タグの下にあるKubernetesの基盤となるバージョンです。 Kubernetesはこのバージョン番号を変更し続けるため、デプロイするときは注意が必要です。 NCache このバージョン番号は、基盤となるKubernetesの対応するバージョン番号に設定されていること。
ここでの「レプリカ」の数は、このデプロイメントに含まれるポッドの数を示します。この場合は2です。要件に応じてこの値を変更できます。 「containers」タグの下に、へのパスを指定します NCache Enterprise サーバーDockerイメージ。 あなたはこの道を見つけることができます Dockerハブ.
NCache 詳細 コンテナの展開 NCache AKSドキュメント
デプロイするために知っておく必要のあるその他の要件のいくつか NCache AzureKubernetesクラスターにはポート情報があります。 クライアントが正常に対話するために NCache サーバーの場合、YAMLファイルでコンテナポート番号を指定する必要があります。
主に、これらは正常に展開するために理解する必要がある基本的な要件です NCache AKSクラスター内。 このYAMLファイルが作成されたら、このファイルを使用してAKSでポッドを作成します。
このYAMLファイルを作成するだけで、デプロイを成功させることができます NCache AKSクラスター内。 Azure Cloud Shellで次のコマンドを実行すると、出来上がりです。 あなたの NCache デプロイは、AzureKubernetesServiceで本格的に実行されるポッドになりました。
1 |
kubectl create -f [dir]/ncache.yaml |
ステップ2:作成 NCache ディスカバリーサービス
Kubernetesクラスタの外部で、キャッシュサーバーに接続するキャッシュクライアントについて話すとき、それらがキャッシュサーバーのIPアドレスを必要とすることは非常に理解できます。 これらのIPアドレスは静的であり、そのシステムの一部であるすべてのクライアントに認識されています。 ただし、同じ要素を取得してKubernetes環境内に配置すると、実装が変更されます。 Kubernetesクラスター内では、すべてのデプロイポッドに実行時に動的IPアドレスが割り当てられますが、これはクライアントアプリケーションには認識されません。 この実装は、クライアントアプリケーションの識別の邪魔になります NCache パフォーマンスとスケーラビリティを実現するサーバー。
この問題に対処するために、Kubernetesでは動的ではなく固定されたサービスを作成できます。 したがって、これを利用して、クライアントアプリケーションがポッドに簡単にアクセスできるようにするヘッドレス検出サービスを作成する必要があります。 NCache サービスが実行されています。 このサービスでYAMLファイルとして提供される情報により、すべてのクライアントアプリケーションがこのサービスに接続できるようになります。 このサービスは、すべてのクライアント接続要求にXNUMXつのサーバーを割り当てる責任があります。 すべてAKSクラスター内にとどまります。
それで、これ以上面倒なことはせずに、デプロイの準備ができたYAMLファイルの作成を始めましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
kind: Service apiVersion: v1 # underlying Kubernetes version metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None selector: app: ncache # same label as provided in the ncache YAML file ports: - name: management-tcp port: 8250 targetPort: 8250 - name: client-port port: 9800 targetPort: 9800 |
あなたの「種類」は サービス 「apiVerison」を基になるバージョンのKubernetesに設定します。 これをヘッドレスサービスにするには、「clientIP」タグを次のように設定する必要があります。 なし これは、検出サービスにパブリックIPが割り当てられないことを指定します。 残りはに必要なポートです NCache と通信するクライアント NCache サーバー。
ここから、Azure Cloud Shellに移動し、提供されたコマンドを実行して、Kubernetesクラスター内で完全に機能するヘッドレス検出サービスを実行します。
1 |
kubectl create -f [dir]/discoveryservice.yaml |
NCache 詳細 コンテナの展開 NCache AKSドキュメント
ステップ3:作成 NCache ゲートウェイサービス
AKSクラスター内では、何が起こってもクラスターに限定されます。 そしてあなたが使うために NCache ローカルマシンから、それを介して方法が必要です NCache 管理操作は、そのクラスター内で実行できます。 これがまさにゲートウェイサービスを作成する理由です。 アクセス、管理、監視を担当するサービス NCache AzureKubernetesサービスの外部から。
この場合も、クラスターでこの機能を使用するには、実行中のポッドが必要です。 実行中のポッドを作成するには、必要なすべてのタグと値を含むYAMLファイルを作成する必要があります。 それでは、ゲートウェイサービスを作成するためのYAMLファイルを作成することから始めましょう NCache 管理。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
kind: Service apiVersion: v1 # underlying Kubernetes version metadata: name: gateway spec: selector: app: ncache # same label as provided in the ncache YAML file type: LoadBalancer sessionAffinity: ClientIP ports: - name: management-http port: 8251 targetPort: 8251 |
ここで、Azure Kubernetes Serviceクラスターが、このポッドが何かをデプロイするのではなく、特定の目的のサービスとして機能することを知るには、「種類」を サービス。 このファイルには、ゲートウェイサービスがエラーなしで機能するために必要なポートも記載されている必要があります。 「タイプ」にタグを付ける ロードバランサー このゲートウェイサービスは、複数のサーバー上のクライアントの要求のバランスをとる外部ロードバランサーになると述べています。 確認する必要があるのは、「sessionAffinity」がに設定されていることです。 クライアントIP XNUMXつのクライアントが毎回同じサーバーにリダイレクトされるようにします。
これは、ゲートウェイサービスを作成するために必要なほとんどすべての情報です。 NCache 展開。 あなたが今する必要があるのは、以下を実行することです 作ります Azure ShellとAKSからのコマンドにより、このサービスが作成され、開始されます。
1 |
kubectl create -f [dir]/gatewayservice.yaml |
NCache 詳細 コンテナの展開 NCache AKSドキュメント
ステップ4:キャッシュクラスターを作成する
この時点までに持っているものは機能しています NCache サーバー、ゲートウェイサービス、および検出サービス NCache クライアント。 十分に楽しむために今必要なもの NCache Azure Kubernetesサービスでは、Kubernetesクラスター内にキャッシュクラスターを作成します。 簡単です。
このステップは、次を使用して実行できます。 NCache と統合されたWebマネージャー NCache 展開。 クラスターを正常に作成し、それにサーバーノードを追加するために必要な手順は次のとおりです。 NCache のドキュメント クラスタ化されたキャッシュを作成する。 このステップの唯一の工夫は、必要なサーバーのIPです。 これらは、Kubernetesクラスターがキャッシュポッドに割り当てたものと同じIPである必要があります。 これらのIPを取得するには、 ポッドを取得 AzureCloudShellのコマンド。
ステップ5:アプリケーションデプロイメントを作成する
クラスターにクライアントアプリケーション(.NETまたはJava)をデプロイして実行するには、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 |
kind: Deployment apiVersion: apps/v1beta1 # Underlying Kubernetes version metadata: name: client spec: replicas: 1 template: metadata: labels: app: client spec: imagePullSecrets: - name: client-private nodeSelector: "beta.kubernetes.io/os": linux containers: - name: client image: # Your docker client image here ports: - name: port1 containerPort: 8250 - name: port2 containerPort: 9800 |
ファイルに記載されている「nodeSelector」は次のようになります。 ウィンドウズ Kubernetesは両方のオペレーティングシステムをサポートしているためです。 さらに、要件に応じて、同じクラスター内に複数のクライアントアプリケーションをデプロイすることができます。 クライアントアプリケーションごとに、すべてのアプリケーションが別々のポッドで実行されるように、同様のYAMLファイルを作成する必要があります。
Microsoft Azureが提供するクラウドシェルで次のコマンドを実行して、クライアントアプリケーションポッドを正常に作成して起動します。
1 |
kubectl create -f [dir]/client.yaml |
提供 NCache クラスター内で接続を作成する場合、クライアントは非常にインテリジェントです。 このクライアントに必要なのは、基盤となるすべての基盤を自動的に検出するためにクライアントが通信する必要のあるサービスの名前だけです。 NCache AzureKubernetesクラスター内に存在する特定のキャッシュのクラスターノード。
使用することの最も実現可能な利点 NCache AKSでは、クライアント接続用にキャッシュポッドのIPアドレスを指定する必要はありません。 以前に作成したヘッドレス検出サービスは、実行時にキャッシュポッドのIPアドレスをクライアントアプリケーションに提供する役割を果たします。
NCache 詳細 コンテナの展開 NCache AKSドキュメント
ステップ6:監視 NCache クラスタ
サービス、サーバー、およびアプリケーションを稼働させたので、クラスター内のキャッシュアクティビティを監視する方法が必要です。 この正確な理由で、 NCache キャッシュクラスターの監視に役立つさまざまなツールが付属しています。 これらのツールは、クラスターの状態、パフォーマンス、ネットワークの不具合、および接続性についてより良いアイデアを得るのに役立ちます。
NCache 提供 Webモニター これは、キャッシュのリアルタイムパフォーマンスをグラフィカルに表示します。
同様に、あなたは キャッシュ統計 キャッシュアクティビティのより詳細な分析を提供するオプション。
ステップ7:スケーリング NCache クラスタ
NCacheは、非常にスケーラブルな分散キャッシュであるため、実行時にサーバーノードを追加および削除して、 NCache。 クラスタを監視しているときに、リクエスト/秒がそれらのリクエストを処理するために使用できるサーバーの数よりもはるかに多いと思われる場合は、デプロイメント内にXNUMXつまたは複数のキャッシュノードを追加できます。
スケーリングする方法は複数あります NCache AKSデプロイメントのクラスター。 あなたは使用することができます NCache Webマネージャーまたは NCache PowerShellツールまたは NCache YAMLファイル。 これらのメソッドを使用してクラスターにノードを追加したり、クラスターからノードを削除したりする方法について詳しくは、次のドキュメントをご覧ください。 AKSクラスターへのキャッシュサーバーの追加 & AKSクラスターからのキャッシュサーバーの削除.
NCache 詳細 コンテナの展開 NCache AKSドキュメント
私たちは何を学びましたか?
これまで見てきたことから、Azure Kubernetes Serviceは、アップグレードとパッチ適用を自動化する完全に統合され管理されたコンテナーオーケストレーターであると推測できます。 アプリケーションとリソースが存在するAKSクラスターでスケーラビリティと高可用性を実現するには、デプロイする必要があります NCache それである。 NCache は、AKSクラスター内で高いパフォーマンスとスケーラビリティを提供するスケーラブルなメモリ内分散キャッシュです。
展開の詳細なステップバイステップの図を取得するには NCache AKSでは、次のドキュメントを参照してください。 展開 NCache AzureKubernetesServiceで.
きれいな言葉遣いを使ってから、大きくて長い文章を使っていただけませんか? あなたのウェブサイトの記事やドキュメントを読むのは本当に苦労しています…