Share via


Azure Stack Edge Pro GPU 上の Azure Arc 対応 Kubernetes クラスターで Redis を使用した PHP Guestbook ステートレス アプリケーションをデプロイする

適用対象:Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

この記事では、Kubernetes と Azure Arc を使用してシンプルな多層 Web アプリケーションを構築してデプロイする方法について説明します。この例は、次のコンポーネントで構成されています。

  • guestbookのエントリを格納する単一インスタンスの Redis マスター
  • 読み取りに対応する複数の複製された Redis インスタンス
  • 複数の Web フロントエンド インスタンス

デプロイは、Azure Stack Edge Pro デバイス上の Azure Arc 対応 Kubernetes クラスターで GitOps を使用して行われます。

この手順は、Azure Stack Edge Pro デバイス上の Kubernetes ワークロードに関する記事を確認し、Azure Arc 対応 Kubernetes (プレビュー) の概念を理解しているユーザーを対象としています。

Note

この記事には、Microsoft が使用しなくなった "スレーブ" という用語への言及が含まれています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。

前提条件

ステートレス アプリケーションをデプロイする前に、お使いのデバイスと、そのデバイスへのアクセスに使用するクライアントで、次の前提条件が満たされていることを確認してください。

デバイスでは

  1. 1 ノードの Azure Stack Edge Pro デバイスに対するサインイン資格情報がある。

    1. デバイスがアクティブ化されている。 デバイスをアクティブにするに関する記事を参照してください。
    2. デバイスに、Azure portal を使用して構成されたコンピューティング ロールがあり、Kubernetes クラスターがある。 コンピューティングの構成に関する記事を参照してください。
  2. お使いのデバイス上の既存の Kubernetes クラスターで Azure Arc が有効になっていて、対応する Azure Arc リソースが Azure portal にある。 詳細な手順については、Azure Stack Edge Pro デバイスでの Azure Arc の有効化に関するページを参照してください。

デバイスにアクセスするクライアントの場合

  1. Azure Stack Edge Pro デバイスへのアクセスに使われる Windows クライアント システムがある。

  2. Azure Stack Edge Pro デバイス上の Kubernetes クラスターへのアクセスに関する記事で説明されている手順を完了している。 完了した内容:

    • クライアントに kubectl がインストールされている。

    • kubectl クライアントのバージョンと、Azure Stack Edge Pro デバイスで実行されている Kubernetes マスターのバージョンの差が 1 未満であることを確認する。

      • クライアントで実行されている kubectl のバージョンを確認するには、kubectl version を使用します。 完全なバージョンをメモしておきます。
      • お使いの Azure Stack Edge Pro デバイスのローカル UI で、[概要] に移動し、Kubernetes ソフトウェアの番号をメモします。
      • サポートされている Kubernetes バージョンで提供されているマッピングで、これら 2 つのバージョンの互換性を確認します。
  3. Azure Arc デプロイの実行に使用できる GitOps 構成がある。 この例では、次の yaml ファイルを使用して Azure Stack Edge Pro デバイスにデプロイします。

    • frontend-deployment.yaml
    • frontend-service.yaml
    • redis-master-deployment.yaml
    • redis-master-service.yaml
    • redis-slave-deployment.yaml
    • redis-slave-service.yaml

構成のデプロイ

Azure portal で次の手順を実行して、GitOps 構成をデプロイするように Azure Arc リソースを構成します。

  1. Azure portal で、お使いのデバイス上の Kubernetes クラスターで Azure Arc を有効にしたときに作成した Azure Arc リソースに移動します。

    Go to Azure Arc resource

  2. [構成] に移動し、[+ 構成の追加] を選択します。

    Screenshot shows the Azure Arc-enabled Kubernetes cluster with Add configuration selected.

  3. Flux バージョン 1 拡張機能を指定してください。

  4. [GitOps 構成の追加] で、フィールドに適切な値を入力し、[追加] を選択してください。

    パラメーター 説明
    構成名 構成リソースの名前。
    演算子のインスタンス名 特定の構成を識別する演算子のインスタンス名。 名前は最大 253 文字の文字列で、使用できるのは小文字、英数字、ハイフン、およびピリオドのみです。
    演算子の名前空間 demotestguestbook に設定して、デプロイ yaml で指定されている名前空間と一致させます。
    このフィールドでは、演算子がインストールされる名前空間を定義します。 名前は最大 253 文字の文字列で、使用できるのは小文字、英数字、ハイフン、およびピリオドのみです。
    リポジトリ URL
    GitOps 構成が配置されている Git リポジトリのパス (http://github.com/username/repo または git://github.com/username/repo 形式)。
    演算子のスコープ [名前空間] を選択します。
    このパラメーターは、演算子がインストールされるスコープを定義します。 デプロイ yaml ファイルで指定された名前空間に演算子をインストールするために [名前空間] を選択します。
    演算子型 既定のままにします。
    このパラメーターは、演算子の種類を指定します (既定で flux として設定されます)。
    演算子のパラメーター 空白のままにします。
    このパラメーターには、flux 演算子に渡すパラメーターが含まれます。
    Helm このチェック ボックスはオフのままにしてください。
    グラフ ベースのデプロイを行う場合は、このオプションを有効にします。

    Add configuration

  5. 構成のデプロイが開始され、[Operator state]\(演算子の状態\)[Pending]\(保留中\) と表示されます。

    Screenshot shows the Azure Arc-enabled Kubernetes cluster in a pending state as it refreshes.

  6. デプロイには数分かかります。 デプロイが完了すると、[Operator state]\(演算子の状態\)[インストール] と表示されます。

    Screenshot shows the Azure Arc-enabled Kubernetes cluster in an installed state.

デプロイの検証

GitOps 構成を使用したデプロイにより、Git リポジトリにあるデプロイ yaml ファイルで指定されているように demotestguestbook 名前空間が作成されます。

  1. GitOps 構成を適用した後、デバイスの PowerShell インターフェイスに接続します。

  2. 次のコマンドを実行して、デプロイに対応する demotestguestbook 名前空間で実行されているポッドを一覧表示します。

    kubectl get pods -n <your-namespace>

    以下は出力例です。

    [10.128.44.240]: PS>kubectl get pods -n demotestguestbook
    NAME                            READY   STATUS    RESTARTS   AGE
    aseoperator1-5569658644-cqtb5   1/1     Running   0          91m
    frontend-6cb7f8bd65-4xb4f       1/1     Running   0          91m
    frontend-6cb7f8bd65-q9cxj       1/1     Running   0          91m
    frontend-6cb7f8bd65-xpzs6       1/1     Running   0          91m
    memcached-86bdf9f56b-5l2fq      1/1     Running   0          91m
    redis-master-7db7f6579f-2z29w   1/1     Running   0          91m
    redis-slave-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-slave-7664787fbc-vlvzn    1/1     Running   0          91m
    [10.128.44.240]: PS>
    
  3. この例では、フロントエンド サービスは type:LoadBalancer としてデプロイされています。 guestbookを表示するには、このサービスの IP アドレスを調べる必要があります。 次のコマンドを実行します。

    kubectl get service -n <your-namespace>

    [10.128.44.240]: PS>kubectl get service -n demotestguestbook
    NAME           TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    frontend       LoadBalancer   10.96.79.38      10.128.44.245   80:31238/TCP   85m
    memcached      ClusterIP      10.102.47.75     <none>          11211/TCP      85m
    redis-master   ClusterIP      10.104.32.99     <none>          6379/TCP       85m
    redis-slave    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. type:LoadBalancer のフロントエンド サービスには、外部 IP アドレスがあります。 この IP は、デバイスでコンピューティング ネットワーク設定を構成するときに外部サービスに指定した IP アドレス範囲に含まれています。 この IP アドレスを使用して、https://<external-IP-address> という URL でguestbookを表示します。

    View guestbook

展開の削除

デプロイを削除するには、Azure portal から構成を削除できます。 構成を削除すると、作成されたオブジェクトがデプロイとサービスを含めて削除されます。

  1. Azure portal で、Azure Arc リソース > [構成] に移動します。
  2. 削除する構成を見つけます。 [...] を選択してコンテキスト メニューを呼び出し、[削除] を選択します。 Delete configuration

構成が削除されるまで数分かかる場合があります。

次のステップ

Kubernetes ダッシュボードを使用して Azure Stack Edge Pro デバイス上のデプロイを監視する方法について学習する