作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
Kubernetes 注解(Annotations)是 Kubernetes API 中的一个特性,用于添加任意非标识性的元数据到对象上。注解可以用来保存对象的附加信息,这些信息可以用来对对象进行说明、提供调试信息、配置指令或者其他你希望与对象关联的信息。与标签(Labels)不同,注解不用于识别和选择对象,它们只是附加信息。简单来来说就它只是一个用于记录容器的一些信息。
注解的用途
- 构建信息:记录构建号码、版本号、Git commit 信息等。
metadata:
annotations:
example.com/build-version: "v1.2.3"
example.com/git-commit: "a1b2c3d"
- 日志记录:记录日志收集、监控系统的配置信息。
metadata:
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
- 程序配置:为调度器或运维工具提供指令。
- 资源管理:标记资源以进行特定的资源管理操作。
注解的格式
注解是键值对,与标签类似,但注解的键和值都有一定的限制:
-
键必须是 DNS 标签格式的字符串。
-
键不能以
kubectl.kubernetes.io/
开头,这是 Kubernetes 预留的。 -
键的长度不能超过 63 个字符。
-
键和值都必须是字符串。
注解的操作
添加注解
#这里的资源可Pod,也可以是其他资源
kubectl annotate pod my-pod \
-n my-namespace \
example.com/annotation="my-value"
删除注解
#和前面其他操作类似都是在key后添加个-做删除操作
kubectl annotate pod my-pod \
-n my-namespace \
example.com/annotation-
更新注解
#这里实际上是用新值去覆盖旧的,必须添加--overwrite参数
kubectl annotate pod my-pod \
-n my-namespace \
example.com/annotation="my-new-value" --overwrite
下图是集群自带的注解,记录是容器的信息,包括容器ID和IP。
这个注解操作的时候需要注意最好是添加在上层资源,如果添加到某个工作负载(Deployment)下的Pod,Pod重建以后就会消失。所以这里要加,需要添加到Deployment。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。