Python 官方文档:入门教程 => 点击学习
先来看看Nginx 的虚拟机配置 upstream test_app { server 127.0.0.1:5000; } server { listen 127.0.0.1:80;
upstream test_app {
server 127.0.0.1:5000;
}
server {
listen 127.0.0.1:80;
location / {
proxy_pass Http://test_app;
}
}
对于nginx的虚拟机配置,正常应该有下面三个东西
v1alpha3引入了以下这些新的配置资源来控制进入网格,网格内部和离开网格的流量路由。
ServiceEntry
跨多个配置资源的控制流程。
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
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 类似nginx中的upstream字段功能,起到路由分配的作用:
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 用于将附加条目添加到 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
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0