我正在尝试使用kubectl补丁为我的k8s nginx入口添加一个额外的注释。
这是我的开始:
apiVersion: v1
items:
- apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
field.cattle.io/publicEndpoints: '[{"stuff:false}]'
kubernetes.io/ingress.class: nginx-external
creationTimestamp: "2019-02-25T20:38:29Z"
generation: 1
这是我正在应用ingress_annotation.yaml
的补丁文件。
metadata:
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header l5d-dst-override $service_name.$namespace.svc.cluster.local:80;
proxy_hide_header l5d-remote-ip;
proxy_hide_header l5d-server-id;
我通过运行kubectl patch ingress kibana --patch "$(cat ingress_annotation.yaml)"
来应用此补丁。
当我应用此命令时,确实会在运行kubectl get ingress <my_ingress> -o yaml
时将注释添加到入口中:
apiVersion: v1
items:
- apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
field.cattle.io/publicEndpoints: '[{"Stuff:false}]'
kubernetes.io/ingress.class: nginx-external
nginx.ingress.kubernetes.io/configuration-snippet: |-
proxy_set_header l5d-dst-override $service_name.$namespace.svc.cluster.local:80;
proxy_hide_header l5d-remote-ip;
proxy_hide_header l5d-server-id;
creationTimestamp: "2019-02-25T20:38:29Z"
generation: 1
请注意"-"
之后的额外nginx.ingress.kubernetes.io/configuration-snippet: |
字符。我不确定这个角色来自哪里或在这里做什么。谁能为我提供一些启发,或者如何防止将此字符添加到注释中?
答案 0 :(得分:2)
这是YAML syntax,可能是kubectl自动添加的:
-指示器:屏蔽后删除多余的换行符
content: |-
Arbitrary free text without newlines after it