Istio网关和流量路由不起作用(通过Jenkins X / jx部署)

时间:2019-02-27 10:17:32

标签: kubernetes kubernetes-helm istio jenkins--x

因此,我们有一个environment staging" repo which was created by jenkins x. In it we commit the following ymls to the env / templates`文件夹。 kubernetes集群位于AWS EKS中。

apiVersion: v1
kind: Namespace
metadata:
  name: global-gateway
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: app-gateway
  namespace: global-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: app-hosts
  namespace: jx-staging
spec:
  hosts:
  - "*"
  gateways:
  - app-gateway.global-gateway.svc.cluster.local
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: test-app
        port:
          number: 80

上述YML可以正常工作,并且当通过kubectl apply -f应用时,我可以访问该服务。

但是,我们不是手动创建它们,而是提交并将其推送到存储库,该存储库触发成功运行的JX作业。之后,我们可以看到所有网关和VirtualService已正确部署。也就是说,如果我们运行kubectl get Gateway,我们可以看到我们的网关。

但是从jenkins应用后,URL不起作用,并且不会重定向到微服务。

jenkins似乎运行的命令是

helm upgrade --namespace jx-staging --install --wait --force --timeout 600 --values values.yaml jx-staging .

要尝试诊断我使用kubectl和jenkins部署的问题,并比较kubectl describe Gateway/VirtualService <name>的输出

jenkins / heml部署显示Annotations: <none>,而与kubectl一起部署显示

Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"networking.istio.

Resource Version的数字也有所不同,但我认为这是正确的吗?

编辑: 舵图也如下

description: GitOps Environment for this Environment
icon: https://www.cloudbees.com/sites/default/files/Jenkins_8.png
maintainers:
- name: Team
name: env
version: "39"

请提供有关如何使istio网关与jx / helm一起运行的建议。

0 个答案:

没有答案