首页 > 其他分享 >k8s中的lables和matchlables的作用

k8s中的lables和matchlables的作用

时间:2024-09-12 14:53:15浏览次数:14  
标签:matchlables Service app labels matchLabels StatefulSet lables k8s Pods

statefulset中的labels和matchlables

labels 是一种键值对,可以被附加到任何 Kubernetes 资源(如 Pods、Services、ConfigMaps 等),用于为资源添加元数据。你可以使用 labels 对资源进行分组或标识,以方便管理和查询。labels 通常添加在 Pod 或其他资源的 metadata 部分,可以用于选择器(如 ServiceDeployment 等)来识别和选择对象。

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: m-statefulset
  labels:
    app: myapp
    role: database
spec:
  serviceName: "m-service"
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
        role: database

StatefulSet 和它创建的 Pods 都有 labels,这些标签可以用来识别哪些 Pod 属于这个 StatefulSet,或者哪些 Pods 承载了特定应用。matchLabels 定义了 app: myapp,因此这个 StatefulSet 会管理所有带有 app: myapp 标签的 Pods,template.metadata.labels 中的标签必须包含与 matchLabels 中指定的标签一致的键值对,确保 StatefulSet 创建的 Pods 符合它的选择器条件,labels:可以附加到任何资源上,用于标识和分组资源,可以包含任意键值对。

matchLabels:用来在选择器中指定必须匹配哪些 labels 的 Pods 才能被 StatefulSet 或其他控制器管理。它是 selector 的一部分,必须与 Pods 的 labels 一致,才能进行正确的匹配和管理。

matchLabels 是选择器的一部分,通常在 StatefulSetDeployment 中的 selector 字段里使用。它用来指定控制器(如 StatefulSet、Deployment 等)应该管理哪些 Pod。matchLabels 会根据 labels 的值来选择匹配的 Pods。它与 labels 紧密相关,通过在 matchLabels 中指定键值对,控制器(如 StatefulSet)可以自动找到那些有相同 labels 的 Pods,并进行管理。

service中的labels和matchlables

labels 是附加在 Service 元数据中的键值对,用于标识和分类 Service 对象。这些标签不直接影响流量的转发,而是用于帮助管理和组织 Kubernetes 集群中的 Service 对象。组织和管理: 通过标签可以对 Service 对象进行分类和筛选。例如,你可以给所有与特定应用相关的 Service 赋予相同的标签,以便于在集群中进行管理和查询。

apiVersion: v1
kind: Service
metadata:
  name: m-service
  labels:
    app: myapp
    tier: backend
spec:
  selector:
    app: myapp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

matchLabels 用于决定哪些 Pods 会接收 Service 的流量。它确保只有与 Service 选择器标签匹配的 Pods 会被选中。selector.matchLabels 指定了 Service 选择所有 labelsapp: myapp 的 Pods。

labels 是附加在 Service 对象上的,用于标识和分类 Service 本身。

matchLabelsService 的选择器的一部分,用于指定 Service 应该将流量转发到哪些 Pods。它与 Service 的选择条件相关联,并与目标 Pods 的 labels 匹配。

联系

如果 Deployment 没有配置 labelsService 将无法通过 selector 匹配到相应的
Pods。在 Kubernetes 中,Service 使用 selector 来选择它要路由流量的 Pods。如果
Deployment 或其下的 Pods 没有相应的 labels,则 Service 无法将流量路由到这些 Pods

标签:matchlables,Service,app,labels,matchLabels,StatefulSet,lables,k8s,Pods
From: https://blog.csdn.net/sozee910/article/details/142176176

相关文章

  • k8s用StatefulSet部署redis
    redis-config.yaml (配置文件)apiVersion:v1kind:ConfigMapmetadata:name:redis-configdata:redis.conf:|#Redisgeneralconfiguration​bind0.0.0.0​protected-modeno​port6379​dir/data​appendonlyyessentinel......
  • K8S入门学习(三):Kubeadm安装K8S集群(单主)
    一、系统相关配置1.1、系统基础配置相关1、配置静态IP地址(注意各节点地址)[root@localhost~]#cd/etc/sysconfig/network-scripts/[root@localhost~]#cpifcfg-ens33ifcfg-ens33.bak[root@localhost~]#vimifcfg-ens33BOOTPROTO="static"#更改等号后面为......
  • k8s之ingress
    Service&IngressService基于iptables或ipvs实现的四层负载均衡机制不支持基于URL等机制对HTTP/HTIPS协议进行高级路由、超时/重试、基于流量的灰度等高级流量治理机制难以将多个Seryice流量统一管理Ingress由IngressAPI和IngressController共同组成前者负责以k8s......
  • 部署K8S集群(五):配置文件之Pod配置文件
    ●Pod是Kubernets中的基本执行单位,可以包含一个或多个容器。●Pod提供了容器间的网络和存储共享。apiVersion:v1kind:Podmetadata:name:my-podlabels:app:my-appspec:containers:#容器1:web页面#容器名称-name:web-container#容器......
  • k8s dashboard token 生成/获取
    创建示例用户在本指南中,我们将了解如何使用Kubernetes的服务帐户机制创建新用户、授予该用户管理员权限并使用与该用户绑定的承载令牌登录仪表板。对于以下每个和的代码片段ServiceAccount,ClusterRoleBinding您都应该将它们复制到新的清单文件(如)中,dashboard-adminuser.yaml并......
  • 结合GPT使用k8s部署awx-oprator
    这个错误表明你尝试添加的Helm仓库URL无法访问,或者index.yaml文件不存在,可能是AWXOperator的Helm仓库已经变更或不再支持这个URL。根据AWXOperator项目的最新文档,它不再使用Helm作为主要的安装方式,而是通过直接应用Kubernetes自定义资源(CRD)和Operator来安装......
  • k8s环境搭建
    1.创建主机,设置ip,hostname,firewalldselinux,Netmanage2.设置主机之间的ssh免密3.三个节点yum源配置1.docker2.k8s3.清空以及创建缓存yumcleanall&&yummakecache4.四个源镜像aliyun,epel,kubernetes,docker-ce4.三个节点主机映射5.三个节点安装常......
  • k8s如何部署服务
    在Kubernetes中,配置文件通常以YAML格式编写,用于定义各种资源,如Deployments、Services、Pods等。以下是一个简单的示例,展示了如何编写一个Deployment和一个Service的配置文件。1.Deployment配置文件deployment.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:my-......
  • 使用kube-prometheus部署k8s监控---超详细(Kubernetes Deployment of Kubernetes Moni
    ......
  • k8s--实战入门
    NamespaceNamespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的n......