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

相关推荐
阿里云云原生9 分钟前
实验:回测、离线实验平台与题目级 Rubric丨AgentLoop 数据飞轮实践(四)
云原生·agent
java_logo2 小时前
Docker 部署 HertzBeat:轻松搭建无代理实时监控与告警平台
运维·docker·容器·监控告警·部署教程·hertzbeat·轩辕镜像
子建莫敌3 小时前
Docker 速查手册
docker·容器
独码侠3 小时前
第02篇·30 分钟跑通 Dify:Docker 一键部署,5 步上线首个 AI 应用
人工智能·docker·容器·dify
纪伊路上盛名在4 小时前
了解一点Docker
java·docker·容器
刘某的Cloud4 小时前
k8s部署prometheus架构规则
linux·运维·kubernetes·prometheus·监控
Ningcode_cloud4 小时前
什么是CICD? GitLab + Jenkins 持续集成实战部署手册
运维·ci/cd·云原生·容器·gitlab·jenkins
Csxyzj5 小时前
基于Linux+Docker NAT的Ollama多实例负载均衡部署
运维·docker·容器
瞬间&永恒~6 小时前
【Kubernetes】(十五)维护与升级、ETCD 备份和恢复
linux·运维·docker·云原生·kubernetes
小小程序员.¥6 小时前
docker基础
云原生·eureka