次の方法で共有


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

適用対象:Pro GPU SKU の場合は「はい」Azure Stack Edge Pro - GPUPro 2 SKU の場合は「はい」Azure Stack Edge Pro 2Pro R SKU の場合は「はい」Azure Stack Edge Pro RMini R SKU の場合は「はい」Azure 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 (プレビュー) の概念に精通しているユーザーを対象としています。

[前提条件]

ステートレス アプリケーションを展開する前に、デバイスとデバイスへのアクセスに使用するクライアントで、次の前提条件を満たしていることを確認します。

デバイスの場合

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

    1. デバイスがアクティブになります。 「 デバイスのアクティブ化」を参照してください。
    2. デバイスには、Azure portal を使用して構成されたコンピューティング ロールがあり、Kubernetes クラスターがあります。 コンピューティング の構成を参照してください。
  2. デバイス上の既存の Kubernetes クラスターで Azure Arc を有効にしており、Azure portal に対応する Azure Arc リソースがあります。 詳細な手順については、「 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 versionを使用して、クライアントで実行されている kubectl のバージョンを確認します。 完全なバージョンをメモしておきます。
      • 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-replica-deployment.yaml
    • redis-replica-service.yaml

構成の展開

Azure portal を使用して GitOps 構成をデプロイするように Azure Arc リソースを構成するには、次の手順に従います。

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

    Azure Arc リソースに移動する

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

    [構成の追加] が選択されている Azure Arc 対応 Kubernetes クラスターを示すスクリーンショット。

  3. Flux バージョン 1 拡張機能を指定します。

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

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

    構成の追加

  5. 構成のデプロイが開始され、 オペレーターの状態[保留中] と表示されます。

    更新時に保留中の状態の Azure Arc 対応 Kubernetes クラスターを示すスクリーンショット。

  6. デプロイには数分かかります。 デプロイが完了すると、オペレーターの 状態[インストール済み] と表示されます。

    インストールされた状態の Azure Arc 対応 Kubernetes クラスターを示すスクリーンショット。

デプロイを検証する

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

  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-replica-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-replica-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-replica    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. type:LoadBalancerのフロントエンド サービスには、外部 IP アドレスがあります。 この IP は、デバイスでコンピューティング ネットワーク設定を構成するときに外部サービスに指定した IP アドレス範囲から取得されます。 URL で guestbook を表示するには、次の IP アドレスを使用します: https://<external-IP-address>

    ゲストブックを表示する

デプロイを削除する

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

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

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

次のステップ

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