所以我们有一个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 作业的存储库。之后我们可以看到所有的 Gateway 和 VirtualService 都已正确部署。即,如果我们运行kubectl get Gateway
,我们可以看到我们的网关。
但是 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"
请就如何使用 jx/helm 运行 istio 网关提出建议。