Routing 具有Istio入口的Kubernetes未在标准HTTP端口443/80上运行

Routing 具有Istio入口的Kubernetes未在标准HTTP端口443/80上运行,routing,kubernetes,kubernetes-ingress,istio,Routing,Kubernetes,Kubernetes Ingress,Istio,我正在尝试在Kubernetes上设置Istio作为入口控制器。问题是我的两个应用程序似乎可以从Istio入口控制器节点端口访问(例如,和 )但无法从443/80访问 我对Kubernetes和Istio还不熟悉,所以我把这本指南作为参考。遵循指南相当简单,我可以使用前面提到的节点端口访问Bookinfo应用程序。但我无法从443/80访问它。我用舵图安装了Istio。我也没有在Kubernetes仪表板的入口下看到任何东西 以下是网关/虚拟服务yaml的示例: apiVersion: netw

我正在尝试在Kubernetes上设置Istio作为入口控制器。问题是我的两个应用程序似乎可以从Istio入口控制器节点端口访问(例如,和 )但无法从443/80访问

我对Kubernetes和Istio还不熟悉,所以我把这本指南作为参考。遵循指南相当简单,我可以使用前面提到的节点端口访问Bookinfo应用程序。但我无法从443/80访问它。我用舵图安装了Istio。我也没有在Kubernetes仪表板的入口下看到任何东西

以下是网关/虚拟服务yaml的示例:

apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: myapp-gateway spec: selector: istio: ingressgateway # use istio default controller servers: - port: number: 80 name: http protocol: HTTP hosts: - "*" --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: myapp-virtual-service spec: hosts: - "*" gateways: - myapp-gateway http: - match: - uri: prefix: /myapp route: - destination: host: myapp-app-service port: number: 7080 - match: - uri: prefix: / route: - destination: host: kibana port: number: 5601 apiVersion:networking.istio.io/v13 种类:网关 元数据: 名称:myapp网关 规格: 选择器: istio:ingressgateway#使用istio默认控制器 服务器: -端口: 电话:80 名称:http 协议:HTTP 主持人: - "*" --- apiVersion:networking.istio.io/v13 种类:虚拟服务 元数据: 名称:myapp虚拟服务 规格: 主持人: - "*" 网关: -myapp网关 http: -匹配: -uri: 前缀:/myapp 路线: -目的地: 主持人:myapp服务 端口: 电话:7080 -匹配: -uri: 前缀:/ 路线: -目的地: 主持人:基巴纳 端口: 电话:5601
想知道我该怎么做才能让它收听443吗?我是否完全缺少一个组件

如果需要在443/80上运行到应用程序的路由,则Kubernetes群集必须部署外部负载平衡器。如果没有,流量将路由到入口节点端口

请参阅-(确定入口IP和端口):

如果设置了EXTERNAL-IP值,则您的环境有一个外部负载平衡器,您可以将其用于入口网关。如果EXTERNAL-IP值为(或永久),则您的环境不为入口网关提供外部负载平衡器。在这种情况下,您可以使用服务的节点端口访问网关

没有外部负载平衡器的裸机实例示例:

[admin@master1 ~]$ kubectl get svc -n istio-system | grep istio-ingress istio-ingress LoadBalancer 10.114.107.196 <pending> 80:32400/TCP,443:31564/TCP 5d istio-ingressgateway LoadBalancer 10.99.1.148 <pending> 80:31380/TCP,443:31390/TCP,31400:31400/TCP 5d λ kubectl get svc -n istio-system | grep istio-ingress istio-ingress LoadBalancer 172.21.26.25 123.45.67.195 80:32000/TCP,443:31694/TCP 6h istio-ingressgateway LoadBalancer 172.21.139.142 123.45.67.196 80:31380/TCP,443:31390/TCP,31400:31400/TCP 6h [admin@master1~]$kubectl获得svc-n istio系统| grep istio入口 istio入口负载平衡器10.114.107.196 80:32400/TCP,443:31564/TCP 5d istio ingressgateway负载平衡器10.99.1.148 80:31380/TCP、443:31390/TCP、31400:31400/TCP 5d 如果您要部署到在线云提供商,如IBMBlueMix(可能是AWS/Azure/等),那么您应该已经配置了一个。如果您的配置在裸机上,则可能没有配置负载平衡器

带有外部负载平衡器的Bluemix实例示例:

[admin@master1 ~]$ kubectl get svc -n istio-system | grep istio-ingress istio-ingress LoadBalancer 10.114.107.196 <pending> 80:32400/TCP,443:31564/TCP 5d istio-ingressgateway LoadBalancer 10.99.1.148 <pending> 80:31380/TCP,443:31390/TCP,31400:31400/TCP 5d λ kubectl get svc -n istio-system | grep istio-ingress istio-ingress LoadBalancer 172.21.26.25 123.45.67.195 80:32000/TCP,443:31694/TCP 6h istio-ingressgateway LoadBalancer 172.21.139.142 123.45.67.196 80:31380/TCP,443:31390/TCP,31400:31400/TCP 6h λkubectl获得svc-n istio系统| grep istio入口 istio入口负载平衡器172.21.26.25 123.45.67.195 80:32000/TCP,443:31694/TCP 6h istio ingressgateway负载平衡器172.21.139.142 123.45.67.196 80:31380/TCP、443:31390/TCP、31400:31400/TCP 6h
我还没有回到部署负载平衡器到裸机,所以想知道是否有人这样做过。我已经简要介绍了Metal,但没有花太多时间在它上面。

可以在api服务器清单上修改节点端口范围,如果您使用的是kubeadm,请编辑“/etc/kubernetes/manifests/kube apiserver.yaml”文件并添加以下行:

- --service-node-port-range=80-32767
然后,编辑“istio ingressgateway”服务:

  - name: http2
    nodePort: 80
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    nodePort: 443
    port: 443
    protocol: TCP
    targetPort: 8443

我也面临同样的问题。您应该尝试将此作为问题发布到他们的GitHub页面上。可能会得到快速的回应。我尝试将NodePort从31380更改为80,但它表示NodePort范围在30000到32767之间。服务“istio ingressgateway”无效:spec.port[0]。NodePort:无效值:80:提供的端口不在有效范围内。有效端口的范围为30000-32767@Kushal,问题的根本原因基本上是您需要部署外部负载平衡器。我假设您也在部署裸机。如果您运行“kubectl get svc-n istio system | grep istio ingress”,它会将外部IP显示为挂起,对吗?我的解决方法是部署到我们的IBMBlueMixK8集群,该集群使用与上述完全相同的yaml。它实际上不是一个网络负载平衡器,而是一个可以提供IP到负载平衡器服务类型的实体