k8s 常用的正则表达式

参考大佬:https://blog.csdn.net/remix_xy/article/details/127001584

示例 - ingress

复制代码
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    emr-vke/ray-cluster-uuid: 221167282729208548-emr-4yw63nfsim3u4ruc1oim-rayjob-sample-raycluster-b5x8f
    emr/role: JOB
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    ray.io/enable-ray-history-server: "true"
  creationTimestamp: "2026-05-15T08:11:57Z"
  generation: 1
  labels:
    app.kubernetes.io/created-by: kuberay-operator
    app.kubernetes.io/name: kuberay
    ray.io/cluster: rayjob-sample-raycluster-b5x8f
    ray.io/identifier: rayjob-sample-raycluster-b5x8f-head
  name: rayjob-sample-raycluster-b5x8f-head-ingress
  namespace: emr-4yw63nfsim3u4ruc1oim-ray
  ownerReferences:
  - apiVersion: ray.io/v1
    blockOwnerDeletion: true
    controller: true
    kind: RayCluster
    name: rayjob-sample-raycluster-b5x8f
    uid: 75e96b29-689a-40b3-8a38-281712e3a123
  resourceVersion: "3967321"
  uid: a083035f-0e6f-446d-9ba5-de1b4d6c405a
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - backend:
          service:
            name: rayjob-sample-raycluster-b5x8f-head-svc
            port:
              number: 8265
        path: /rayjob-sample-raycluster-b5x8f/(.*)
        pathType: Exact
status:
  loadBalancer:
    ingress:
    - ip: 118.196.47.109

解释

1. (.*)

(.*) 是一个正则表达式,配合 nginx ingress 的 rewrite(重写) 功能使用。

拆开看:

• . 表示任意一个字符

• * 表示前面的字符出现 0 次或多次

• () 表示捕获分组,把匹配到的内容"抓出来",可以在后面引用

所以 (.*) 的意思是:匹配任意长度的任意字符,并把它捕获下来。

2. annotations

结合annotations一起看

annotations:

nginx.ingress.kubernetes.io/rewrite-target: /$1

...

path: /rayjob-sample-raycluster-b5x8f/(.*)

工作流程:

  1. 用户访问:http://118.196.47.109/rayjob-sample-raycluster-b5x8f/api/jobs

  2. nginx 用正则 /rayjob-sample-raycluster-b5x8f/(.*) 去匹配路径

  3. (.*) 捕获到的内容是:api/jobs → 这就是 $1

  4. rewrite-target: /$1 告诉 nginx 把请求重写成 /api/jobs

  5. 最后转发给后端 Service(Ray dashboard)的就是 /api/jobs

相关推荐
云川之下16 小时前
【k8s】NAD(NetworkAttachmentDefinition)与SR‑IOV‑Operator 关系
云原生·容器·kubernetes
ZzzZZzzzZZZzzzz…19 小时前
K8S实战:NFS+StorageClass+PV/PVC+Deployment
运维·云原生·容器·kubernetes·storageclass·linux运维·持久卷
三言老师19 小时前
CentOS7.9 + Kubernetes 1.18.20 -清理所有 docker / containerd 残留
docker·容器·kubernetes
circuitsosk19 小时前
从Docker到Kubernetes:AI应用服务化与弹性伸缩的落地实践
人工智能·docker·kubernetes·ai应用部署
AAA@峥20 小时前
K8s 配置管理实战:ConfigMap 与 Secret 完整使用指南
kubernetes·云计算
showyoui20 小时前
K8s 集群迁移踩坑:Istio 升级后 nginx 403
网络·docker·kubernetes·istio·service_mesh
海兰21 小时前
云原生持续交付平台 Zadig 在 Ubuntu 24.04 上的部署及使用指南
linux·ubuntu·云原生
云川之下1 天前
【k8s】sriov‑device‑plugin、sriov‑network‑config‑daemon详解
云原生·容器·kubernetes
张忠琳2 天前
【NPU】Ascend Device Plugin —Part 6 K8s客户端 + 重复检测模块 超深度源码分析之二
云原生·容器·kubernetes·npu·docker device
雨声不在2 天前
私有 Docker Registry 排障实录:两个隐蔽的坑
docker·容器