0

所以我们有一个environment staging" repo which was created by jenkins x. In it we commit the following ymls to theenv/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 网关提出建议。

4

0 回答 0