我可以将istio用于kubernetes中由nodeport访问的服务吗?

问题描述 投票:0回答:1

我在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也可以显示流量

enter image description here

然后我希望所有流量都转到版本v1,所以我创建了一个虚拟服务和目标规则,

[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?

环境

政府1.13.3

1.1.2清洗

kubernetes istio
1个回答
0
投票

我没有在你的Istio设置中看到任何Gateway配置。 Istio Gateway代表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

在上面的场景中,我们希望允许端口80上的HTTP流量,主机devo-159239e607c694e08b146c855b393652

您可以在演示预订应用程序example中找到有关通过Istio网格公开Kubernetes微服务的更多相关实用材料。

© www.soinside.com 2019 - 2024. All rights reserved.