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

[解決済み】kubectl apply vs kubectl create?

2022-04-29 14:49:57

質問

ドキュメントで理解したことは、以下の通りです。

  • kubectl create
    
    
    クラスタ内に新しいk8sリソースを作成する
  • kubectl replace
    
    
    ライブクラスタ内のリソースを更新
  • kubectl apply
    
    
    作成+置換を行いたい場合 ( 参照 )

私の質問は

  1. クラスタで同じタスクを行うのに、なぜ3つのオペレーションがあるのですか?
  2. これらの操作にはどのようなユースケースがありますか?
  3. 両者の違いは?

解決方法は?

2種類のアプローチがあります。

インペラティブ経営

kubectl create は、いわゆる インパルスマネジメント . このアプローチでは、K8sクラスタの世界をどのように見せたいのかではなく、何を作成、置換、削除したいのかをKubernetes APIに伝えます。

宣言的管理

kubectl apply はその一部です。 宣言的マネジメント このアプローチでは、ライブオブジェクトに適用した変更 (たとえば scale )は"です。 維持 "たとえ、あなたが apply オブジェクトに他の変更を加える。

命令型と宣言型の管理について、詳しくは Kubernetesオブジェクト管理 のドキュメントを参照してください。

平たく言えば、それぞれ違うことをする。リソースが存在する場合 kubectl create はエラーになり kubectl apply はエラーになりません。