如何将nginx配置转换为ingress kubernetes yaml配置?

Fau*_*zan 7 nginx url-rewriting kubernetes-ingress nginx-ingress

我在 kubernetes 上部署了 Vue JS。我需要像这个页面一样配置 nginx 路由:

https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations

配置是这样的:

location / {
  try_files $uri $uri/ /index.html;
} 
Run Code Online (Sandbox Code Playgroud)

如何将该配置转换为 ingress kubernetes yaml 配置?

我尝试过这个但不起作用

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /index.html
  name: backoffice
  namespace: default
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/backoffice
spec:
  rules:
    - host: dev.abc.com
      http:
        paths:
          - backend:
              serviceName: backoffice-svc
              servicePort: 443
            path: /
Run Code Online (Sandbox Code Playgroud)

我尝试使用这个注释,但仍然不起作用:

nginx.ingress.kubernetes.io/app-root: /app1
Run Code Online (Sandbox Code Playgroud)

Cro*_*rou 5

Ingress可能如下所示

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: some-nice-server
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - host: "some.nice.server.com"
    http:
      paths:
      - path: /something1/?(.*)
        backend:
          serviceName: something-1
          servicePort: 8080
Run Code Online (Sandbox Code Playgroud)

Kubernetes Ingress-Nginx dosc对此进行了很好的解释。

或者,您也可以在注释中使用配置片段

...
nginx.ingress.kubernetes.io/configuration-snippet: |
      try_files $uri $uri/ /index.html; 
...
Run Code Online (Sandbox Code Playgroud)