为什么在入口服务中需要注解:重写目标
why annotation: rewrite-target are required in ingress service
我根据 kubernetes 文档创建了一个入口服务,但我发现不在注释下方放置会使服务不可用。为什么会这样?
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "false"
问这个问题的主要原因是在 K8s 文档中,我找到了下面的入口代码,但是直到并且除非我放置上面的注释,这才起作用。那么,为什么下面的代码不起作用?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-wear-watch
namespace: app-space
spec:
rules:
- http:
paths:
- path: /wear
pathType: Prefix
backend:
service:
name: wear-service
port:
number: 8080
- path: /watch
pathType: Prefix
backend:
service:
name: video-service
port:
number: 8080
基于k8s docs,在这个具体案例中你需要知道的是
you can use Kubernetes annotations to attach arbitrary non-identifying metadata to objects. Clients such as tools and libraries can retrieve this metadata.
[annotations are] Directives from the end-user to the implementations to modify behavior or engage non-standard features.
所以基本上这个特定的注释用于修改入口的行为并且特定于 nginx 入口控制器(这意味着如果你使用不同的控制器,这个注释将不起作用)。
Nginx Ingress Controller documention 中解释了 nginx 入口控制器的所有支持注释。
我根据 kubernetes 文档创建了一个入口服务,但我发现不在注释下方放置会使服务不可用。为什么会这样?
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "false"
问这个问题的主要原因是在 K8s 文档中,我找到了下面的入口代码,但是直到并且除非我放置上面的注释,这才起作用。那么,为什么下面的代码不起作用?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-wear-watch
namespace: app-space
spec:
rules:
- http:
paths:
- path: /wear
pathType: Prefix
backend:
service:
name: wear-service
port:
number: 8080
- path: /watch
pathType: Prefix
backend:
service:
name: video-service
port:
number: 8080
基于k8s docs,在这个具体案例中你需要知道的是
you can use Kubernetes annotations to attach arbitrary non-identifying metadata to objects. Clients such as tools and libraries can retrieve this metadata. [annotations are] Directives from the end-user to the implementations to modify behavior or engage non-standard features.
所以基本上这个特定的注释用于修改入口的行为并且特定于 nginx 入口控制器(这意味着如果你使用不同的控制器,这个注释将不起作用)。
Nginx Ingress Controller documention 中解释了 nginx 入口控制器的所有支持注释。