istio的http访问https外部服务配置

一般情况是应用提供http服务,通过网关使用https方式访问,这个配置在istio官网上可以看到例子,但有些时候,我们却要反过来,要访问的应用本身是https的,但我们要通过网关提供http访问,这种方式可能有些违反常理,但如果给istio开发http filter时,就得使用这种场景了,在istio中,tls方式不支持http filter。

  1. 配置ServiceEntry

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: httpk8s-com
spec:
  hosts:
  - httpk8s.com
  ports:
  - number: 80
    name: http-port
    protocol: HTTP
    targetPort: 6443
  - number: 6443
    name: https-port
    protocol: HTTPS
  resolution: STATIC
  endpoints:
  - address: 192.168.18.3
  location: MESH_EXTERNAL
  1. 配置DestinationRule

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: httpk8s-com
spec:
  host: httpk8s.com
  trafficPolicy:
    portLevelSettings:
    - port:
        number: 80
      tls:
        mode: SIMPLE
  1. 配置Gateway

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: apiserver-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "httpk8s.com"
  1. 配置

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: apiserver-vs
spec:
  hosts:
  - "httpk8s.com"
  gateways:
  - apiserver-gateway
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: httpk8s.com
        port:
          number: 80

配置摘要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Istio中集成Spring Boot可以通过以下步骤进行: 1. 部署Istio:首先,确保已经成功安装并配置Istio。你可以按照Istio官方文档的指引来完成这一步骤。 2. 创建Spring Boot应用:使用你喜欢的方式创建一个基于Spring Boot的应用程序。确保应用程序能够正常运行,并且有一个可供外部访问的API或页面。 3. 创建Istio网关:为了将流量引入到Spring Boot应用程序,我们需要创建一个Istio网关。可以使用以下示例代码创建一个名为"my-gateway"的网关: ```yaml apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: my-gateway spec: selector: istio: ingressgateway servers: - port: number: 80 name: http protocol: HTTP hosts: - "*" ``` 4. 创建Istio虚拟服务:接下来,创建一个Istio虚拟服务,将流量路由到Spring Boot应用程序。可以使用以下示例代码创建一个名为"my-virtualservice"的虚拟服务: ```yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: my-virtualservice spec: hosts: - "*" gateways: - my-gateway http: - route: - destination: host: <your-spring-boot-service-name> # 替换为Spring Boot服务的Kubernetes服务名称 port: number: 8080 # 替换为Spring Boot服务的端口号 ``` 注意替换代码中的`<your-spring-boot-service-name>`和`<your-spring-boot-service-port>`为你的Spring Boot应用程序的实际值。 5. 应用配置:最后,将上述两个配置文件应用到Kubernetes集群中: ```bash kubectl apply -f my-gateway.yaml kubectl apply -f my-virtualservice.yaml ``` 这样,Istio就会将流量引导到你的Spring Boot应用程序中。 请确保你的Kubernetes集群已经正确配置,并且Istio和Spring Boot应用程序都已经成功部署。以上只是一个简单的示例,你可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值