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

Container Service for Kubernetes:ステートレス Deployment の作成

最終更新日:Aug 26, 2026

Deployment は、ステートレスアプリケーションを管理するための一般的な Kubernetes ワークロードです。指定した数のレプリカ Pod が、定義した状態でクラスター内で常に実行されることを保証します。このトピックでは、Container Service for Kubernetes (ACK) コンソールと kubectl を使用して、ACK クラスターにステートレスアプリケーションを作成する方法を説明します。

事前準備

ワークロードを作成する前に、ワークロードをお読みいただき、基本的な概念と主な考慮事項についてご理解ください。本トピックでは、以下のセクションについて説明します。

  • Deployment の作成: コンソールと kubectl を使用して Deployment を作成するためのクイックスタートガイドを紹介します。

  • 設定パラメーター: コンソールの設定パラメーターについて説明し、kubectl 用のサンプル YAML ファイルを記載します。

重要

本トピックの例ではパブリックイメージを使用します。パブリックイメージをプルするには、クラスターまたはノードにパブリックインターネットアクセスが必要です。パブリックインターネットアクセスは、次のいずれかの方法で有効にできます。

  • クラスターのパブリックネットワークアクセスを有効にする (推奨): クラスターがデプロイされている VPC 用に NAT ゲートウェイを作成します。これにより、クラスター内のすべてのリソースがパブリックインターネットにアクセスできるようになります。

  • ノードに 静的パブリック IP アドレス を割り当てる: パブリック IP アドレスを持つノードはパブリックイメージをプルできます。ただし、ワークロードをデプロイするすべてのノードにパブリック IP アドレスを割り当てる必要があります。

Deployment の作成

コンソールの使用

重要

次の手順は、ワークロードを簡単に作成するための手順です。これらの手順に従って、アプリケーションをすばやくデプロイし、動作を確認できます。基本操作に慣れたら、ワークロードをカスタマイズするには 設定パラメーター をご参照ください。

  1. [アプリケーションの基本情報の設定]

    1. ACK コンソールにログインし、左側のナビゲーションペインでクラスターリストをクリックします。 クラスターリスト ページで、クラスター名をクリックします。 左側のナビゲーションペインで、ワークロード > デプロイメントを選択します。 [デプロイ] ページで、[イメージから作成]をクリックします。

      image

    2. [基本情報] ページで、アプリケーションの基本設定を構成します。次に、[次へ] をクリックします。

      image

  2. [コンテナの設定]

    [コンテナ設定] セクションで、[イメージ名][ポート] を設定します。その他の設定はオプションです。デフォルト値のままにすることができます。次に、[次へ] をクリックして [詳細設定] ウィザードページを開きます。イメージアドレスは次のとおりです。

    重要

    このイメージをプルするには、クラスターのパブリックインターネットアクセスを有効にする必要があります。 クラスターの作成時に [VPC の SNAT を設定] オプションを選択した場合、パブリックインターネットアクセスはすでに有効になっています。 そうでない場合は、「クラスターのパブリックネットワークアクセスを有効にする」をご参照ください。

    anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6

    image

  3. [詳細設定の構成]

    [詳細] ページで、アクセス制御、スケーリング、およびスケジューリングを設定します。[アクセス制御] セクションで、バックエンド Pod の公開方法を設定し、[OK] をクリックします。次に、ページの下部にある [作成] をクリックします。

    重要

    この手順では、ワークロードを公開するために LoadBalancer タイプの Service を作成します。関連付けられた Server Load Balancer (SLB) インスタンスには料金が発生します。詳細については、従量課金をご参照ください。SLB インスタンスが不要になった場合は、不要な課金を避けるため、速やかに解放してください。

    image

  4. [アプリケーションの表示]

    アプリケーションが作成されると、[完了] ページが表示されます。[作成タスク送信済み] パネルで、[詳細の表示] をクリックします。[アクセス方法] タブをクリックし、新しく作成されたサービス (nginx-test-svc) を見つけ、[外部エンドポイント] 列のリンクをクリックして NGINX のウェルカムページにアクセスします。image

    image

    作成したワークロードを[表示][編集]、または[再デプロイ]できます。image

kubectl の使用

重要

ワークロードを作成する前に、kubectl を使用して ACK クラスターに接続してください。詳細については、クラスターの kubeconfig ファイルを取得し、kubectl を使用してクラスターに接続するをご参照ください。

  1. 次の YAML 設定をコピーし、deployment.yaml に保存します。この設定は、Deployment と、外部アクセス用の LoadBalancer タイプの Service を定義します。

    apiVersion: apps/v1
    kind: Deployment    # ワークロードのタイプ。
    metadata:
      name: nginx-test
      namespace: default  # 名前空間。必要に応じて変更してください。
      labels:
        app: nginx
    spec:
      replicas: 2  # Pod レプリカの数。
      selector:
        matchLabels:
          app: nginx
      template: # Pod テンプレート。
        metadata:
          labels: # Pod のラベル。
            app: nginx 
        spec:
          containers:
          - name: nginx  # コンテナ名。
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6  # NGINX イメージとそのバージョン。
            ports:
            - containerPort: 80  # コンテナによって公開されるポート。
              protocol: TCP  # プロトコル。TCP または UDP に設定できます。デフォルト値:TCP。
    ---
    # Service の定義。
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-test-svc
      namespace: default  # 名前空間。必要に応じて変更してください。
      labels:
        app: nginx
    spec:
      selector:
        app: nginx  # 指定したラベルを持つ Pod を選択します。
      ports:
        - port: 80           # クラスター内で Service によって公開されるポート。
          targetPort: 80     # トラフィックの転送先となるコンテナポート。
          protocol: TCP      # プロトコル。デフォルト値:TCP。
      type: LoadBalancer     # Service のタイプ。デフォルト値:ClusterIP (内部アクセスのみ)。
  2. 次のコマンドを実行して、Deployment と Service を作成します:

    kubectl apply -f deployment.yaml

    想定される出力:

    deployment.apps/nginx-test created
    service/nginx-test-svc created
  3. 次のコマンドを実行して、Service のパブリック IP アドレスを確認します:

    kubectl get svc

    想定される出力:

    NAME            TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    kubernetes      ClusterIP      172.16.**.***    <none>          443/TCP        4h47m
    nginx-test-svc  LoadBalancer   172.16.**.***    106.14.**.***   80:31130/TCP   1h10m
  4. Nginx コンテナにアクセスするには、ブラウザーで Service のパブリック IP アドレス (106.14.**.***) を入力します。

    image

設定パラメーター

コンソールパラメーター

基本情報

image

パラメーター

説明

[名前]

ワークロードの名前です。Pod 名はこの名前から派生します。

[Namespace]

ワークロードが含まれる Namespace です。

[レプリカ]

Pod レプリカの数です。デフォルト値: 2。

[タイプ]

ワークロードのタイプです。ワークロードタイプの選択方法の詳細については、「ワークロードの作成」をご参照ください。

[ラベル]

ワークロードのラベルです。

[アノテーション]

ワークロードのアノテーションです。

[タイムゾーンの同期]

コンテナがホストノードと同じタイムゾーンを使用するかどうかを指定します。

コンテナ設定

全般

image

パラメーター

説明

[イメージ名]

  • [イメージの選択]

    [イメージの選択] をクリックしてイメージを選択します。次のいずれかのイメージタイプを選択できます。

    • [Container Registry Enterprise Edition]:Alibaba Cloud Container Registry (ACR) でホストされている Enterprise Edition のイメージを選択します。イメージが配置されているリージョンと ACR インスタンスを指定する必要があります。ACR の詳細については、「ACR とは」をご参照ください。

    • [Container Registry Personal Edition]:ACR でホストされている Personal Edition のイメージを選択します。イメージが配置されているリージョンと ACR インスタンスを指定する必要があります。

    • [Artifact Center]:Alibaba Cloud および OpenAnolis コミュニティによって提供される一般的なイメージです。Artifact Center のイメージを使用するには、クラスターのパブリックインターネットアクセスを有効にする必要があります。詳細については、「Artifact Center」をご参照ください。

    別のソースのイメージを使用する場合、domainname/namespace/imagename:tag の形式でイメージアドレスを直接入力できます。domainname を指定しない場合、たとえば nginx:1.7.9 と入力した場合、イメージは Docker Hub からプルされます。

  • [イメージプルポリシーの選択]

    ACK は次のイメージプルポリシー (imagePullPolicy) をサポートしています。

    • [IfNotPresent] (デフォルト):ノードにイメージがすでに存在する場合は、ローカルバージョンが使用されます。それ以外の場合は、リポジトリからイメージがプルされます。

    • [Always]:Pod が作成されるたびに、常にリポジトリからイメージがプルされます。

    • [Never]:ローカルイメージのみが使用されます。ノードにイメージが存在しない場合、Pod の起動は失敗します。

  • [イメージプルシークレットの設定]

    ACR またはサードパーティのリポジトリからイメージを使用する場合、イメージをプルするために Secret を設定する必要がある場合があります。

    説明

    ACR Enterprise Edition インスタンスの場合、パスワード不要コンポーネントを使用してイメージをプルできます。詳細については、「管理対象外クラスターにパスワード不要コンポーネントをインストールして使用する」をご参照ください。

[リソース制限]

コンテナの resources.limits です。詳細については、「リクエストとリミット」をご参照ください。

[リソースリクエスト]

コンテナの resources.requests です。詳細については、「リクエストとリミット」をご参照ください。

[コンテナ開始パラメーター]

  • stdin:コンテナの標準入力が有効であることを示します。

  • tty:コンテナに仮想端末を割り当て、コンテナにシグナルを送信できるようにします。

これら 2 つのオプションは通常、端末 (tty) をコンテナの標準入力 (stdin) にアタッチするために一緒に使用されます。たとえば、対話型プログラムはユーザーからの標準入力を受け取り、それを端末に表示します。

[特権コンテナ]

  • このチェックボックスを選択すると、privilegedtrue に設定され、特権モードが有効になります。

  • このチェックボックスを選択しない場合、privilegedfalse に設定され、特権モードが無効になります。

特権モードは、コンテナにホストオペレーティングシステム上で実行されているプロセスとほぼ同等のアクセス権を付与します。これには、ハードウェアデバイスへのアクセスやファイルシステムをマウントする機能が含まれます。

[Init コンテナ]

このオプションを選択して Init コンテナを作成します。

Init コンテナは、メインのアプリケーションコンテナが起動する前に実行され、完了します。これらは、依存するサービスが利用可能になるのを待つなど、特定の前提条件が満たされるまでアプリケーションコンテナの起動を遅延させるために使用できます。Init コンテナには、カーネルパラメーターの設定や設定ファイルの生成など、ランタイム環境を初期化するためにアプリケーションイメージに存在しないユーティリティツールやセットアップスクリプトを含めることもできます。詳細については、Kubernetes ドキュメントの「Init Containers」をご参照ください。

ポート

image

パラメーター

説明

[名前]

コンテナポートの名前です。これは識別のみを目的としており、機能的な影響はありません。

[コンテナポート]

コンテナが公開するポートです。値は 1 から 65535 までの整数である必要があります。コンテナは、Pod の外部からアクセスしたり、同じ Pod 内の他のコンテナと通信したりできるようにするために、ポートを公開する必要があります。

Pod 内のすべてのコンテナは同じネットワーク Namespace を共有するため、ポート番号は Pod 内で一意である必要があります。

[プロトコル]

コンテナポートで使用されるレイヤー 4 プロトコルです。有効な値: TCP と UDP。

環境変数

image

パラメーター

説明

[タイプ]

環境変数を設定するためのメソッドです。次のタイプをサポートしています。

  • [カスタム]

    ワークロードに環境変数を直接ハードコードするために env を使用できます。

  • [ConfigMap]

    機密性の低い設定データを ConfigMap から取得するために envFrom を使用します。

  • [Secret]

    パスワードや API キーなど、Secret に保存されている機密情報を取得するために envFrom を使用できます。

  • [Value/ValueFrom]

    他の環境変数や事前定義された値を取得するために value/valueFrom を使用します。

  • [ResourceFieldRef]

    Pod が実行されているノードに関するリソース情報を取得するために resourceFieldRef を使用します。

ConfigMap または Secret からすべてのキーと値のペアを参照できます。たとえば、Secret からすべてのデータを参照するには、[Secret] タイプを選択し、キーを指定せずにターゲットの Secret を選択します。环境变量

対応する YAML も Secret 全体を参照します。yaml

リソース参照を選択するには、resourceFieldRef パラメーターを使用できます。このパラメーターは、Pod 仕様でコンテナに宣言されたリソース値を参照し、これらの値を環境変数としてコンテナに渡します。対応する YAML は次のとおりです。

image

[変数キー]

Pod 内の環境変数の名前です。

[Value/ValueFrom]

環境変数の値、または他のソースからの値への参照です。

ヘルスチェック

image

パラメーター

説明

[Liveness プローブ]:Liveness プローブは、コンテナが実行中であるかどうかをチェックします。プローブが複数回失敗した場合、kubelet はコンテナを再起動します。これは、コンテナは実行中だが処理を進めることができないデッドロックなどの問題を解決するのに役立ちます。

リクエストタイプ:HTTP リクエスト

コンテナに HTTP リクエストを送信して、定期的にそのヘルス状態をチェックします。

  • [プロトコル]: [HTTP] または [HTTPS]。

  • [パス]:HTTP サーバーでアクセスするパスです。

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

  • [HTTP ヘッダー]:HTTP リクエストで設定するカスタムヘッダーです。同じキーで複数のヘッダーを指定できます。

  • [初期遅延] (秒):コンテナが起動してから最初のプローブが実行されるまでの待機秒数です。これは initialDelaySeconds パラメーターに対応します。デフォルトは 3 秒です。

  • [プローブ間隔] (秒):プローブを実行する間隔です。periodSeconds パラメーターで指定します。デフォルト値は 10 秒、最小値は 1 秒です。

  • [タイムアウト] (秒):プローブのタイムアウト期間です。timeoutSeconds パラメーターで指定します。デフォルト値は 1 秒、最小値は 1 秒です。

  • [正常しきい値]:失敗後にコンテナを正常とマークするために必要な連続した成功プローブの最小数です。デフォルト値: 1。最小値: 1。Liveness プローブの場合、これは 1 である必要があります。

  • [異常しきい値]:コンテナを異常とマークするために必要な連続した失敗プローブの最小数です。デフォルト値: 3。最小値: 1。

リクエストタイプ:TCP 接続

kubelet は、指定されたポートで TCP ソケットを開こうとします。接続が確立された場合、コンテナは正常と見なされます。そうでない場合は、失敗したと見なされます。

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

  • [初期遅延] (秒):initialDelaySeconds パラメーターの値です。コンテナが起動してから最初のプローブが実行されるまでの待機秒数です。デフォルトは 15 秒です。

  • [プローブ間隔] (秒):プローブを実行する間隔です。periodSeconds パラメーターで指定します。デフォルト値は 10 秒、最小値は 1 秒です。

  • [タイムアウト] (秒):プローブのタイムアウト期間です。これは timeoutSeconds パラメーターに対応します。デフォルト値は 1 秒、最小値は 1 秒です。

  • [正常しきい値]:失敗後にコンテナを正常とマークするために必要な連続した成功プローブの最小数です。デフォルト値: 1。最小値: 1。Liveness プローブの場合、これは 1 である必要があります。

  • [異常しきい値]:コンテナを異常とマークするために必要な連続した失敗プローブの最小数です。デフォルト値: 3。最小値: 1。

リクエストタイプ:コマンドライン

コンテナ内でコマンドを実行して、そのヘルスステータスを判断します。

  • [コマンド]:コンテナのヘルス状態をプローブするために使用されるコマンドです。

  • [初期遅延] (秒):initialDelaySeconds の値です。コンテナが起動してから最初のプローブが実行されるまでの待機秒数です。デフォルトは 5 秒です。

  • [プローブ間隔] (秒):プローブを実行する時間間隔です。これは periodSeconds パラメーターに対応します。デフォルト値は 10 秒、最小値は 1 秒です。

  • [タイムアウト] (秒):プローブのタイムアウト期間を指定する timeoutSeconds パラメーターです。デフォルト値は 1 秒です。最小値は 1 秒です。

  • [正常しきい値]:失敗後にコンテナを正常とマークするために必要な連続した成功プローブの最小数です。デフォルト値: 1。最小値: 1。Liveness プローブの場合、これは 1 である必要があります。

  • [異常しきい値]:コンテナを異常とマークするために必要な連続した失敗プローブの最小数です。デフォルト値: 3。最小値: 1。

[Readiness プローブ]:Readiness プローブは、コンテナがトラフィックを受け入れる準備ができているかどうかをチェックします。Pod は、Readiness プローブが成功した後にのみ Service のバックエンドとして追加されます。

[Startup プローブ]:これらのプローブは、コンテナが正常に起動したかどうかをチェックするために、コンテナの起動時にのみ実行されます。[Liveness プローブ]と [Readiness プローブ]は、Startup プローブが成功した後にのみ実行されます。

説明

Startup プローブは、バージョン 1.18 以降を実行する Kubernetes クラスターでのみサポートされます。

ライフサイクル

image

パラメーター

説明

[開始]

コンテナの開始コマンドと引数を設定します。これらはコンテナの起動時に実行される操作を定義し、アプリケーションサービスを初期化するために使用されます。これは、特定の環境変数、マウントポイント、またはポートマッピングを必要とするアプリケーションのデプロイに適しています。

[Post Start]

コンテナが作成された直後に実行されるコマンドを設定します。これは、メインプロセスが開始される前に、設定の初期化やスクリプトの実行などのタスクを実行するのに役立ちます。

[Pre Stop]

コンテナが終了する直前に実行されるコマンドを設定します。これは、データの整合性を確保し、データの損失やサービスの異常を防ぐために、アプリケーションプロセスを正常にシャットダウンするのに役立ちます。

コンテナのライフサイクルでは、開始、開始後、停止前のハンドラーを設定できます。詳細については、Kubernetes ドキュメントの「コンテナライフサイクルイベントへのハンドラーのアタッチ」をご参照ください。

Volume

パラメーター

説明

[ローカルストレージの追加]

ホストノードから Pod にローカルストレージ Volume をマウントします。ローカルストレージ Volume 内のデータはノードに保存され、ノードがシャットダウンすると失われます。ローカルストレージは、Secret、 ConfigMap、およびその他の一時的な Volume タイプのマウントもサポートしています。ストレージ Volume を使用する前に、「ストレージ」を読んで ACK のストレージの基本を理解してください。

[PVC (PersistentVolumeClaim) の追加]

クラウドストレージ Volume を Pod にマウントして、重要なデータを永続化します。クラウドストレージ Volume は、ワーカーノードから独立したリモートストレージサービスであり、ノードの変更による影響を受けません。ACK は、クラウドディスク、Apsara File Storage NAS、 Object Storage Service (OSS) など、さまざまな Alibaba Cloud ストレージサービスをサポートしています。ストレージ Volume を使用する前に、「ストレージ」を読んで ACK のストレージの基本を理解してください。

ログ

[収集設定]

  • Log Service:収集されたログを保存するために、クラスターに関連付けられた Log Service プロジェクトに Logstore が作成されます。ログを使用する前に、「ログ管理」を読んで ACK のロギングの基本を理解してください。

  • コンテナ内のログパスです。コンテナの標準出力ログを収集するには、これを Stdout に設定します。

[カスタムタグ]

カスタムタグを設定すると、タグはコンテナのログ出力と一緒に収集されます。これは、ログの統計やフィルタリングなどの分析に役立ちます。

詳細設定

設定カード

パラメーター

説明

[アクセス制御]

[Service]

Service は、Pod のグループに対して安定した統一されたレイヤー 4 (トランスポート層) エンドポイントを提供します。これは、ワークロードを公開するために必要なリソースです。Service は、[ClusterIP]、 [NodePort]、 [LoadBalancer] など、複数のタイプをサポートしています。Service を設定する前に、「Service 管理」を参照して基本的な概念を理解してください。

[Ingress]

Ingress は、クラスター内の複数の Service に対してレイヤー 7 (アプリケーション層) のエントリポイントを提供し、ドメイン名の一致に基づいてリクエストを異なる Service に転送します。Ingress を使用する前に、Ingress コントローラーをインストールする必要があります。ACK は、さまざまなシナリオに対応するいくつかのオプションを提供しています。詳細については、「NGINX Ingress Controller、ALB Ingress Controller、および MSE Ingress ゲートウェイの比較」をご参照ください。

[スケーリング]

[Horizontal Pod Autoscaler (HPA)]

Horizontal Pod Autoscaler (HPA) は、コンテナのパフォーマンスメトリックに基づいて Pod の数を自動的にスケーリングします。これにより、ビジネス負荷の変動に応じてワークロードが使用する総リソースを調整し、高負荷に対応するためにスケールアウトし、低負荷時にリソースを節約するためにスケールインするのに役立ちます。詳細については、「HorizontalPodAutoscaler を使用して Pod を自動的にスケーリングする」をご参照ください。

[CronHPA]

CronHPA は、スケジュールされた時間にワークロードをスケーリングします。これは、昼食後や夕食後のソーシャルメディアプラットフォームのトラフィックピークなど、予測可能で周期的なビジネス負荷の変動があるシナリオに適しています。詳細については、「CronHPA を使用して Pod を自動的にスケーリングする」をご参照ください。

[スケジューリング]

[アップグレード戦略]

Pod の設定が変更されたときに、古い Pod を新しい Pod に置き換えるために使用される戦略です。

  • ローリングアップデート:Pod を 1 つずつ、またはバッチで置き換えます。次の置き換えは、新しい Pod が正常に実行された後にのみ開始されます。この方法はサービスの継続性を保証しますが、更新中にクライアントが異なるバージョンの Pod に同時にアクセスする可能性があります。

  • Recreate:新しい Pod を作成する前に、既存のすべての Pod を一度に終了させます。これによりサービスが中断される可能性がありますが、更新後にすべての Pod が同じバージョンを実行することが保証されます。

  • [ノードアフィニティ]

  • [Pod アフィニティ]

  • [Pod アンチアフィニティ]

  • [Toleration]

アフィニティ、アンチアフィニティ、および Toleration は、Pod がノードにどのようにスケジュールされるかを制御するために使用されます。これらの操作は複雑であり、事前の計画が必要です。詳細については、「スケジューリング」をご参照ください。

[ラベルとアノテーション]

[Pod ラベル]

ワークロードに属する各 Pod にラベルを追加します。クラスター内では、ワークロードや Service などのリソースがラベルを使用して Pod と照合します。デフォルトでは、ACK は app:(application name) の形式のラベルを Pod に追加します。

[Pod アノテーション]

このワークロードの各 Pod にアノテーションを追加します。ACK の一部の機能はアノテーションを使用しており、それらの機能を使用する際に必要に応じて追加または変更できます。

ワークロード YAML のサンプル

apiVersion: apps/v1
kind: Deployment    # ワークロードのタイプ。
metadata:
  name: nginx-test
  namespace: default  # Namespace。要件に応じて変更してください。
  labels:
    app: nginx
spec:
  replicas: 2  # Pod レプリカの数。
  selector:
    matchLabels:
      app: nginx
  template: # Pod テンプレート。
    metadata:
      labels: # Pod のラベル。
        app: nginx 
      annotations: # Pod のアノテーション。
        description: "This is an application deployment"
    spec:
      containers:
      - name: nginx  # コンテナ名。
        image: nginx:1.7.9  # NGINX イメージとそのバージョン。
        ports:
        - name: nginx  # ポート名。
          containerPort: 80  # コンテナが公開するポート。
          protocol: TCP  # プロトコル。TCP または UDP に設定できます。デフォルト値:TCP。
        command: ["/bin/sh"]  # コンテナのエントリポイント。
        args: [ "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY) && exec nginx -g 'daemon off;'"] # 変数を表示し、NGINX を起動します。
        stdin: true  # 標準入力を有効にします。
        tty: true    # 疑似 TTY を割り当てます。
        env:
          - name: SPECIAL_LEVEL_KEY
            valueFrom:
              configMapKeyRef:
                name: special-config  # ConfigMap の名前。
                key: SPECIAL_LEVEL    # ConfigMap のキー。
        securityContext:
          privileged: true  # true に設定すると特権モードを有効にします。デフォルト値:false。
        resources:
          limits:
            cpu: "500m"               # CPU の最大量、500 ミリコア。
            memory: "256Mi"           # メモリの最大量、256 MiB。
            ephemeral-storage: "1Gi"  # エフェメラルストレージの最大量、1 GiB。
          requests:
            cpu: "200m"               # 要求される CPU の最小量、200 ミリコア。
            memory: "128Mi"           # 要求されるメモリの最小量、128 MiB。
            ephemeral-storage: "500Mi" # 要求されるエフェメラルストレージの最小量、500 MiB。
        livenessProbe:  # Liveness プローブの設定。
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 30
          periodSeconds: 10
        readinessProbe:  # Readiness プローブの設定。
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 5
          periodSeconds: 10
        volumeMounts:
        - name: tz-config
          mountPath: /etc/localtime
          readOnly: true
      volumes:
      - name: tz-config
        hostPath:
          path: /etc/localtime  # ホストの /etc/localtime ファイルをコンテナの同じパスにマウントします。
---
# Service の定義。
apiVersion: v1
kind: Service
metadata:
  name: nginx-test-svc
  namespace: default  # Namespace。要件に応じて変更してください。
  labels:
    app: nginx
spec:
  selector:
    app: nginx  # 指定されたラベルを持つ Pod を選択します。
  ports:
    - port: 80           # Service がクラスター内で公開するポート。
      targetPort: 80     # トラフィックが転送されるコンテナポート。
      protocol: TCP      # プロトコル。デフォルト値:TCP。
  type: ClusterIP        # Service のタイプ。デフォルト値:ClusterIP (内部アクセスのみ)。
---
# Ingress の定義。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  namespace: default  # Namespace。要件に応じて変更してください。
  annotations:
    kubernetes.io/ingress.class: "nginx"  # Ingress コントローラーを指定します。
    # Alibaba Cloud SLB Ingress コントローラーを使用する場合は、次のアノテーションを追加できます:
    # service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "lb-xxxxxxxxxx"
    # service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.spec.s1.small"
spec:
  rules:
    - host: foo.bar.com  # ご使用のドメイン名に置き換えてください。
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nginx-test-svc # バックエンド Service の名前。
                port:
                  number: 80         # バックエンド Service のポート。
  tls:  # オプション。HTTPS を有効にするために使用されます。
    - hosts:
        - foo.bar.com  # ご使用のドメイン名に置き換えてください。
      secretName: tls-secret  # TLS 証明書を含む Secret の名前。

関連ドキュメント