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

Container Compute Service:デプロイメントを使用してステートレスアプリケーションを作成する

最終更新日:Dec 28, 2024

Container Compute Service (ACS)を使用すると、イメージ、YAMLテンプレート、またはkubectlを使用してステートレスアプリケーションを作成できます。このトピックでは、ACSクラスタにステートレスNGINXアプリケーションを作成する方法について説明します。

コンソールを使用する

イメージからデプロイメントを作成する

手順1:基本設定を構成する

  1. ACSコンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。

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

  3. デプロイメントタブで、イメージから作成をクリックします。

  4. 基本情報ウィザードページで、アプリケーションの基本設定を構成します。

    パラメータ

    説明

    名前

    アプリケーションの名前を入力します。

    レプリカ

    アプリケーションにプロビジョニングされるPodの数。デフォルト値:2。

    タイプ

    この例では、デプロイメントが選択されています。

    ラベル

    アプリケーションにラベルを追加します。ラベルはアプリケーションを識別するために使用されます。

    アノテーション

    アプリケーションにアノテーションを追加します。

    インスタンスタイプ

    使用するインスタンスタイプ。詳細については、ACS Podの概要を参照してください。

    Qosタイプ

    QoSクラスを選択します。詳細については、コンピューティングパワーQoSを参照してください。

    • 汎用Podは、デフォルトBestEffort QoSクラスをサポートしています。

    • パフォーマンス強化Podは、デフォルトQoSクラスのみをサポートしています。

  5. 次へをクリックして、コンテナウィザードページに進みます。

手順2:コンテナを構成する

コンテナウィザードページで、コンテナイメージ、リソース構成、ポート、環境変数、ヘルスチェック、ライフサイクル、ボリューム、およびログを構成します。

説明

コンテナ1タブの右側にあるコンテナを追加をクリックして、さらにコンテナを追加します。

  1. 一般セクションで、基本的なコンテナ設定を構成します。

    パラメータ

    説明

    イメージ名

    • イメージを選択

      イメージを選択をクリックし、コンテナイメージを選択します。

      • コンテナレジストリエンタープライズ版:コンテナレジストリエンタープライズ版インスタンスに保存されているイメージを選択します。イメージが属するリージョンとコンテナレジストリインスタンスを選択する必要があります。コンテナレジストリの詳細については、コンテナレジストリとはを参照してください。

      • コンテナレジストリパーソナル版:コンテナレジストリパーソナル版インスタンスに保存されているイメージを選択します。コンテナレジストリパーソナル版がアクティブになっていることを確認してください。イメージが属するリージョンとコンテナレジストリインスタンスを選択する必要があります。

      • アーティファクトセンター:アーティファクトセンターには、アプリケーションのコンテナ化のための基本オペレーティングシステムイメージ、基本言語イメージ、およびAIおよびビッグデータ関連のイメージが含まれています。この例では、NGINXイメージが選択されています。詳細については、アーティファクトセンターの概要を参照してください。

    • (オプション)イメージプルポリシーを設定する

      イメージプルポリシードロップダウンリストからイメージプルポリシーを選択します。デフォルトでは、KubernetesのIfNotPresentポリシーが使用されます。

      • ifNotPresent:プルするイメージがオンプレミスマシンで見つかった場合、オンプレミスマシンのイメージが使用されます。それ以外の場合、システムはイメージレジストリからイメージをプルします。

      • 常に:システムは、アプリケーションがデプロイまたは拡張されるたびにレジストリからイメージをプルします。

      • しない:システムは、オンプレミスマシンのイメージのみを使用します。

    • (オプション)イメージプルシークレットを設定する

      イメージプルシークレットを設定をクリックして、プライベートイメージをプルするために使用するシークレットを設定します。

    必要なリソース

    コンテナのリソースリクエストを指定します。

    • CPU:コンテナのCPUリクエストとCPU制限を構成できます。デフォルトでは、CPUリクエストはCPU制限と同じです。CPUリソースは従量課金制です。YAMLテンプレートを使用してリソースリクエストとは異なるリソース制限を設定した場合、リソースリクエストはリソース制限の値に自動的に上書きされます。詳細については、リソース仕様を参照してください。

    • メモリ:コンテナのメモリリクエストとメモリ制限を構成できます。デフォルトでは、メモリリクエストはメモリ制限と同じです。メモリリソースは従量課金制です。YAMLテンプレートを使用してリソースリクエストとは異なるリソース制限を設定した場合、リソースリクエストはリソース制限の値に自動的に上書きされます。詳細については、リソース仕様を参照してください。

    コンテナ起動パラメータ

    コンテナの起動オプションを指定します。このパラメータはオプションです。

    • stdin:ACKコンソールからの入力をコンテナに渡します。

    • tty:仮想端末で定義された起動パラメータをACKコンソールに渡します。

    説明

    stdinttyは一緒に使用されます。この場合、仮想端末(tty)はコンテナのstdinに関連付けられます。たとえば、インタラクティブプログラムはユーザーからstdinを受け取り、コンテンツを端末に表示します。

    Initコンテナ

    このチェックボックスを選択すると、initコンテナが作成されます。このパラメータはオプションです。

    Initコンテナを使用して、アプリケーションコンテナの起動をブロックまたは延期できます。Pod内のアプリケーションコンテナは、initコンテナが起動した後にのみ同時に起動します。たとえば、initコンテナを使用して、アプリケーションが依存するサービスの可用性を確認できます。アプリケーションイメージでは提供されていないツールやスクリプトをinitコンテナで実行して、アプリケーションコンテナのランタイム環境を初期化できます。たとえば、ツールやスクリプトを実行して、カーネルパラメータを構成したり、構成ファイルを生成したりできます。詳細については、Initコンテナを参照してください。

  2. オプション:ポートセクションで、追加をクリックしてコンテナポートを追加できます。

    パラメータ

    説明

    名前

    コンテナポートの名前を入力します。

    コンテナポート

    公開するコンテナポートを指定します。ポート番号は1〜65535の範囲内である必要があります。

    プロトコル

    有効な値:TCPおよびUDP。

  3. オプション:環境セクションで、追加をクリックして環境変数を追加できます。

    キーと値のペアで環境変数をPodに追加して、環境ラベルを追加したり、構成を渡したりできます。詳細については、環境変数を通じてPod情報をコンテナに公開するを参照してください。

    パラメータ

    説明

    タイプ

    環境変数のタイプを選択します。有効な値:

    • カスタム

    • パラメータ

    • シークレット

    • 値/valuefrom

    • ResourceFieldRef

    ConfigMapまたはシークレットを選択した場合、選択したConfigMapまたはシークレットのすべてのデータをコンテナ環境変数に渡すことができます。

    この例では、シークレットが選択されています。タイプドロップダウンリストからシークレットを選択し、値/ValueFromドロップダウンリストからシークレットを選択します。デフォルトでは、選択したシークレットのすべてのデータが環境変数に渡されます。环境变量

    この場合、アプリケーションのデプロイに使用されるYAMLファイルには、選択したシークレットのすべてのデータを参照する設定が含まれています。yaml

    変数キー

    環境変数の名前。

    値/valuefrom

    環境変数の値。

  4. オプション:ヘルスチェックセクションで、ビジネス要件に基づいてlivenessreadiness、およびstartupプローブを有効にできます。

    • Liveness:Livenessプローブは、コンテナをいつ再起動するかを判断するために使用されます。

    • Readiness:Readinessプローブは、コンテナがトラフィックを受信する準備ができているかどうかを判断するために使用されます。

    • Startup:Startupプローブは、コンテナをいつ起動するかを判断するために使用されます。

    詳細については、Liveness、Readiness、およびStartupプローブの構成を参照してください。

    パラメータ

    説明

    HTTP

    コンテナにHTTP GETリクエストを送信します。次のパラメータを設定できます。

    • プロトコル:リクエストを送信するプロトコル。有効な値:HTTPおよびHTTPS

    • パス:サーバーでリクエストされたHTTPパス。

    • ポート:コンテナによって公開されるポートの番号または名前。ポート番号は1〜65535である必要があります。

    • HTTPヘッダー:HTTPリクエストのカスタムヘッダー。重複したヘッダーが許可されます。キーと値のペアでHTTPヘッダーを指定できます。

    • 初期遅延(秒):YAMLファイルのinitialDelaySecondsフィールド。このフィールドは、コンテナの起動後、最初のプローブが実行されるまでの待機時間(秒単位)を指定します。デフォルト値:3。

    • 期間(秒):YAMLファイルのperiodSecondsフィールド。このフィールドは、プローブが実行される時間間隔(秒単位)を指定します。デフォルト値:10。最小値:1。

    • タイムアウト(秒):YAMLファイルのtimeoutSecondsフィールド。このフィールドは、プローブがタイムアウトするまでの時間(秒単位)を指定します。デフォルト値:1。最小値:1。

    • 正常なしきい値:プローブの失敗後、コンテナが正常と見なされるまでに発生する必要がある連続成功の最小数。デフォルト値:1。最小値:1。Livenessプローブの場合、このパラメータは1に設定する必要があります。

    • 異常なしきい値:成功後、コンテナが異常と見なされるまでに発生する必要がある連続失敗の最小数。デフォルト値:3。最小値:1。

    TCP

    コンテナにTCPソケットを送信します。kubeletは、指定されたポートでソケットを開こうとします。接続が確立できる場合、コンテナは正常と見なされます。それ以外の場合、コンテナは異常と見なされます。次のパラメータを構成できます。

    • ポート:コンテナによって公開されるポートの番号または名前。ポート番号は1〜65535である必要があります。

    • 初期遅延(秒):YAMLファイルのinitialDelaySecondsフィールド。このフィールドは、コンテナの起動後、最初のプローブが実行されるまでの待機時間(秒単位)を指定します。デフォルト値:15。

    • 期間(秒):YAMLファイルのperiodSecondsフィールド。このフィールドは、プローブが実行される時間間隔(秒単位)を指定します。デフォルト値:10。最小値:1。

    • タイムアウト(秒):YAMLファイルのtimeoutSecondsフィールド。このフィールドは、プローブがタイムアウトするまでの時間(秒単位)を指定します。デフォルト値:1。最小値:1。

    • 正常なしきい値:プローブの失敗後、コンテナが正常と見なされるまでに発生する必要がある連続成功の最小数。デフォルト値:1。最小値:1。Livenessプローブの場合、このパラメータは1に設定する必要があります。

    • 異常なしきい値:成功後、コンテナが異常と見なされるまでに発生する必要がある連続失敗の最小数。デフォルト値:3。最小値:1。

    コマンド

    コンテナでプローブコマンドを実行して、コンテナのヘルスステータスを確認します。次のパラメータを構成できます。

    • コマンド:コンテナのヘルスステータスを確認するために実行されるプローブコマンド。

    • 初期遅延(秒):YAMLファイルのinitialDelaySecondsフィールド。このフィールドは、コンテナの起動後、最初のプローブが実行されるまでの待機時間(秒単位)を指定します。デフォルト値:5。

    • 期間(秒):YAMLファイルのperiodSecondsフィールド。このフィールドは、プローブが実行される時間間隔(秒単位)を指定します。デフォルト値:10。最小値:1。

    • タイムアウト(秒):YAMLファイルのtimeoutSecondsフィールド。このフィールドは、プローブがタイムアウトするまでの時間(秒単位)を指定します。デフォルト値:1。最小値:1。

    • 正常なしきい値:プローブの失敗後、コンテナが正常と見なされるまでに発生する必要がある連続成功の最小数。デフォルト値:1。最小値:1。Livenessプローブの場合、このパラメータは1に設定する必要があります。

    • 異常なしきい値:成功後、コンテナが異常と見なされるまでに発生する必要がある連続失敗の最小数。デフォルト値:3。最小値:1。

  5. オプション:ライフサイクルセクションで、コンテナのライフサイクルを構成できます。

    次のパラメータを指定して、コンテナのライフサイクルを構成できます。開始、開始後、および停止前。詳細については、コンテナライフサイクルイベントにハンドラをアタッチするを参照してください。

    パラメータ

    説明

    開始

    コンテナが起動する前に有効になるコマンドとパラメータを指定します。

    開始後

    コンテナが起動した後に有効になるコマンドを指定します。

    停止前

    コンテナを終了するコマンドを指定します。

  6. オプション:ボリュームセクションで、コンテナにマウントするボリュームを構成します。

    • ローカルストレージ:PVタイプドロップダウンリストからConfigMap、シークレット、またはEmptyDirを選択できます。次に、マウントソースとコンテナパスパラメータを設定して、ボリュームをコンテナパスにマウントします。詳細については、ボリュームを参照してください。

    • クラウドストレージ:ディスクおよびファイルストレージNAS(NAS)ファイルシステムがサポートされています。詳細については、ストレージの概要を参照してください。

  7. オプション:ログセクションで、ログ構成を指定し、収集されたログにカスタムタグを追加できます。

    パラメータ

    説明

    収集設定

    • ログストア:ログサービスにログストアを作成して、収集されたログデータを保存します。

    • コンテナ内のログパス(stdoutに設定可能):ログを収集するstdoutまたはパスを指定します。

      • stdoutファイルを収集する:stdoutを指定すると、stdoutファイルが収集されます。

      • テキストログ:コンテナの指定されたパスにあるログが収集されることを指定します。この例では、/var/log/nginxがパスとして指定されています。パスにはワイルドカード文字を使用できます。

    カスタムタグ

    カスタムタグを追加することもできます。タグは、ログが収集されるときにコンテナのログに追加されます。ログ分析とフィルタリングのために、コンテナログにカスタムタグを追加できます。

  8. 次へをクリックして、詳細設定ウィザードページに進みます。

手順3:詳細設定を構成する

詳細設定ウィザードページで、アクセス制御、スケーリング、スケジューリング、アノテーション、およびラベルを構成します。

  1. アクセス制御セクションで、バックエンドPodを公開するためのアクセス制御設定を構成できます。

    また、バックエンドPodをインターネットに公開する方法を指定することもできます。この例では、ClusterIPサービスとイングレスが作成され、NGINXアプリケーションがインターネットに公開されます。

    • サービスを作成するには、サービスの右側にある作成をクリックします。作成ダイアログボックスで、パラメータを設定します。

      サービスパラメータを表示

      パラメータ

      説明

      名前

      サービスの名前。この例では、nginx-svcが使用されています。

      ステータス

      サービスのタイプ。このパラメータは、サービスへのアクセス方法を指定します。この例では、クラスタIPが選択されています。

      • クラスタIP:ClusterIPサービス。このタイプのサービスは、クラスタの内部IPアドレスを介してサービスを公開します。このオプションを選択すると、サービスはクラスタ内からのみアクセスできます。これはデフォルト値です。

        説明

        ヘッドレスサービスパラメータは、タイプをクラスタIPに設定した場合にのみ使用できます。

      • サーバーロードバランサ:LoadBalancerタイプのサービス。このタイプのサービスは、サーバーロードバランサ(SLB)インスタンスを使用してサービスを公開します。このタイプを選択すると、サービスへの内部アクセスまたは外部アクセスを有効にできます。SLBインスタンスを使用して、リクエストをClusterIPサービスにルーティングできます。

        • SLBインスタンスの作成:変更をクリックして、SLBインスタンスの仕様を変更できます。

        • 既存のSLBインスタンスの使用:リストからSLBインスタンスタイプを選択します。

        説明

        SLBインスタンスを作成するか、既存のSLBインスタンスを使用できます。また、SLBインスタンスを複数のサービスに関連付けることもできます。ただし、次の制限事項に注意する必要があります。

        • 既存のSLBインスタンスを使用する場合、SLBインスタンスのリスナーはサービスのリスナーを上書きします。

        • サービスとともにSLBインスタンスが作成された場合、他のサービスを作成するときにこのSLBインスタンスを再利用することはできません。そうしないと、SLBインスタンスが削除される可能性があります。コンソールで手動で作成された、またはAPIを呼び出すことによって作成されたSLBインスタンスのみを、複数のサービスを公開するために使用できます。

        • 同じSLBインスタンスを共有するサービスは、異なるフロントエンドリスナーポートを使用する必要があります。そうしないと、ポートの競合が発生する可能性があります。

        • 複数のサービスが同じSLBインスタンスを共有する場合、Kubernetesではリスナー名とvServerグループ名を一意の識別子として使用する必要があります。リスナーまたはvServerグループの名前を変更しないでください。

        • クラスタ間でSLBインスタンスを共有することはできません。

      ポートマッピング

      サービスポートとコンテナポートを指定します。コンテナポートは、バックエンドPodで公開されているポートと同じである必要があります。

      外部トラフィックポリシー

      • ローカル:トラフィックは、イングレスゲートウェイがデプロイされているノード上のPodのみにルーティングされます。

      • クラスタ:このポリシーは、他のノード上のPodにトラフィックをルーティングできます。

      説明

      外部トラフィックポリシーパラメータは、タイプをサーバーロードバランサに設定した場合にのみ使用できます。

      アノテーション

      SLBインスタンスに1つ以上のアノテーションを追加します。たとえば、service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth:20は、サービスの最大帯域幅が20 Mbit/sであることを指定します。これは、サービスを通過するトラフィック量を制限します。

      ラベル

      サービスに追加されるラベル。サービスを識別します。

    • イングレスを作成するには、イングレスの右側にある作成をクリックします。作成ダイアログボックスで、パラメータを設定します。

      イングレスパラメータを表示

      説明

      イメージからアプリケーションを作成する場合、1つのサービスに対してのみイングレスを作成できます。この例では、仮想ホストの名前がテストドメイン名として使用されています。ホストファイルに次のマッピングルールを追加して、ドメイン名をイングレスのIPアドレスにマッピングする必要があります。エントリは、<イングレス外部エンドポイント> + <イングレスドメイン名>の形式です。実際のシナリオでは、インターネットコンテンツプロバイダ(ICP)番号を持つドメイン名を使用してください。

      101.37.xx.xx   foo.bar.com    # イングレスのIPアドレス。

      パラメータ

      説明

      名前

      イングレスの名前。この例では、alb-ingressが使用されています。

      ルール

      イングレスルールは、クラスタ内の特定のサービスへのアクセスを有効にするために使用されます。詳細については、ALBイングレス入門を参照してください。

      • ドメイン:イングレスのドメイン名を入力します。

      • パス:サービスURLを入力します。デフォルトのパスはルートパス/です。この例では、デフォルトのパスが使用されています。各パスはバックエンドサービスに関連付けられています。SLBは、受信リクエストがドメイン名とパスに一致する場合にのみ、トラフィックをバックエンドサービスに転送します。

      • サービス:サービスとサービスポートを選択します。

      • TLS設定:このチェックボックスを選択してTLSを有効にします。

      この例では、テストドメイン名foo.bar.comが使用されています。nginx-svcサービスは、イングレスのバックエンドとして設定されています。

      カナリアリリース

      カナリアリリース機能を有効または無効にします。Alibaba Cloudが提供するカナリアリリース機能は廃止されているため、オープンソースソリューションを選択することをお勧めします。

      イングレスクラス

      イングレスのクラスを指定します。

      アノテーション

      カスタムアノテーションを追加するか、既存のアノテーションを選択できます。追加をクリックして、キーと値を入力します。イングレスアノテーションの詳細については、アノテーションを参照してください。

      ラベル

      +追加をクリックして、イングレスを識別するために、キーと値のペアでラベルをイングレスに追加します。

  2. オプション:スケーリングセクションで、HPAを有効にして変動するワークロードを処理できます。

    • Horizontal Pod Autoscaler(HPA)は、CPUおよびメモリ使用量メトリックに基づいて、ACSクラスタ内のPodの数を自動的にスケーリングできます。

      説明

      HPAを有効にするには、コンテナに必要なリソースを構成する必要があります。そうしないと、HPAは有効になりません。

      パラメータ

      説明

      メトリック

      CPU使用率またはメモリ使用率を選択します。選択したリソースタイプは、必要なリソースフィールドで指定したものと同じである必要があります。

      条件

      リソース使用量のしきい値を指定します。しきい値を超えると、HPAはスケールアウトイベントをトリガーします。

      最大レプリカ数

      アプリケーションをスケーリングできる複製Podの最大数。

      最小レプリカ数

      実行する必要がある複製Podの最小数。

    • CronHPAは、スケジュールされた時刻にACSクラスタをスケーリングできます。CronHPAを有効にする前に、最初にack-kubernetes-cronhpa-controllerをインストールする必要があります。CronHPAの詳細については、CronHPAを参照してください。

  1. オプション:ラベル、アノテーションセクションで、追加をクリックしてPodラベルとアノテーションを追加できます。

  2. 作成をクリックします。

手順4:アプリケーション情報を表示する

アプリケーションの作成後、表示されるページで詳細を表示をクリックして、デプロイメントの詳細を表示できます。

デプロイメントページで情報を確認することもできます。デプロイメントの名前をクリックするか、アクション列の詳細をクリックして、詳細ページに移動します。

YAMLテンプレートを使用する

ACSオーケストレーションテンプレートでは、アプリケーションの実行に必要なリソースオブジェクトを定義し、ラベルセレクタなどのメカニズムを構成して、リソースオブジェクトをアプリケーションにオーケストレートする必要があります。

このセクションでは、オーケストレーションテンプレートを使用して、デプロイメントとサービスで構成されるNGINXアプリケーションを作成する方法について説明します。デプロイメントはアプリケーションのPodをプロビジョニングし、サービスはバックエンドPodへのアクセスを管理します。

  1. ACSコンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。

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

  3. デプロイメントページの右上隅にあるYAMLから作成をクリックします。

  4. 作成ページで、テンプレートを構成し、作成をクリックします。

    • サンプルテンプレート:ACSは、さまざまなKubernetesリソースオブジェクトのYAMLテンプレートを提供しています。YAML構文に基づいてカスタムテンプレートを作成して、作成するリソースを定義することもできます。

    • ワークロードの作成:YAMLテンプレートをすばやく定義できます。

    • 既存のテンプレートを使用:既存のテンプレートをインポートできます。

    • テンプレートの保存:構成したテンプレートを保存できます。

    次のYAMLファイルは例です。このファイルを使用して、NGINXアプリケーションを実行するデプロイメントを作成できます。デフォルトでは、クラシックロードバランサ(CLB)インスタンスが作成されます。

    説明
    • ACSはKubernetes YAMLオーケストレーションをサポートしています。---を使用してリソースオブジェクトを区切ることができます。これにより、1つのYAMLテンプレートで複数のリソースオブジェクトを定義できます。

    • オプション:デフォルトでは、ボリュームをアプリケーションにマウントすると、マウントターゲット内のファイルが上書きされます。既存のファイルが上書きされないようにするには、subPathパラメータを追加できます。

    NGINX YAMLファイルの内容を表示

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
        name: nginx-deployment-basic
        labels
          app: nginx
    spec:
        replicas: 2
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
              alibabacloud.com/compute-class: general-purpose 
              alibabacloud.com/compute-qos: default
          spec:
            containers:
            - name: nginx
              image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest #ご自身の<image_name:tags>に置き換えてください
              ports:
              - containerPort: 80
              volumeMounts:
              - name: nginx-config
                mountPath: /etc/nginx/nginx.conf 
                subPath: nginx.conf   # subPathパラメータを設定します。     
            volumes:
            - name: nginx-config
              configMap:
                name: nginx-conf
    ---
    apiVersion: v1     
    kind: Service
    metadata:
       name: my-service1        #サービス名を指定します
       labels:
         app: nginx
    spec:
       selector:
         app: nginx             #バックエンドPodと一致するようにラベルセレクタを変更します
       ports:
       - protocol: TCP
         name: http
         port: 30080          
         targetPort: 80
       type: LoadBalancer       
    ---
    # マウントされたボリュームのConfigMap。
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nginx-conf
      namespace: default
    data:
      nginx.conf: |-
       user  nginx;
       worker_processes  1;
       error_log  /var/log/nginx/error.log warn;
       pid        /var/run/nginx.pid;
       events {
            worker_connections  1024;
        }
        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" "$http_x_forwarded_for"';
            access_log  /var/log/nginx/access.log  main;
            sendfile        on;
            #tcp_nopush     on;
            keepalive_timeout  65;
            #gzip  on;
            include /etc/nginx/conf.d/*.conf;
        } 
  5. 作成をクリックすると、デプロイメントステータスを示すメッセージが表示されます。

kubectl

kubectlを使用して、アプリケーションを作成したり、アプリケーションPodを表示したりできます。

  1. ACSクラスタに接続します。詳細については、クラスタのkubeconfigファイルを取得し、kubectlを使用してクラスタに接続するおよびCloud Shellでkubectlを使用してACSクラスタを管理するを参照してください。

  2. CLIで、次のコマンドを実行してコンテナを起動します。この例では、NGINX Webサーバーが使用されています。

     kubectl create deployment nginx --image=registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
  3. 次のコマンドを実行して、Podのイングレスを作成し、--type=LoadBalancerを指定して、Alibaba Cloudが提供するロードバランサを使用します。

    kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer
  4. 次のコマンドを実行して、NGINXサービスのPodをクエリします。

    kubectl get pod |grep nginx

    期待される結果:

    NAME                                   READY     STATUS    RESTARTS   AGE
    nginx-2721357637-d****                 1/1       Running   1          9h