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

相关推荐
空空dream4 小时前
03 | 离线部署 FastAPI + Ollama(qwen2:0.5b):从 Docker 联调到 Kubernetes 验收
docker·ai·kubernetes·fastapi
Linux实战笔记7 小时前
K8s 滚动部署失效?maxUnavailable 参数没搞透
kubernetes·readinessprobe·零停机·滚动部署·maxunavailable
郭老二7 小时前
【docker】docker compose使用,已nginx为例
nginx·docker·容器
张洛闻Eren8 小时前
Ansible【第一课】:Ansible介绍
运维·数据库·云原生·kubernetes·github·ansible
a5986529 小时前
Docker云手机端口不通,无法访问|六边云手机教你故障排查完整流程
docker·容器·性能优化·云手机
杰克尼10 小时前
Kubernetes
云原生·容器·kubernetes
码上上班10 小时前
基于 K3s 的微服务容器化与 GitOps 持续交付平台
微服务·云原生·架构
ab12376810 小时前
Docker Compose 完整详解
运维·docker·容器
吴声子夜歌10 小时前
Docker入门与实战——容器实战思考
docker·容器
张洛闻Eren10 小时前
Ansible【第二课】:实施 Ansible Playbook
linux·运维·服务器·云原生·kubernetes·k8s·ansible