Azure Stack Edge Pro GPU 上の Azure Arc 対応 Kubernetes クラスターで Redis を使用した PHP Guestbook
ステートレス アプリケーションをデプロイする
適用対象: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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 ノードの Azure Stack Edge Pro デバイスに対するサインイン資格情報がある。
- デバイスがアクティブ化されている。 デバイスをアクティブにするに関する記事を参照してください。
- デバイスに、Azure portal を使用して構成されたコンピューティング ロールがあり、Kubernetes クラスターがある。 コンピューティングの構成に関する記事を参照してください。
お使いのデバイス上の既存の Kubernetes クラスターで Azure Arc が有効になっていて、対応する Azure Arc リソースが Azure portal にある。 詳細な手順については、Azure Stack Edge Pro デバイスでの Azure Arc の有効化に関するページを参照してください。
デバイスにアクセスするクライアントの場合
Azure Stack Edge Pro デバイスへのアクセスに使われる Windows クライアント システムがある。
クライアントでは、Windows PowerShell 5.0 以降が実行されている。 Windows PowerShell の最新バージョンをダウンロードするには、「Windows PowerShell のインストール」を参照してください。
サポートされているオペレーティング システムが搭載されている他のクライアントを使用することもできます。 この記事では、Windows クライアントを使用する場合の手順について説明します。
Azure Stack Edge Pro デバイス上の Kubernetes クラスターへのアクセスに関する記事で説明されている手順を完了している。 完了した内容:
クライアントに
kubectl
がインストールされている。kubectl
クライアントのバージョンと、Azure Stack Edge Pro デバイスで実行されている Kubernetes マスターのバージョンの差が 1 未満であることを確認する。- クライアントで実行されている kubectl のバージョンを確認するには、
kubectl version
を使用します。 完全なバージョンをメモしておきます。 - お使いの Azure Stack Edge Pro デバイスのローカル UI で、[概要] に移動し、Kubernetes ソフトウェアの番号をメモします。
- サポートされている Kubernetes バージョンで提供されているマッピングで、これら 2 つのバージョンの互換性を確認します。
- クライアントで実行されている kubectl のバージョンを確認するには、
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 リソースを構成します。
Azure portal で、お使いのデバイス上の Kubernetes クラスターで Azure Arc を有効にしたときに作成した Azure Arc リソースに移動します。
[構成] に移動し、[+ 構成の追加] を選択します。
Flux バージョン 1 拡張機能を指定してください。
[GitOps 構成の追加] で、フィールドに適切な値を入力し、[追加] を選択してください。
パラメーター 説明 構成名 構成リソースの名前。 演算子のインスタンス名 特定の構成を識別する演算子のインスタンス名。 名前は最大 253 文字の文字列で、使用できるのは小文字、英数字、ハイフン、およびピリオドのみです。 演算子の名前空間 demotestguestbook に設定して、デプロイ yaml
で指定されている名前空間と一致させます。
このフィールドでは、演算子がインストールされる名前空間を定義します。 名前は最大 253 文字の文字列で、使用できるのは小文字、英数字、ハイフン、およびピリオドのみです。リポジトリ URL
GitOps 構成が配置されている Git リポジトリのパス (http://github.com/username/repo
またはgit://github.com/username/repo
形式)。演算子のスコープ [名前空間] を選択します。
このパラメーターは、演算子がインストールされるスコープを定義します。 デプロイ yaml ファイルで指定された名前空間に演算子をインストールするために [名前空間] を選択します。演算子型 既定のままにします。
このパラメーターは、演算子の種類を指定します (既定で flux として設定されます)。演算子のパラメーター 空白のままにします。
このパラメーターには、flux 演算子に渡すパラメーターが含まれます。Helm このチェック ボックスはオフのままにしてください。
グラフ ベースのデプロイを行う場合は、このオプションを有効にします。構成のデプロイが開始され、[Operator state]\(演算子の状態\) が [Pending]\(保留中\) と表示されます。
デプロイには数分かかります。 デプロイが完了すると、[Operator state]\(演算子の状態\) が [インストール] と表示されます。
デプロイの検証
GitOps 構成を使用したデプロイにより、Git リポジトリにあるデプロイ yaml
ファイルで指定されているように demotestguestbook
名前空間が作成されます。
GitOps 構成を適用した後、デバイスの PowerShell インターフェイスに接続します。
次のコマンドを実行して、デプロイに対応する
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>
この例では、フロントエンド サービスは 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>
type:LoadBalancer
のフロントエンド サービスには、外部 IP アドレスがあります。 この IP は、デバイスでコンピューティング ネットワーク設定を構成するときに外部サービスに指定した IP アドレス範囲に含まれています。 この IP アドレスを使用して、https://<external-IP-address>
という URL でguestbook
を表示します。
展開の削除
デプロイを削除するには、Azure portal から構成を削除できます。 構成を削除すると、作成されたオブジェクトがデプロイとサービスを含めて削除されます。
- Azure portal で、Azure Arc リソース > [構成] に移動します。
- 削除する構成を見つけます。 [...] を選択してコンテキスト メニューを呼び出し、[削除] を選択します。
構成が削除されるまで数分かかる場合があります。
次のステップ
Kubernetes ダッシュボードを使用して Azure Stack Edge Pro デバイス上のデプロイを監視する方法について学習する