1. ホーム
  2. クーベルネッツ

[解決済み】ポッドとデプロイの違いは何ですか?

2022-03-26 18:15:38

質問

でポッドを作成しています。 type:deployment を使用しているドキュメントもあるようですが type:pod より具体的には マルチコンテナポッドのドキュメント :

apiVersion: v1
kind: Pod
metadata:
  name: ""
  labels:
    name: ""
  namespace: ""
  annotations: []
  generateName: ""
spec:
  ? "// See 'The spec schema' for details."
  : ~

しかし、ポッドを作成するには、単に デプロイメントタイプ :

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ""
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: ""
    spec:
      containers:
        etc

podのドキュメントに書いてあるのに気づいた。

createコマンドは、直接ポッドを作成するために使用することができます。 は、デプロイメントを通じてポッドまたはポッドを作成します。これは非常に推奨される ポッドの作成には、デプロイメントを使用すること。これは失敗した を維持するために必要な新しいポッドを起動します。 数です。Deploymentにポッドを監視させたくない場合(例えば、あなたの ポッドが非永続的なデータを書き込んでいて再起動に耐えられない、あるいは ポッドが非常に短命であることを意図している場合)、ポッド をcreateコマンドで直接実行します。

注:ポッドの作成には、デプロイメントを使用することをお勧めします。ポッドを作成するには、デプロイメントを使用することをお勧めします。 以下の手順は、Deployment を作成しない場合のみです。

しかし、これでは何の kind:pod が良いのか?デプロイメントでどうにかしてポッドを参照できないか?私はその方法を見ませんでした。ポッドで得られるのは追加のメタデータだけで、次のようなデプロイメントオプションはないようです。 replica や再起動ポリシーが必要です。データを持続させないポッドは、再起動に耐えられるのでしょうか?デプロイメントでマルチコンテナポッドも作れそうな気がするけど。

解決方法は?

PodとDeploymentはどちらもKubernetes APIの本格的なオブジェクトです。 DeploymentはReplicaSetsによってPodの作成を管理します。要するに、Deploymentはテンプレートから取得したスペックでPodを作成するということです。本番ユースケースでPodを直接作成することはあまりないと思います。