您的位置 首页 > 德语词汇

annotate是什么意思?用法、例句 k8s如何修改annotate注释

大家好,今天小编来为大家解答annotate是什么意思?用法、例句这个问题,k8s如何修改annotate注释很多人还不知道,现在让我们一起来看看吧!

1、虽然“kubectlannotate”将直接在对象上设置注释,但它不会在部署或Daemonset的更深嵌套的pod模板上设置注释。如果您想在不修改完整清单的情况下在pod模板(.spec.template.metadata.annotations)上快速设置注释,您可以使用“补丁”命令。举个简短的例子:

2、或者有时候你改了deployment又发现Pod的annotate始终没有变化,那么这个文档可能会帮到你

annotate是什么意思?用法、例句 k8s如何修改annotate注释

3、首先拉去镜像,创建Deployment在特定的namespace里面

4、dockerpullnginx:latest\n#createdeployment\nkubectlcreatenslex\nnamespace/lexcreated\n```yaml\napiVersion:apps/v1\nkind:Deployment\nmetadata:\nannotations:\ndeployment.kubernetes.io/revision:"1"\nname:nginx-app\nnamespace:lex\nspec:\nreplicas:1\nselector:\nmatchLabels:\napp:nginx-app\ntemplate:\nmetadata:\nlabels:\napp:nginx-app\nspec:\ncontainers:\n-image:nginx:latest\nimagePullPolicy:Always\nname:nginx-app\nports:\n-containerPort:80\nprotocol:TCP\nrestartPolicy:Always\n```\nkubectlapply-fnginx.yaml\ndeployment.apps/nginx-appcreated

现在查看下状态及对应的annotations

5、kubectlgetdeploymentnginx-app-o=jsonpath="{.metadata.annotations}"-nlex|jq

6、?~kubectlgetdeploymentnginx-app-o=jsonpath="{.metadata.annotations}"-nlex|jq\n{\n"deployment.kubernetes.io/revision":"1",\n"kubectl.kubernetes.io/last-applied-configuration":"{\\"apiVersion\\":\\"apps/v1\\",\\"kind\\":\\"Deployment\\",\\"metadata\\":{\\"annotations\\":{\\"deployment.kubernetes.io/revision\\":\\"1\\"},\\"name\\":\\"nginx-app\\",\\"namespace\\":\\"lex\\"},\\"spec\\":{\\"replicas\\":1,\\"selector\\":{\\"matchLabels\\":{\\"app\\":\\"nginx-app\\"}},\\"template\\":{\\"metadata\\":{\\"labels\\":{\\"app\\":\\"nginx-app\\"}},\\"spec\\":{\\"containers\\":[{\\"image\\":\\"nginx:latest\\",\\"imagePullPolicy\\":\\"Always\\",\\"name\\":\\"nginx-app\\",\\"ports\\":[{\\"containerPort\\":80,\\"protocol\\":\\"TCP\\"}]}],\\"res

Pod模板的注释为空

7、~kubectlgetdeploymentnginx-app-o=jsonpath="{.spec.template.metadata.annotations}"-nlex

现在,让我们在部署中使用“注释”命令。请注意,部署本身的注释被修改了,但pod模板注释没有修改。

8、kubectlannotatedeploymentnginx-app"splunk_id:lextest"-nlex\ndeployment.apps/nginx-appannotated

查看下结果

9、?~kubectlgetdeploymentnginx-app-o=jsonpath="{.metadata.annotations}"-nlex|jq\n{\n"deployment.kubernetes.io/revision":"1",\n"kubectl.kubernetes.io/last-applied-configuration":"{\\"apiVersion\\":\\"apps/v1\\",\\"kind\\":\\"Deployment\\",\\"metadata\\":{\\"annotations\\":{\\"deployment.kubernetes.io/revision\\":\\"1\\"},\\"name\\":\\"nginx-app\\",\\"namespace\\":\\"lex\\"},\\"spec\\":{\\"replicas\\":1,\\"selector\\":{\\"matchLabels\\":{\\"app\\":\\"nginx-app\\"}},\\"template\\":{\\"metadata\\":{\\"labels\\":{\\"app\\":\\"nginx-app\\"}},\\"spec\\":{\\"containers\\":[{\\"image\\":\\"nginx:latest\\",\\"imagePullPolicy\\":\\"Always\\",\\"name\\":\\"nginx-app\\",\\"ports\\":[{\\"containerPort\\":80,\\"protocol\\":\\"TCP\\"}]}],\\"restartPolicy\\":\\"Always\\"}}}}\\n",\n"splunk_id":"lextest"\n}

但pod模板的注释仍然为空

10、~kubectlgetdeploymentnginx-app-o=jsonpath="{.spec.template.metadata.annotations}"-nlex

要修改更深的pod模板注释,请使用“补丁”

11、这将在pod模板上设置深度注释,根本上是应用字段的问题

12、kubectlpatchdeploymentnginx-app-p'{"spec":{"template":{"metadata":{"annotations":{"sidecar.istio.io/inject":"false"}}}}}'-nlex

现在pod模板成功显示注释!

13、?~kubectlgetdeploymentnginx-app-o=jsonpath="{.spec.template.metadata.annotations}"-nlex|jq\n{\n"sidecar.istio.io/inject":"false"\n}\n也可以直接查看这个Pod的yaml\n?~kubectlgetpodnginx-app-c9cffdc55-dmvlg-nlex-oyaml|more\napiVersion:v1\nkind:Pod\nmetadata:\nannotations:\nsidecar.istio.io/inject:"false"

所以结论就是可以通过

14、Path方式来给deployment对应的spec.template应用annotation

15、如果您想删除pod模板注释,则不能像以前那样使用补丁,因为它使用的合并策略只能附加。但是,如果您使用jsonpatch规范,那么您可以指定“删除”操作。

16、?~kubectlpatchdeploymentnginx-app--type=json-p='[{"op":"remove","path":"/spec/template/metadata/annotations/sidecar.istio.io~1inject"}]'-nlex\ndeployment.apps/nginx-apppatched

在此查看下Pod模板注释现在又为空了

17、?~kubectlgetdeploymentnginx-app-o=jsonpath="{.spec.template.metadata.annotations}"-nlex|jq

要删除部署,请执行以下操作:我这个比较暴力直接删除namespace

18、?~kubectldeletenslex\nnamespace"lex"deleted

#Other

19、如果你调整了对应的deployment的字段,还是不能生效

20、kubectlscaledeploymentnginx-app--replicas=1-nlex

21、https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/replicaset/

好了,关于annotate是什么意思?用法、例句和k8s如何修改annotate注释的问题到这里结束啦,希望可以解决您的问题哈!

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023