返回顶部
首页 > 资讯 > 后端开发 > Python >Istio v1aplha3 路由 AP
  • 593
分享到

Istio v1aplha3 路由 AP

路由IstioAP 2023-01-31 06:01:03 593人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

先来看看Nginx 的虚拟机配置 upstream test_app { server 127.0.0.1:5000; } server { listen 127.0.0.1:80;

先来看看Nginx虚拟机配置

upstream test_app { 
        server 127.0.0.1:5000;
    }
    server {
        listen  127.0.0.1:80;

        location / {
           proxy_pass Http://test_app; 
        }
    }
对于nginx的虚拟机配置,正常应该有下面三个东西
  • upstream : 指定代理后端应用服务地址
  • server : 配置指定主机,端口
  • location : 路由指定允许访问的url地址

Istio v1aplha3 路由 api 中的配置资源

Istio v1aplha3 路由 API

v1alpha3引入了以下这些新的配置资源来控制进入网格,网格内部和离开网格的流量路由。

  • Gateway
  • VirtualService
  • DestinationRule
  • ServiceEntry

    跨多个配置资源的控制流程。

Istio v1aplha3 路由 API

Gateway

Gateway 用于为 HTTP / tcp 流量配置负载均衡器, Gateway 只用于配置L4-L6功能(例如,对外公开的端口,TLS 配置)

 Gateway 类似Nginx中的server 配置

类似实例如下:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: bookinfo-gateway
spec:
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    hosts:
    - bookinfo.com
    tls:
      mode: SIMPLE
      serverCertificate: /tmp/tls.crt
      privateKey: /tmp/tls.key
  • spec.servers.port : 指定暴露对外的端口,协议(类似nginx的listen的端口)
  • spec.servers.tls : 指定ssl密钥
  • spec.servers.hosts: 指定暴露对外的hosts,域名或IP(类似nginx的listen的host)

VirtualService

VirtualService类似Nginx上面的location模块,当然是类似,不是一样,这样说真是方便理解。在 v1alph3,可以在单个 VirtualService 资源中提供相同的配置:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bookinfo
spec:
  hosts:
    - bookinfo.com
  gateways:
  - bookinfo-gateway # <---- bind to gateway
  http:
  - match:
    - uri:
        prefix: /reviews
    route:
    ...

上面的实例允许规则将外界对网关名称bookinfo-gateway的访问传递到代理服务bookinfo.com中。

DestinationRule

DestinationRule 类似nginx中的upstream字段功能,起到路由分配的作用:
  • DestinationRule 的 host 可以包含通配符前缀,以允许单个规则应用于多个服务。
  • DestinationRule 定义了目的 host 的子集 subsets (例如:命名版本)。 这些 subset 用于 VirtualService 的路由规则设置中,可以将流量导向服务的某些特定版本
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: reviews
spec:
  host: reviews
  trafficPolicy:
    loadBalancer:
      simple: RANDOM
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2
    trafficPolicy:
      loadBalancer:
        simple: ROUND_ROBIN
  - name: v3
    labels:
      version: v3

这个配置的策略是,默认随机负载均衡。同时reviews提供三个版本,v2使用自定义的负载均衡策略ROUND_ROBIN。

换成nginx的写法,大概类似:

upstream v1{
        server reviews:v1;
}

upstream v2{
    ROUND_ROBIN;
        server reviews:v2;
}

upstream v3{
        server reviews:v3;
}
上面的说法只是为了方便理解,不是原理就是这样。

ServiceEntry

ServiceEntry 用于将附加条目添加到 Istio 内部维护的服务注册表中。 它最常用于对访问网格外部依赖的流量进行建模。ServiceEntry的用途是用于配置Egre***ule规则。说人话就是,允许集群内部应用访问外部地址的策略,如果不配置,sidecar并不能识别外部url应该重定向到哪里。
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: foo-ext
spec:
  hosts:
  - foo.com
  ports:
  - number: 80
    name: http
    protocol: HTTP

例如这里允许网格内部访问foo.com地址。

istio通过这些扩展的API可以实现策略访问控制,应用遥测等功能配置,方便快捷,非常实用,这里通过利用常用的nginx的比较,可以简单的理解istio各个api的功能,方便快速学习


一些常用的命令

查看配置的virtualservices
[root@172 ~]# istioctl get   virtualservices
NAME          KIND                                          NAMESPACE
bookinfo      VirtualService.networking.istio.io.v1alpha3   default
details       VirtualService.networking.istio.io.v1alpha3   default
productpage   VirtualService.networking.istio.io.v1alpha3   default
ratings       VirtualService.networking.istio.io.v1alpha3   default
reviews       VirtualService.networking.istio.io.v1alpha3   default
查看配置的destinationrules
[root@172 ~]# istioctl get destinationrules
NAME              KIND                                           NAMESPACE
details           DestinationRule.networking.istio.io.v1alpha3   default
productpage       DestinationRule.networking.istio.io.v1alpha3   default
ratings           DestinationRule.networking.istio.io.v1alpha3   default
reviews           DestinationRule.networking.istio.io.v1alpha3   default
istio-policy      DestinationRule.networking.istio.io.v1alpha3   istio-system
istio-telemetry   DestinationRule.networking.istio.io.v1alpha3   istio-system
查看配置的gateway
[root@172 ~]# istioctl get gateway
NAME               KIND                                   NAMESPACE
bookinfo-gateway   Gateway.networking.istio.io.v1alpha3   default
查看配置的ServiceEntry
[root@172 ~]# istioctl get ServiceEntry 

--结束END--

本文标题: Istio v1aplha3 路由 AP

本文链接: https://lsjlt.com/news/189763.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Istio v1aplha3 路由 AP
    先来看看Nginx 的虚拟机配置 upstream test_app { server 127.0.0.1:5000; } server { listen 127.0.0.1:80; ...
    99+
    2023-01-31
    路由 Istio AP
  • kubernetes中Istio如何配置请求路由
    这篇文章主要为大家展示了“kubernetes中Istio如何配置请求路由”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“kubernetes中Istio如何配置请求路由”这篇文章吧。一:简介由于...
    99+
    2023-06-04
  • 详解Angular路由之子路由
    目录一、子路由语法二、实例1、新建2个组件修改其内容2、修改路由配置3、修改product.component.ts的模版一、子路由语法 二、实例 在商品详情页面,除了显示商品id...
    99+
    2024-04-02
  • thinkphp8路由
    thinkphp8已出来有好一段时间了。这些天闲来无事,研究了下tp8的路由。默认情况下,tp8的路由是在route\app.php的文件里。但在实际工作中,我们并不会这样子去写路由。因为这样不好管理...
    99+
    2023-10-01
    android
  • Node.js 路由
    Node.js 路由我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码。因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。这一功能应当属于路由还是服务器(甚至...
    99+
    2023-06-03
  • react路由守卫的实现(路由拦截)
    react不同于vue,通过在路由里设置meta元字符实现路由拦截。在使用 Vue ,框架提供了路由守卫功能,用来在进入某个路有前进行一些校验工作,如果校验失败,就跳转到 404 或...
    99+
    2024-04-02
  • python_telnet h3c 路由
    #!/usr/bin/env python import telnetlib import time def h3c_telnet(ip,username,password1,password2,type):     try:       ...
    99+
    2023-01-31
    路由 python_telnet h3c
  • FastAPI--路由(2)
    路由方法有 GET, POST, PUT, PATCH, DELETE 和 OPTIONS。import uvicorn from fastapi import FastAPI app&nb...
    99+
    2023-01-31
    路由 FastAPI
  • Vue中的动态路由匹配路由问题
    目录vue-router 动态路由匹配总结vue-router 动态路由匹配 我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件。 例如,我们有一个 User 组件,对于所有...
    99+
    2022-12-09
    Vue动态路由 Vue匹配路由 Vue路由
  • Flutter实现页面路由及404路由拦截
    为什么要使用路由 在之前我们的代码中,页面跳转使用的代码如下所示: Navigator.of(context).push( MaterialPageRoute(builde...
    99+
    2024-04-02
  • vuejs路由的传参及路由props配置详解
    目录前言方式1-使用query方式命名路由方式2-路由的params参数query与params的区别路由的props配置路由配置的布尔模式路由配置的对象模式路由配置函数模式总结前言...
    99+
    2024-04-02
  • GateWay路由规则与动态路由详细介绍
    目录1、路由规则2、动态路由1、路由规则 Spring Cloud GateWay 帮我们内置了很多 Predicates功能,实现了各种路由匹配规则(通过 Header、请求参数等...
    99+
    2024-04-02
  • vue如何实现父级路由跳转子路由
    今天小编给大家分享一下vue如何实现父级路由跳转子路由的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。子路由配置首先,我们需要...
    99+
    2023-07-05
  • 详解VueRouter 路由
    目录vue router1、认识路由的概念1.1、何为路由1.2、后端路由阶段1.3、前端路由阶段1.4、前端渲染和后端渲染?2、前端路由的规则2.1、URL的hash 方式2.2、...
    99+
    2024-04-02
  • laravel路由配置
    在laravel框架中,如何访问指定控制器中的信息内,在laravel框架中如果你想要访问指定的控制器内的方法时,你需要进行路由注册,只有进行过路由注册的地址才能够访问,不然的话会显示404,那么如何进行路由注册呢,下面的内容就是如何进行路...
    99+
    2023-09-02
    laravel php 前端 Powered by 金山文档
  • diango路由分发
    1个Django 项目里面有多个APP目录大家共有一个 url容易造成混淆,于是路由分发让每个APP的拥有了自己单独的url例如:将blog应用的url分离出来1、进入mysite目录,修改urls.py文件from django...
    99+
    2023-01-30
    路由 diango
  • Django之路由层
      url配置就像Django所支撑网站的目录。它的本质是url与要被该url调用的视图函数之间的映射表;通过这个映射表可以告知Django,对于客户端发来的某个url该执行那些代码。   一、简单的路由配置 from django.u...
    99+
    2023-01-30
    路由 Django
  • Flask路由&视图
    1 路由  1.1app.url_map 查看所有路由 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): ...
    99+
    2023-01-31
    视图 路由 Flask
  • H3C路由命令
    这里囊括了华三路由器基本的操作命令,仅供大家参考。...
    99+
    2023-01-31
    路由 命令 H3C
  • nodejs设置路由
    随着前端技术的快速发展,越来越多的人开始关注后端开发。而Node.js作为一个轻量级的后端框架,已经受到了越来越多开发者的认可与使用。在Node.js中,设置路由是非常重要的一个部分。路由决定了一个请求应该由哪个处理程序来处理。本文将详细介...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作