すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Windows アプリケーションの作成

最終更新日:Mar 26, 2026

この例では、オーケストレーションテンプレートを使用して、ASP.NET Web アプリケーションを Container Service for Kubernetes (ACK) クラスター内の Windows ノードにデプロイする方法を示します。このアプリケーションは、Deployment と LoadBalancer タイプの Service で構成されており、ポート 80 でインターネットからアクセスできます。

前提条件

開始する前に、以下を確認してください。

ステップ 1: サンプルアプリケーションのデプロイ

サンプル ASP.NET アプリケーションを Windows ノードにデプロイします。Service は Server Load Balancer インスタンスを自動的に作成し、アプリケーションのポート 80 をインターネットに公開します。

  1. ACK コンソール」にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。 左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. [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 アプリケーションが表示されます。

  4. Pod が実行中であることを確認します。

    kubectl get pods -l app=web-windows

    予想される出力は次のとおりです。

    NAME                           READY   STATUS    RESTARTS   AGE
    web-windows-6d7f9d9b4c-xk2lp   1/1     Running   0          2m

ステップ 2: アプリケーションへのアクセス

  1. 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   3m

    EXTERNAL-IP フィールドには、Server Load Balancer インスタンスのプロビジョニング中に 1 ~ 2 分間 <pending> と表示される場合があります。IP アドレスが表示されるまで、コマンドを再度実行してください。

  2. クラスター」ページで、目的のクラスターを見つけ、その名前をクリックします。左側ペインで、「ネットワーク」>「サービス」を選択します。

  3. 目的のサービス (web-windows) の名前をクリックします。[基本情報]セクションで、[外部 IP]をクリックして Web アプリケーションにアクセスします。

    image