k8s学习(十八)使用traefik代理多个服务


一、创建服务

(1)前端服务

将前端项目打成镜像,创建服务,我这里访问前端服务是

http://172.16.10.158:32666/view/index.html
http://172.16.10.158:32667/view2/index.html

(2)查看创建的服务

[root@k8s-master cpaas-manager]# kubectl get svc
NAME                         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
app-service-01               NodePort    10.101.13.205    <none>        80:32666/TCP   12m
app-service-02               NodePort    10.104.215.15    <none>        80:32667/TCP   4s

二、创建IngressRoute

(1)app-ingressroute.yaml

[root@k8s-master 2]# cat app-ingressroute.yaml
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: app-route
  annotations:
    kubernetes.io/ingress.class: traefik-v2.5
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`www.iscas.com`) && PathPrefix(`/view`)
    kind: Rule
    services:
    - name: app-service-01
      port: 80
  - match: Host(`www.iscas.com`) && PathPrefix(`/view2`)
    kind: Rule
    services:
    - name: app-service-02
      port: 80

(2)创建

[root@k8s-master 2]# kubectl create -f app-ingressroute.yaml
ingressroute.traefik.containo.us/app-route created

(3)配置ip域名

172.16.10.158   www.iscas.com

(4)访问服务

http://www.iscas.com/view/index.html
http://www.iscas.com/view2/index.html

三、使用Middleware

Traefik Middlewares 中间件是用于流量进入 Traefik 且通过定义的路由规则后,转发到对应后端服务前,在这期间对该流量进行加工的操作,它支持:

    重试、压缩、缓冲、断路器
    header 管理、错误页、中间件链
    服务限流、同一主机并发请求限制
    基本认证、IP 白名单、摘要认证、转发鉴权验证
    regex 请求重定向、scheme 请求重定向、请求 URL 替换、regex 请求 URL 替换、删除 URL 前缀、regex 删除 URL 前缀、添加 URL 前缀

这里简单使用去除请求路径前缀中间件

(1)app-middleware.yaml

[root@k8s-master 2]# cat app-middleware.yaml
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: app-middleware   ##设置中间件名称,要和路由规则中的名称一致
spec:
  stripPrefix:
    prefixes:
      - /front-01        ##设置要去除的前缀

(2)创建

[root@k8s-master 2]# kubectl create -f app-middleware.yaml
middleware.traefik.containo.us/app-middleware created

(3)修改 app-ingressroute.yaml

[root@k8s-master 2]# cat app-ingressroute.yaml
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: app-route
  annotations:
    kubernetes.io/ingress.class: traefik-v2.5
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`www.iscas.com`) && PathPrefix(`/front-01`)  ## 修改路径
    kind: Rule
    services:
    - name: app-service-01
      port: 80
    middlewares:
    - name: app-middleware       ##指定使用的中间件
  - match: Host(`www.iscas.com`) && PathPrefix(`/view2`)
    kind: Rule
    services:
    - name: app-service-02
      port: 80

(4)创建

[root@k8s-master 2]# kubectl create -f app-ingressroute.yaml
ingressroute.traefik.containo.us/app-route created

(5)访问服务

第一个服务的访问方式变成了

http://www.iscas.com/front-01/view/index.html
Traefik是一个基于Kubernetes的Ingress控制器,用于在Kubernetes集群中处理入站网络流量。您可以通过在Kubernetes集群中使用Traefik来实现负载均衡、路由和HTTPS等功能。 要在Kubernetes使用Traefik,您可以按照以下步骤进行操作: 1. 首先,您需要添加Traefik的Helm chart仓库到您的Kubernetes集群中。您可以使用以下命令将Traefik的Helm chart仓库添加到Helm中: ``` helm repo add traefik https://helm.traefik.io/traefik ``` 2. 然后,您可以使用Helm来安装Traefik。您可以使用以下命令来安装Traefik: ``` helm install traefik traefik/traefik ``` 3. 安装完成后,Traefik将会被部署到您的Kubernetes集群中。您可以使用以下命令来验证Traefik的部署状态: ``` kubectl get pods -n <namespace> ``` 4. 一旦Traefik部署成功,您可以通过创建Ingress资源来配置Traefik的行为。您可以使用以下命令创建一个简单的Ingress资源: ``` apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress spec: rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: example-service port: number: 80 ``` 在这个示例中,Traefik将会将来自example.com的流量路由到名为example-service的后端服务。 5. 您还可以使用Traefik提供的其他功能,如TLS证书管理和动态配置等。您可以参考Traefik官方文档以了解更多详细的配置选项和用法。 总结起来,要在Kubernetes使用Traefik,您需要添加Traefik的Helm chart仓库,并使用Helm来安装Traefik。然后,您可以通过创建Ingress资源来配置Traefik的行为,实现负载均衡和路由等功能。记得查看官方文档以获取更多使用Traefik的详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_lrs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值