この例では、オーケストレーションテンプレートを使用して、ASP.NET Web アプリケーションを Container Service for Kubernetes (ACK) クラスター内の Windows ノードにデプロイする方法を示します。このアプリケーションは、Deployment と LoadBalancer タイプの Service で構成されており、ポート 80 でインターネットからアクセスできます。
前提条件
開始する前に、以下を確認してください。
少なくとも 1 つの Windows ノードを持つクラスター。詳細については、「Windows ノードプールの作成と管理」をご参照ください。
ステップ 1: サンプルアプリケーションのデプロイ
サンプル ASP.NET アプリケーションを Windows ノードにデプロイします。Service は Server Load Balancer インスタンスを自動的に作成し、アプリケーションのポート 80 をインターネットに公開します。
「ACK コンソール」にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。 左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。
[YAML から作成] をクリックし、[サンプルテンプレート] を [カスタム] に設定します。以下の YAML コンテンツを入力してから、[送信] をクリックします。
以下の YAML は、ASP.NET Web アプリケーションを定義します。
tolerationsおよびnodeAffinityフィールドは、Pod が混在 OS クラスター内の Windows ノードにのみスケジュールされるようにします。Service は、targetPortを介して外部ポート 80 をコンテナのポート 8080 にマッピングします。イメージアドレスの
<cn-hangzhou>を、ご利用のクラスターのリージョン ID (例:cn-beijing) に置き換えてください。apiVersion: v1 kind: Service metadata: labels: app: web-windows name: web-windows spec: type: LoadBalancer ports: - port: 80 protocol: TCP targetPort: 8080 selector: app: web-windows --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: web-windows name: web-windows spec: selector: matchLabels: app: web-windows template: metadata: labels: app: web-windows spec: restartPolicy: Always terminationGracePeriodSeconds: 30 tolerations: - key: os value: windows affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/os operator: In values: - windows containers: # イメージアドレスの <cn-hangzhou> を、ご利用のクラスターの実際のリージョンに置き換えてください。 - image: registry-cn-hangzhou-vpc.ack.aliyuncs.com/acs/dotnet-samples:aspnetapp name: windows ports: - containerPort: 8080 protocol: TCP送信後、[デプロイメント] ページに戻り、リストに新しい Web アプリケーションが表示されます。
Pod が実行中であることを確認します。
kubectl get pods -l app=web-windows予想される出力は次のとおりです。
NAME READY STATUS RESTARTS AGE web-windows-6d7f9d9b4c-xk2lp 1/1 Running 0 2m
ステップ 2: アプリケーションへのアクセス
Service に割り当てられた外部 IP アドレスを取得します。
kubectl get service web-windows予想される出力は次のとおりです。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE web-windows LoadBalancer 172.16.3.210 47.xxx.xxx.xxx 80:32001/TCP 3mEXTERNAL-IPフィールドには、Server Load Balancer インスタンスのプロビジョニング中に 1 ~ 2 分間<pending>と表示される場合があります。IP アドレスが表示されるまで、コマンドを再度実行してください。「クラスター」ページで、目的のクラスターを見つけ、その名前をクリックします。左側ペインで、「ネットワーク」>「サービス」を選択します。
目的のサービス (web-windows) の名前をクリックします。[基本情報]セクションで、[外部 IP]をクリックして Web アプリケーションにアクセスします。
