问题
我在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版,因此我创建了一个虚拟服务和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
答案 0 :(得分:0)
我在Istio设置中看不到任何Gateway配置。 Istio网关代表Kuberentes微服务前面的外部IP地址,该地址允许通过指定的端口,协议和主机的传入流量。您可以在常规网关资源定义中使用默认的istio-ingressgateway
,然后绑定对应的VirtualService
,即:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: http-gateway
namespace: devo-bsg-dev
spec:
selector:
istio: ingressgateway #Default Istio Ingressgateway controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- devo-159239e607c694e08b146c855b393652
---
kind: VirtualService
metadata:
name: devo-159239e607c694e08b146c855b393652
namespace: devo-bsg-dev
spec:
hosts:
- devo-159239e607c694e08b146c855b393652
gateways:
- http-gateway
http:
- route:
- destination:
host: devo-159239e607c694e08b146c855b393652
subset: v1
在上述情况下,我们希望允许端口devo-159239e607c694e08b146c855b393652
上的主机def select_columns(data_frame, column_names):
new_frame = data_frame.loc[:, column_names]
return new_frame
使用HTTP通信。
您可以在演示预订应用程序example中找到有关通过Istio网格公开Kubernetes微服务的更多相关实用材料。