kubernetes - Istio WorkloadEntry + 本地 Pod
问题描述
我需要实现这个场景https://istio.io/latest/blog/2020/workload-entry/负载应该分配到本地 pod 和外部服务(外部服务实现与本地 pod 相同的功能)。
本地 pod 服务:
apiVersion: v1
kind: Service
metadata:
name: myapp
spec:
selector:
app: myapp
ports:
- name: http
appProtocol: http
targetPort: http
port: 80
对外服务:
apiVersion: networking.istio.io/v1alpha3
kind: WorkloadEntry
metadata:
name: myapp
spec:
address: example.net
labels:
app: myapp
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: myapp
spec:
hosts:
- myapp.default.svc.cluster.local
location: MESH_INTERNAL
ports:
- number: 8000
name: http
protocol: HTTP
targetPort: 80
resolution: DNS
workloadSelector:
labels:
app: myapp
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: myapp
spec:
hosts:
- '*.mydomain.net'
gateways:
- gw
- mesh
http:
- name: myapp
match:
- uri:
prefix: /
route:
- destination:
host: myapp.default.svc.cluster.local
port:
number: 8000
retries:
attempts: 20
retryOn: 503,retriable-status-codes,connect-failure,reset
retryRemoteLocalities: true
使用此设置,本地 Pod 永远不会被选择并始终路由到外部服务。负载应该在本地和外部服务之间平衡。
Istio v1.9.4
解决方案
推荐阅读
- bash - bash中的嵌套括号是什么意思?
- php - 未分配给数组的值
- android - 如何将值保存在编辑文本框中
- flutter - Flutter:按下按钮时只能在初始化程序中访问静态成员
- mongodb - 需要在mongodb中查找动态多个嵌套集合的查询
- android - 未解决的类:主要活动
- android - 使用 Volley 在 kotlin 中创建 Reqeust 类
- javascript - 使用 Node.js 启动带有参数的浏览器窗口
- sql-server - “一个 SQL server Express 2008 实例是 sqlserver.exe 可执行文件的副本”是什么意思?
- sql - 不确定为什么会出现 ORA-00918 列定义不明确