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

相关推荐
云游牧者2 小时前
K8S-HPA自动扩缩容实战指南
云原生·容器·kubernetes·hpa·弹性伸缩·hpv
念恒123062 小时前
Docker(容器技术发展史)
docker·容器
成为你的宁宁2 小时前
【K8S存储管理:PV/PVC动态供应及NFS动态供给实战】
云原生·容器·kubernetes
容器魔方2 小时前
“驾驭工程”下一跳?JiuwenClaw AgentTeam开启“协同工程”全新范式
人工智能·云原生·容器·架构·开源
YuanDaima20482 小时前
Docker 核心架构与底层技术原理解析
运维·人工智能·docker·微服务·容器·架构·个人开发
liux35282 小时前
Kubernetes v1.27.16 部署 Prometheus + Grafana + Alertmanager 监控体系
kubernetes
sbjdhjd3 小时前
02(上)| K8s 资源管理全流程:命令、配置、生产避坑
linux·运维·云原生·kubernetes·云计算·podman·kubelet
零壹AI实验室3 小时前
云原生微服务踩坑记:187个服务降到23个,故障率降低90%
微服务·云原生·架构
珂玥c4 小时前
k8s集群切换master
云原生·容器·kubernetes