zoukankan      html  css  js  c++  java
  • 【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 可以指定路径对应的服务,并且可以将路径进行截取后转发。

    附录

  • 相关阅读:
    Redis单实例数据迁移到集群
    使用IDEA快速搭建基于Maven的SpringBoot项目(集成使用Redis)
    Linux下Mysql每天自动备份
    java调用webservice
    springmvc后台生成验证码
    Zabbix 监控端口状态并邮件报警
    Zabbix 通过smtp 邮件报警
    Zabbix安装(server和agent)及基本配置
    Spark之 Spark Streaming整合kafka(Java实现版本)
    openlayer 5 获取中心点
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14827904.html
Copyright © 2011-2022 走看看