当前位置: 首页 > wzjs >正文

为什么原网站建设公司不愿意透露域名管理权限给客户旅游网站开发背景意义

为什么原网站建设公司不愿意透露域名管理权限给客户,旅游网站开发背景意义,培训营销型网站建设,网站设计高端一. Label 和 Selector 的核心概念 Label 和 Selector 是 Kubernetes 中实现灵活资源管理的基石,贯穿部署、服务发现、监控等核心场景。通过合理设计标签,用户可以高效实现自动化运维与精准资源控制。 Label(标签): K…

一. Label 和 Selector 的核心概念

Label 和 Selector 是 Kubernetes 中实现灵活资源管理的基石,贯穿部署、服务发现、监控等核心场景。通过合理设计标签,用户可以高效实现自动化运维与精准资源控制。

  • Label(标签)
    Kubernetes 中的 Label 是附加到资源(如 Pod、Service、Deployment 等)上的键值对(Key-Value),用于标识资源的特性或属性。

    • 示例:env=prodapp=frontendversion=v1

  • Selector(选择器)
    Selector 是一种筛选机制,通过匹配 Label 来选择满足条件的资源。它是资源之间建立关联的核心工具。


二. 核心作用

  1. 资源分类与分组
    通过 Label 将资源按业务、环境、版本等维度分组,便于批量操作。

  2. 资源关联
    定义资源间的依赖关系(例如 Service 通过 Selector 关联 Pod)。

  3. 自动化管理
    结合控制器(如 Deployment、StatefulSet)实现动态扩缩容、滚动更新等操作。


三. 典型应用场景与示例

场景 1:部署管理(Deployment)

  • 需求:为不同版本的 Pod 打标签,实现滚动更新或回滚。

  • 示例

    apiVersion: apps/v1
    kind: Deployment
    metadata:name: frontend
    spec:selector:matchLabels:app: frontend  # Selector 匹配 Pod 的 Labeltemplate:metadata:labels:app: frontendversion: v1  # 标识当前 Pod 版本spec:containers:- name: nginximage: nginx:1.18
    • 当更新到 version: v2 时,Deployment 会根据 Selector 选择新版 Pod 替换旧版。


场景 2:服务发现(Service)

  • 需求:Service 通过 Selector 动态关联后端 Pod。

  • 示例

    apiVersion: v1
    kind: Service
    metadata:name: frontend-service
    spec:selector:app: frontend  # 匹配所有包含此 Label 的 Podenv: prodports:- protocol: TCPport: 80targetPort: 80
    • Service 会将流量路由到所有包含 app: frontend 和 env: prod 的 Pod。


场景 3:环境隔离(开发/生产)

  • 需求:区分不同环境的资源(如开发、测试、生产)。

  • 示例

    • 为 Pod 打标签:

      metadata:labels:env: dev   # 开发环境team: data-team
    • 使用命令筛选资源:

      kubectl get pods -l env=dev,team=data-team

场景 4:金丝雀发布(Canary Release)

  • 需求:逐步将流量切换到新版本,降低风险。

  • 示例

    1. 部署 90% 的旧版本 Pod(version: v1)和 10% 的新版本 Pod(version: v2)。

    2. Service 使用通用 Selector(如 app: frontend)同时路由到新旧 Pod。

    3. 通过 Ingress 或服务网格(如 Istio)按比例分配流量。


场景 5:资源分组与操作

  • 需求:批量操作符合特定条件的资源。

  • 示例

    # 删除所有标记为 "临时测试" 的 Pod
    kubectl delete pods -l usage=temporary-test# 查看所有生产环境的 Deployment
    kubectl get deployments -l env=prod

场景 6:监控与日志收集

  • 需求:为 Prometheus 或 Fluentd 配置抓取规则,仅收集特定 Pod 的指标或日志。

  • 示例(Prometheus 配置):

    scrape_configs:- job_name: 'frontend-monitoring'kubernetes_sd_configs:- role: podrelabel_configs:- source_labels: [__meta_kubernetes_pod_label_app]action: keepregex: frontend  # 仅监控包含 app=frontend 的 Pod

四. 最佳实践

4.1 标签命名规范

使用明确的键名,如 appenvversion、tier,避免歧义。

示例:app=order-service 而非 service=order

4.2 避免过度标签


仅添加对资源管理有实际意义的标签,避免冗余。

4.3 选择器匹配原则

  • 精确匹配:matchLabels: { app: frontend }

  • 模糊匹配:matchExpressions: { key: tier, operator: In, values: [web] }

五.Label和Selector练习

        Welcome to the KodeKloud Hands-On lab                                                                          __ ______  ____  ________ __ __    ____  __  ______ / //_/ __ \/ __ \/ ____/ //_// /   / __ \/ / / / __ \/ ,< / / / / / / / __/ / ,<  / /   / / / / / / / / / // /| / /_/ / /_/ / /___/ /| |/ /___/ /_/ / /_/ / /_/ / 
/_/ |_\____/_____/_____/_/ |_/_____/\____/\____/_____/  All rights reserved                                                                                        controlplane ~ ➜  kubectl get pods --selector env=dev
NAME          READY   STATUS    RESTARTS   AGE
app-1-5jqlk   1/1     Running   0          41s
app-1-f2wn5   1/1     Running   0          41s
app-1-rj24d   1/1     Running   0          41s
db-1-bvzwj    1/1     Running   0          41s
db-1-qrmv5    1/1     Running   0          41s
db-1-rpj9v    1/1     Running   0          41s
db-1-w8hdg    1/1     Running   0          40scontrolplane ~ ➜  kubectl get pods --selector env=dev --no-headers | wc -l
7controlplane ~ ➜  kubectl get pods --selector bu=finance
NAME          READY   STATUS    RESTARTS   AGE
app-1-5jqlk   1/1     Running   0          2m55s
app-1-f2wn5   1/1     Running   0          2m55s
app-1-rj24d   1/1     Running   0          2m55s
app-1-zzxdf   1/1     Running   0          2m54s
auth          1/1     Running   0          2m54s
db-2-5qqhh    1/1     Running   0          2m54scontrolplane ~ ➜  kubectl get pods --selector bu=finance --no-headers | wc -l
6controlplane ~ ➜  kubectl get all --selector env=prod
NAME              READY   STATUS    RESTARTS   AGE
pod/app-1-zzxdf   1/1     Running   0          4m6s
pod/app-2-gcj9n   1/1     Running   0          4m7s
pod/auth          1/1     Running   0          4m6s
pod/db-2-5qqhh    1/1     Running   0          4m6sNAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/app-1   ClusterIP   10.43.211.253   <none>        3306/TCP   4m6sNAME                    DESIRED   CURRENT   READY   AGE
replicaset.apps/app-2   1         1         1       4m7s
replicaset.apps/db-2    1         1         1       4m7scontrolplane ~ ➜  kubectl get all --selector env=prod --no-headers | wc -l
7controlplane ~ ➜  kubectl get all --selector env=prod bu=finance tier=frontend
error: name cannot be provided when a selector is specifiedcontrolplane ~ ✖ kubectl get all --selector env=prod,bu=finance,tier=frontend
NAME              READY   STATUS    RESTARTS   AGE
pod/app-1-zzxdf   1/1     Running   0          5m5scontrolplane ~ ➜  cat replicaset-definition-1.yaml 
apiVersion: apps/v1
kind: ReplicaSet
metadata:name: replicaset-1
spec:replicas: 2selector:matchLabels:tier: front-endtemplate:metadata:labels:tier: nginxspec:containers:- name: nginximage: nginxcontrolplane ~ ➜  kubectl create -f replicaset-definition-1.yaml 
The ReplicaSet "replicaset-1" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"tier":"nginx"}: `selector` does not match template `labels`controlplane ~ ✖ vim replicaset-definition-1.yaml controlplane ~ ➜  kubectl create -f replicaset-definition-1.yaml 
replicaset.apps/replicaset-1 createdcontrolplane ~ ➜  kubectl get replicaset replicaset-1 
NAME           DESIRED   CURRENT   READY   AGE
replicaset-1   2         2         2       24scontrolplane ~ ➜  cat replicaset-definition-1.yaml 
apiVersion: apps/v1
kind: ReplicaSet
metadata:name: replicaset-1
spec:replicas: 2selector:matchLabels:tier: nginxtemplate:metadata:labels:tier: nginxspec:containers:- name: nginximage: nginxcontrolplane ~ ➜  echo "Powered by Moshow@https://zhengkai.blog.csdn.net/"

六、附加:表达式匹配(matchExpressions Matching)

通过 matchExpressions 实现,支持更复杂的逻辑操作符(InNotInExistsDoesNotExist)。

1. In 操作符

匹配标签值在指定列表中的资源。

示例:匹配 tier 为 web 或 cache 的 Pod
selector:matchExpressions:- key: tieroperator: Invalues: [web, cache]  # tier=web 或 tier=cache
使用场景
  • 多选一逻辑(如区分服务层级)。


2. NotIn 操作符

匹配标签值 不在 指定列表中的资源。

示例:排除 env 为 test 或 dev 的 Pod
selector:matchExpressions:- key: envoperator: NotInvalues: [test, dev]  # env≠test 且 env≠dev
使用场景
  • 排除特定环境或版本。


3. Exists 操作符

匹配 包含指定键(不关心值)的资源。

示例:匹配所有打了 tier 标签的 Pod
selector:matchExpressions:- key: tieroperator: Exists  # 只要存在 tier 键,无论值是什么
使用场景
  • 筛选具有某种属性的资源(如监控所有打了 monitor: true 的 Pod)。


4. DoesNotExist 操作符

匹配 不包含指定键 的资源。

示例:匹配未打 debug 标签的 Pod
selector:matchExpressions:- key: debugoperator: DoesNotExist  # 不能存在 debug 标签
使用场景
  • 排除调试或临时资源。


5、混合匹配(组合 matchLabels 和 matchExpressions

可以同时使用两种方式,最终结果为逻辑 AND 关系。

示例:匹配 app=frontend 且 env 不是 test 的 Pod
selector:matchLabels:app: frontendmatchExpressions:- key: envoperator: NotInvalues: [test]
使用场景
  • 复杂条件筛选(如生产环境的特定版本)。


6、Kubectl 命令行中的 Selector

在 kubectl 中通过 -l 参数使用 Selector,语法与 YAML 类似。

常用命令示例

命令作用
kubectl get pods -l app=frontend精确匹配 app=frontend
kubectl get pods -l 'env in (prod, staging)'匹配 env=prod 或 env=staging
kubectl get pods -l '!debug'排除含 debug 标签的 Pod

7.使用场景总结

匹配方法典型场景
matchLabels简单分类(服务名、环境)
matchExpressions复杂逻辑(排除、多选一、键存在性检查)
混合匹配多维度精细控制(如生产环境+特定版本)

文章转载自:

http://PWqq0PRr.yszrk.cn
http://a9gmqxDi.yszrk.cn
http://oLriUb36.yszrk.cn
http://63WWWrXb.yszrk.cn
http://GeH4QKa9.yszrk.cn
http://Ciln35m7.yszrk.cn
http://NB5XMMiw.yszrk.cn
http://cXpRHhsL.yszrk.cn
http://eEDIFTx0.yszrk.cn
http://78tpgxvq.yszrk.cn
http://aWSnCIKJ.yszrk.cn
http://6aD6fQXq.yszrk.cn
http://85GTiknz.yszrk.cn
http://OdGoe4tK.yszrk.cn
http://EzTbFMdV.yszrk.cn
http://DsHUpG7D.yszrk.cn
http://OQnpJ1CB.yszrk.cn
http://afnjsBJ7.yszrk.cn
http://rKq3DfpL.yszrk.cn
http://5BftU6QN.yszrk.cn
http://nDimHGP5.yszrk.cn
http://72N0BWeu.yszrk.cn
http://6zRLIpPz.yszrk.cn
http://6o6tpScQ.yszrk.cn
http://2Fp17hBS.yszrk.cn
http://65aCzzIo.yszrk.cn
http://Vz988o4Z.yszrk.cn
http://GctXaLPD.yszrk.cn
http://1JFnntRR.yszrk.cn
http://NrOe0JdJ.yszrk.cn
http://www.dtcms.com/wzjs/735122.html

相关文章:

  • 佛山网站开发公司电话网站开发制作报价
  • 做网站用discuz还是wp个人网站 摄影展示
  • 物流建设网站总结公司图标设计大全免费
  • html的制作网站的优点义乌1688网站网页设计
  • 新竹自助建站系统my域名
  • 有个电商网站模板网站设计步骤大全
  • 做网站的接口是意思哈尔滨优质官网建站企业
  • 南阳网站排名优化公司高负载php网站开发
  • 记事本代码做网站网站建设服务费记账分录
  • 网站建设实训实训心得杭州西湖区网站建设
  • 锦州市网站建设绵阳建网站
  • 郑州专业做淘宝直播网站做图用哪个素材网站
  • 网站设计的主要内容个人简历word可编辑
  • 有人做家具网站中介吗接效果图做网站
  • 做网站对外贸有什么用微信做的地方门户网站
  • 上海网站建设网开什么网店简单又挣钱
  • 无锡网站营销推广网络工程师做什么的
  • 佛山建网站哪家好网络域名是什么
  • 网站制作 番禺ps网站建设教程视频
  • 企业网站 阿里云大连做网站哪里好
  • 河南网站关键词优化代理wordpress手机版侧栏导航条
  • 做视频网站需要哪些条件京东企业采购平台
  • 西部数码网站工具wordpress如何修改页脚
  • seo网站模版内蒙古兴安盟建设局网站
  • 监控设备网站制作公司做环评的网站
  • wordpress网站编辑深圳品牌营销策划机构
  • 磁力屋torrentkitty济南seo网站建站
  • 网站开发基本语言做网站找景安
  • wordpress 批量建站吴忠住房和城乡建设局网站
  • 门户网站集群建设公司logo免费生成器