第1章 Pod の仕様変更


Kubernetes の Pod は、単一のホスト上でネットワークとストレージを共有する 1 つ以上のコンテナーで設定される、展開可能な最小のコンピュートユニットです。Red Hat Ansible Automation Platform はデフォルトの Pod 仕様を使用しますが、これはユーザー定義の YAML または JSON ドキュメントでカスタマイズできます。

1.1. はじめに

Pod の Kubernetes の概念は、「1 つのホストに一緒にデプロイされる 1 つ以上のコンテナーであり、定義、デプロイ、または管理できる最小のコンピューティングユニット」です。

Pod は、コンテナーに対して、(物理または仮想) マシンインスタンスと同等のものです。各 Pod は独自の内部 IP アドレスで割り当てられるため、そのポートスペース全体を所有し、Pod 内のコンテナーはそれらのローカルストレージおよびネットワークを共有できます。

Pod にはライフサイクルがあります。それらは定義された後にノードで実行するために割り当てられ、コンテナーが終了するまで実行するか、その他の理由でコンテナーが削除されるまで実行します。ポリシーおよび終了コードによっては、Pod は終了後に削除されるか、コンテナーのログへのアクセスを有効にするために保持される可能性があります。

Red Hat Ansible Automation Platform は単純なデフォルトの Pod 仕様を提供しますが、デフォルトの Pod 仕様をオーバーライドするカスタム YAML または JSON ドキュメントを提供できます。このカスタムドキュメントは、有効な Pod JSON または YAML としてシリアル化できる ImagePullSecrets などのカスタムフィールドを使用します。

オプションの完全なリストは、Openshift Online のドキュメント記載されています。

長期サービスを提供する Pod の例。

この例は、数多くの Pod 機能を示していますが、そのほとんどは他のトピックで説明されるため、ここでは簡単に説明します。

Copy to Clipboard Toggle word wrap
apiVersion: v1
kind: Pod
metadata:
  annotations: { ... }                      
1

  labels:
    deployment: docker-registry-1
    deploymentconfig: docker-registry
    docker-registry: default
  generateName: docker-registry-1-          
2

spec:
  containers:                               
3

  - env:         	            	  
4

    - name: OPENSHIFT_CA_DATA
      value: ...
    - name: OPENSHIFT_CERT_DATA
      value: ...
    - name: OPENSHIFT_INSECURE
      value: "false"
    - name: OPENSHIFT_KEY_DATA
      value: ...
    - name: OPENSHIFT_MASTER
      value: https://master.example.com:8443
    image: openshift/origin-docker-registry:v0.6.2 
5

    imagePullPolicy: IfNotPresent
    name: registry
    ports:   		                          
6

    - containerPort: 5000
      protocol: TCP
    resources: {}                                    
7

    securityContext: { ... }    		 
8

    volumeMounts:                       	   
9

    - mountPath: /registry
      name: registry-storage
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-br6yz
      readOnly: true
  dnsPolicy: ClusterFirst
  imagePullSecrets:                                  
10

  - name: default-dockercfg-at06w
  restartPolicy: Always  			     
11

  serviceAccount: default			    
12

  volumes:        	                            
13

  - emptyDir: {}
    name: registry-storage
  - name: default-token-br6yz
    secret:
      secretName: default-token-br6yz
ラベル説明

annotations:

Pod には 1 つまたは複数のラベルで "タグ付け" することができ、このラベルを使用すると、一度の操作で Pod グループの選択や管理が可能になります。これらのラベルは、キー/値形式で metadata ハッシュに保存されます。この例で使用されているラベルは docker-registry=default です。

generateName:

Pod にはそれらの名前空間内に任意の名前がなければなりません。Pod 定義では、generateName 属性を使用して名前のベースを指定し、ランダムな文字を自動的に追加して一意の名前を生成できます。

containers:

containers は、コンテナー定義のアレイを指定します。(ほとんどの場合と同様に) この場合は、コンテナーを 1 つだけ定義します。

env:

環境変数は、必要な値を各コンテナーに渡します。

image:

Pod の各コンテナーは、独自の Docker 形式のコンテナーイメージからインスタンス化されます。

ports:

コンテナーは、Pod の IP で使用可能になったポートにバインドできます。

resources:

Pod を指定する場合は、必要に応じて、コンテナーが必要とする各リソースの量を記述できます。指定する最も一般的なリソースは、CPU とメモリー (RAM) です。他のリソースも使用できます。

securityContext:

OpenShift Online は、コンテナーが特権付きコンテナーとして実行を許可されるか、選択したユーザーとして実行を許可されるかどうかを指定するセキュリティーコンテキストを定義します。デフォルトのコンテキストには多くの制限がありますが、管理者は必要に応じてこれを変更できます。

volumeMounts:

コンテナーは外部ストレージボリュームがコンテナー内にマウントされるかどうかを指定します。この場合、レジストリーのデータを保存するためのボリュームと、OpenShift Online API に対して要求を行うためにレジストリーが必要とする認証情報へのアクセス用のボリュームがあります。

ImagePullSecrets

Pod には 1 つ以上のコンテナーを含めることができます。コンテナーは、レジストリーからプルする必要があります。認証を必要とするレジストリーからのコンテナーの場合は、名前空間に存在する ImagePullSecrets を参照する ImagePullSecrets のリストを提供できます。これらを指定すると、イメージをプルする際に Red Hat OpenShift Container Platform がコンテナーレジストリーで認証できるようになります。詳細は、Kubernetes ドキュメントの Resource Management for Pods and Containers を参照してください。

restartPolicy:

Pod 再起動ポリシーと使用可能な値の AlwaysOnFailure、および Never です。デフォルト値は Always です。

serviceAccount:

OpenShift Online API に対して要求する Pod は一般的なパターンです。この場合は serviceAccount フィールドがありますが、これは要求を行う際に Pod が認証する必要のあるサービスアカウントユーザーを指定するために使用されます。これにより、カスタムインフラストラクチャーコンポーネントの詳細なアクセス制御が可能になります。

volumes:

Pod は、コンテナーで使用できるストレージボリュームを定義します。この場合は、レジストリーストレージの一時的なボリュームおよびサービスアカウントの認証情報が含まれる secret ボリュームが提供されます。

Automation Controller を使用し、Automation Controller UI で Pod 仕様を編集し、Kubernetes ベースのクラスターでジョブを実行するために使用される Pod を変更できます。ジョブを実行する Pod の作成に使用される Pod 仕様は YAML 形式です。Pod 仕様の編集の詳細は、Pod 仕様のカスタマイズ を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.