当前位置:首页 > 其他 > 正文内容

k8s~关于十分烦琐的标签和选择器

邻居的猫1个月前 (12-09)其他437

总感觉k8s中界说的deplyment和service十分的烦琐,尤其是在挑选器的界说上,但没办法,它的规划总有它的道理。

  • svc(spec.selector.app)
    • deployment(metadata.labels.app,spec.selector.matchLabels.app)
      • pods(metadata.labels.app)

nginx的布置

下面是一个 Kubernetes YAML 文件示例,用于布置一个 Nginx 服务。该文件包含 Deployment 和 Service 的界说,Service 类型设置为 ClusterIP。

Nginx 布置 YAML 示例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1  # 设置副本数为 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:stable-alpine  # 运用最新的 Nginx 镜像
        ports:
        - containerPort: 80   # 容器内部的端口
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: ClusterIP  # 运用 ClusterIP 类型
  selector:
    app: nginx  # 依据标签挑选 Pod
  ports:
    - port: 80          # Service 的端口
      targetPort: 80    # 转发到容器的端口

阐明

  • Deployment

    • apiVersion: apps/v1:指定 API 版别。
    • kind: Deployment:表明这是一个 Deployment 方针。
    • metadata:包含方针的元数据,如称号和标签。
    • spec:界说 Deployment 的规范,包含副本数量、挑选器和 Pod 模板。
    • replicas:设置运转的 Pod 副本数量。
    • selector:用于挑选与 Deployment 相关的 Pods。
    • template:界说 Pod 的模板,包含元数据和容器规范。
    • containers:界说容器的称号、镜像和要露出的端口。
  • Service

    • apiVersion: v1:指定 API 版别。
    • kind: Service:表明这是一个 Service 方针。
    • metadata:包含方针的元数据,如称号。
    • spec:界说 Service 的规范,包含类型、挑选器和端口装备。
    • type: ClusterIP:指定 Service 类型为 ClusterIP,表明只在集群内部可拜访。
    • selector:依据标签挑选与之相关的 Pods。
    • ports:界说 Service 的端口和方针端口。

布置过程

  1. 将上述 YAML 内容保存到一个文件中,例如 nginx-deployment.yaml

  2. 运用以下指令在 Kubernetes 集群中运用该装备:

    kubectl apply -f nginx-deployment.yaml
    
  3. 查看 Deployment 和 Service 是否成功创立:

    kubectl get deployments
    kubectl get services
    

经过以上过程,你将能够在 Kubernetes 中成功布置一个 Nginx 服务,并经过 ClusterIP 类型的 Service 来拜访它。假如你有其他问题或需求进一步的协助,请随时告诉我!

关于特别烦琐的labels的解说

在 Kubernetes 中,Deployment 的界说中的确存在多个当地运用了相同的标签(如 metadata.labels.app=nginx),这有其特定的意图和含义。下面是对这些标签的具体解说及其意图:

1. Metadata Labels

  • 方位:在 metadata 部分。
  • 效果
    • 用于为 Deployment 方针自身打标签,这些标签能够用于标识、挑选或安排 Kubernetes 方针。
    • 能够经过这些标签来查询和过滤 Deployment 方针,例如运用 kubectl get deployments -l app=nginx 来列出一切带有 app=nginx 标签的 Deployments。
    • 在service界说时,它的spec.selector.app会指向被相关的deployment的.metadata.labels.app的姓名

2. Spec Selector

  • 方位:在 spec.selector 部分。
  • 效果
    • 界说了该 Deployment 控制器所办理的 Pods 的挑选规范。
    • Kubernetes 运用此挑选器来确认哪些 Pods 是由这个 Deployment 创立和办理的。
    • 挑选器中的标签有必要与 Pods 的标签匹配,以保证 Deployment 能够正确地找到和办理这些 Pods。

3. Template Metadata Labels

  • 方位:在 template.metadata.labels 部分。
  • 效果
    • 界说即将创立的 Pods 的标签。
    • 当 Deployment 创立 Pods 时,这些标签会被附加到新创立的 Pods 上。
    • 这些标签用于与 spec.selector 中界说的挑选器进行匹配,从而使 Deployment 能够盯梢并办理这些 Pods。

为什么要重复界说?

  1. 一致性

    • Deployment 的不同部分运用相同的标签保证了它们之间的一致性。这种一致性关于 Kubernetes 的操作至关重要,因为它依赖于这些标签来办理方针。
  2. 可办理性

    • 经过运用相同的标签,能够更方便地进行挑选和办理。例如,你能够快速找到一切与特定运用程序(如 nginx)相关的 Deployments、Pods 和 Services。
  3. 防止过错

    • 保证 Pods 的标签与 Deployment 的挑选器相匹配,能够防止因为标签不一致导致的办理问题。假如挑选器未能正确匹配 Pods,Deployment 将无法办理这些 Pods。

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=657

标签: kubernetes
分享给朋友:

“k8s~关于十分烦琐的标签和选择器” 的相关文章

读数据维护:作业负载的可恢复性08去重技能(下)

读数据维护:作业负载的可恢复性08去重技能(下)

1. 方针去重技能 1.1. 方针去重(也叫方针端的去重)体系是在接到备份之后删去其间重复数据的去重体系 1.2. 一般在某个设备里边运转,该设备是一切备份的方针设备,因而,这样的去重体系叫作方针去重体系 1.2.1. 一般经过NFS或SMB与备份软件相连,但是也能够作为VTL(Virtual...

10、Git之国内项目保管渠道(Gitee码云)

10、Git之国内项目保管渠道(Gitee码云)

10.1、简介 众所周知,GitHub 服务器在国外,假如网络欠好的话,严重影响运用体会,甚至会呈现登录不上的状况。 针对这个状况,能够运用国内的项目保管渠道—— Gitee 码云,来代替 Github 这个国外的项目保管渠道。 Gitee 码云是开源我国推出的根据 Git 的代码保管服务中心,网址...

Astro v5 x DevNow

Astro v5 x DevNow

先介绍下 DevNow DevNow Github 体会网站 DevNow 是一个精简的开源技能博客项目模版,支撑 Vercel 一键布置,支撑谈论、查找等功能,欢迎我们体会。一起也支撑 Follow、 RSS 订阅,欢迎我们订阅。 现在承载着: 我的Blog:一些相关的技能文章和个人日子记载。 W...

数证杯2024-网络流量剖析

数证杯2024-网络流量剖析

数证杯2024-网络流量剖析 学习:2024数证杯初赛 - WXjzc - 博客园 1. [填空题]剖析网络流量包检材,写出抓取该流量包时所花费的秒数?(填写数字,答案格局:10) (2分) 思路: 计算 --> 捕获文件特点 ​​ 答案:3504 2. [填空题]剖析网络流量包检材,抓取该...

联盟区块链,构建高效、安全的去中心化网络

联盟区块链,构建高效、安全的去中心化网络

联盟区块链(Consortium Blockchain)是一种由多个机构共同参与管理的区块链,它结合了公有链和私有链的特点,具有部分去中心化、可控性、数据不公开和交易速度快的特点。以下是联盟区块链的主要特点和应用场n2. 隐私性强:联盟链的数据和交易仅对联盟成员开放,外部用户无法访问,从而保护了数...

云计算工程师工资多少,云计算工程师工资概览

云计算工程师工资多少,云计算工程师工资概览

1. 全国平均薪资: 全国云计算工程师的平均月工资为16.6k。2. 按工作经验划分: 应届生:9.2k。 13年经验:12.3k。 35年经验:18.1k。 510年经验:22.7k。 10年以上经验:30.9k。3. 不同岗位的薪资: 云计算售前工程师:...