【问题标题】:Usage of --record in kubectl imperative commands in Kubernetes在 Kubernetes 的 kubectl 命令式命令中使用 --record
【发布时间】:2020-10-31 00:36:39
【问题描述】:

我试图找到什么时候应该使用--record 的有用信息。我创建了 3 个命令:

  • k set image deployment web1 nginx=lfccncf/nginx:latest --record
  • k rollout undo deployment/web1 --record
  • k -n kdpd00202 edit deployment web1 --record

谁能告诉我是否需要在这 3 个命令中的每一个中使用 --record

什么时候需要使用--record,什么时候没用?

【问题讨论】:

    标签: kubernetes kubernetes-pod


    【解决方案1】:

    你可以指定--record标志来写在资源注解kubernetes.io/change-cause中执行的命令。记录的更改对于将来的自省很有用。例如,查看在每个 Deployment 修订中执行的命令。

    kubectl rollout history deployment.v1.apps/nginx-deployment
    The output is similar to this:
    
    deployments "nginx-deployment"
    REVISION    CHANGE-CAUSE
    1           kubectl apply --filename=https://k8s.io/examples/controllers/nginx-deployment.yaml --record=true
    2           kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1 --record=true
    3           kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.161 --record=true
    

    因此对于任何命令都不是强制性的,但建议在 kubectl set image 使用,因为如果您跳过 --record,您将不会在上面的 CHANGE-CAUSE 部分看到任何内容

    【讨论】:

    • 如果您想从记录的声明性命令中查看参数,请执行kubectl rollout history deployment.v1.apps/nginx-deployment --revision=[revision_number]
    【解决方案2】:

    Kubernetes 所需的状态可以通过两种范式进行更新/变异:

    1. 必须使用 kubectl adhoc 命令(k setk createk runk rollout,..)
    2. 以声明方式使用带有单个 k apply 的 YAML 清单

    声明性方式非常适合将您的 k8s 清单视为代码,然后您可以与团队共享此代码,例如通过 Git 对其进行版本化,并利用 GitOps 实践(分支模型、代码审查、CI/光盘)。

    但是,团队无法审查命令式方法,因为这些临时命令将由个人运行,并且在更改完成后没有其他人可以轻松找出更改的原因制作。

    为了克服命令式命令缺少审计跟踪的问题,--record 选项可将更改的根本原因绑定为名为 kubernetes.io/change-cause 的注释,并且此注释的值是命令式命令本身。

    (以下注释来自official doc

    注意:你可以指定 --record 标志来写在资源注解 kubernetes.io/change-cause 中执行的命令。记录的更改对于将来的自省很有用。例如,查看在每个 Deployment 修订中执行的命令。

    结论:

    • 理论上,--record 不是强制性的
    • 实际上,这是强制性的,以确保更改留下基本的审计线索并符合 SRE 流程和 DevOps 文化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多