• 【k8s】ing-rules-path


    环境

    1. kubernetes 1.20.6
    2. Spring Boot 2.5.0-M3

    目标

    rules 规则下的 path 可以设置路径,并且可以将不同的路径转换到不同的服务上,还可以截取部分路径进行转发。

    示例

    前提

    [root@master ~]# kubectl get deployments,pod,service
    NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/spring-k8s   1/1     1            1           10d
    
    NAME                              READY   STATUS    RESTARTS   AGE
    pod/spring-k8s-79f74b55d7-tjh7c   1/1     Running   2          10d
    
    NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
    service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   10d
    service/spring-k8s   ClusterIP   10.105.119.22   <none>        80/TCP    10d
    [root@master ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    

    ing.yaml

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: spring-k8s
      annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /$2
    spec:
      rules:
        - http:
            paths:
              - path: /test1(/|$)(.*)
                pathType: Prefix
                backend:
                  service:
                    name: spring-k8s
                    port:
                      number: 80
              - path: /test2(/|$)(.*)
                pathType: Prefix
                backend:
                  service:
                    name: spring-k8s
                    port:
                      number: 80
    

    查看

    [root@master ~]# kubectl describe ing spring-k8s
    Name:             spring-k8s
    Namespace:        default
    Address:          10.105.218.18
    Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
    Rules:
      Host        Path  Backends
      ----        ----  --------
      *
                  /test1(/|$)(.*)   spring-k8s:80 (10.244.2.20:8080)
                  /test2(/|$)(.*)   spring-k8s:80 (10.244.2.20:8080)
    Annotations:  nginx.ingress.kubernetes.io/rewrite-target: /$2
    Events:
      Type    Reason  Age                   From                      Message
      ----    ------  ----                  ----                      -------
      Normal  Sync    2m18s (x15 over 80m)  nginx-ingress-controller  Scheduled for sync
    

    访问测试

    [root@master ~]# curl spring.k8s.jiangbo:31136/test2/hostname;echo
    spring-k8s-79f74b55d7-tjh7c
    [root@master ~]# curl spring.k8s.jiangbo:31136/test1/hostname;echo
    spring-k8s-79f74b55d7-tjh7c
    

    总结

    path 可以指定路径对应的服务,并且可以将路径进行截取后转发。

    附录

  • 相关阅读:
    配置文件中文件重复
    大型网站技术架构02
    2018.12.26-12.30第一周毕设计划
    软件架构模式-分层架构II
    软件架构模式-分层架构
    echarts实现中国地图数据展示
    Python数据分析入门(一)——了解Python下的函数包
    Python学习笔记(二)
    Python学习笔记(一)
    Echarts的简单使用
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14827904.html
Copyright © 2020-2023  润新知