因此,我们有一个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一起运行的建议。