kubernetes kubectl中的发电机是什么?

时间:2019-05-04 11:17:25

标签: kubernetes kubectl

当我想通过运行kubectl生成yaml时,它表示我应该在命令中表示--generator=something标志。

例如,要通过kubectl获取部署模板,我应运行以下命令:

kubectl run --generator=deployment/v1beta1 nginx --image=nginx --dry-run -o yaml

在没有提及--generator标志的情况下,CLI会以某种形式指出我应该使用适当的值(例如run-pod/v1)来提及generator标志。

我的问题是,本质上什么是发电机?它有什么作用?它们是某种对象创建模板还是其他?

1 个答案:

答案 0 :(得分:2)

它于2016年1月commit 426ef93中针对Kubernetes v1.2.0-alpha.8引入。

The generators被描述为:

  

生成器是kubectl命令,它们根据一组输入(其他资源,标志或两者的组合)生成资源。

     

生成器的要点是:

     
      
  • 允许用户以脚本方式使用kubectl来锁定将来可能会改变的特定行为。
      明确使用生成器将始终保证预期的行为保持不变。
  •   
  • 为除了创建之外的场景启用潜在的生成资源扩展,类似于大多数通用命令支持-f的方式。
  •   

并且:

  

生成器命令应遵循以下约定:

     
      
  • 应定义一个--generator标志。然后,用户可以选择不同的生成器(如果命令支持它们)(例如kubectl run当前支持Pod,作业,复制控制器和部署的生成器),或者在不同版本的生成器之间进行选择,以便用户根据不同的生成器进行选择。特定的行为可能会锁定该版本(例如,kubectl公开当前支持服务生成器的两个不同版本)。
  •   
  • 应该使创造与创造脱节。
      生成器应实现kubectl.StructuredGenerator接口,并且不依赖于眼镜蛇或Factory
  •