【发布时间】:2019-04-08 19:04:25
【问题描述】:
问题
我在 kubernetes 中使用相同的服务创建两个部署,类型是 NodePort,
apiVersion: v1
kind: Service
metadata:
name: devo-159239e607c694e08b146c855b393652
namespace: devo-bsg-dev
labels:
app: devo
spec:
ports:
- name: http-app
nodePort: 31012
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: devo-159239e607c694e08b146c855b393652
type: NodePort
我可以通过 NodePort 访问我的服务,kiali 也可以显示流量
然后我希望所有流量都转到 v1 版本,所以我创建了一个 virtualservice 和 destinationrule,
[root@master104 beego2]# cat beego2-virtual-service.yml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: devo-159239e607c694e08b146c855b393652
namespace: devo-bsg-dev
spec:
hosts:
- devo-159239e607c694e08b146c855b393652
http:
- route:
- destination:
host: devo-159239e607c694e08b146c855b393652
subset: v1
[root@master104 beego2]# cat beego2-destination.yml
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: devo-159239e607c694e08b146c855b393652
namespace: devo-bsg-dev
spec:
host: devo-159239e607c694e08b146c855b393652
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
但结果未按预期显示
问题是:是我的规则错了还是 istio 不能与 nodeport 一起工作?
环境
kubernetes 1.13.3
istio 1.1.2
【问题讨论】:
-
您的方法似乎不对。
标签: kubernetes istio