AIOps 一场颠覆传统运维的盛筵
812
2022-10-29
K8S(八) | Kubernetes 推荐标签
推荐标签
您可以使用比kubectl和仪表板更多的工具来可视化和管理Kubernetes对象。一组通用的标签允许工具以互操作的方式工作,以所有工具都能理解的通用方式描述对象。
除支持工具外,推荐标签还以可查询的方式描述应用程序。
标签应用程序和应用程序实例例子
元数据围绕应用程序的概念进行组织。Kubernetes不是一个服务平台(PaaS),也没有或强制执行正式的应用程序概念。相反,应用程序是非正式的,并使用元数据进 应用程序包含的内容的定义是松散的。
注意:这些是推荐标签。它们使管理应用程序变得更容易,但对于任何核心工具都不是必需的。
共享标签和注释共享一个共同的前缀:app.kubernetes.io。没有前缀的标签对用户是私有的。共享前缀可确保共享标签不会干扰自定义用户标签。
标签
为了充分利用这些标签,应将它们应用于每个资源对象。
要说明这些标签的运行情况,请考虑以下StatefulSet对象:
apiVersion: apps/v1kind: StatefulSetmetadata: labels: app.kubernetes.io/name: mysql app.kubernetes.io/instance: wordpress-abcxzy app.kubernetes.io/version: "5.7.21" app.kubernetes.io/component: database app.kubernetes.io/part-of: wordpress app.kubernetes.io/managed-by: helm
应用程序和应用程序实例
应用程序可以一次或多次安装到Kubernetes集群中,在某些情况下,可以安装在同一名称空间中。例如,wordpress可以不止一次安装,其中不同的网站是wordpress的不同安装。
应用程序的名称和实例名称分别记录。例如,在WordPress具有app.kubernetes.io/name的wordpress,同时它有一个实例名,被表示为app.kubernetes.io/instance具有值wordpress-abcxzy。这使得应用程序的应用程序和实例可以识别。应用程序的每个实例都必须具有唯一的名称。
例子
为了说明使用这些标签的不同方式,以下示例具有不同的复杂性。
一种简单的无状态服务
考虑使用Deployment和Service对象部署的简单无状态服务的情况。以下两个代码段表示如何以最简单的形式使用标签。
本Deployment是用来监督运行应用程序本身的豆荚。
apiVersion: apps/v1kind: Deploymentmetadata: labels: app.kubernetes.io/name: myservice app.kubernetes.io/instance: myservice-abcxzy...
将Service用于公开应用程序。
apiVersion: v1kind: Servicemetadata: labels: app.kubernetes.io/name: myservice app.kubernetes.io/instance: myservice-abcxzy...
使用数据库的Web应用程序
考虑一个稍微复杂的应用程序:使用Helm安装的使用数据库(MySQL)的Web应用程序(WordPress)。以下代码段说明了用于部署此应用程序的对象的开始。
以下Deployment内容用于WordPress:
apiVersion: apps/v1kind: Deploymentmetadata: labels: app.kubernetes.io/name: wordpress app.kubernetes.io/instance: wordpress-abcxzy app.kubernetes.io/version: "4.9.4" app.kubernetes.io/managed-by: helm app.kubernetes.io/component: server app.kubernetes.io/part-of: wordpress...
将Service用于公开WordPress的:
apiVersion: v1kind: Servicemetadata: labels: app.kubernetes.io/name: wordpress app.kubernetes.io/instance: wordpress-abcxzy app.kubernetes.io/version: "4.9.4" app.kubernetes.io/managed-by: helm app.kubernetes.io/component: server app.kubernetes.io/part-of: wordpress...
MySQL作为一个StatefulSet包含它的元数据和它所属的更大的应用程序公开:
apiVersion: apps/v1kind: StatefulSetmetadata: labels: app.kubernetes.io/name: mysql app.kubernetes.io/instance: wordpress-abcxzy app.kubernetes.io/managed-by: helm app.kubernetes.io/component: database app.kubernetes.io/part-of: wordpress app.kubernetes.io/version: "5.7.21"...
将Service用于公开MySQL作为WordPress的部分:
apiVersion: v1kind: Servicemetadata: labels: app.kubernetes.io/name: mysql app.kubernetes.io/instance: wordpress-abcxzy app.kubernetes.io/managed-by: helm app.kubernetes.io/component: database app.kubernetes.io/part-of: wordpress app.kubernetes.io/version: "5.7.21"...
使用MySQL StatefulSet,Service您会注意到有关MySQL和Wordpress的信息,包括更广泛的应用程序
关注我,每天学习Kubernetes
发表评论
暂时没有评论,来抢沙发吧~