Я думаю, это должна быть заглавная F в False
. Не обязательно. Просто раньше этого не было. Не знаю почему. This и this оба работают.
❯ kubectl get configmap -ndefault nginx-ingress-controller -oyaml
apiVersion: v1
data:
server-tokens: "False"
kind: ConfigMap
metadata:
annotations:
meta.helm.sh/release-name: nginx-ingress
meta.helm.sh/release-namespace: default
creationTimestamp: "2020-06-19T06:37:21Z"
labels:
app: nginx-ingress
app.kubernetes.io/managed-by: Helm
chart: nginx-ingress-1.37.0
component: controller
heritage: Helm
release: nginx-ingress
name: nginx-ingress-controller
namespace: default
resourceVersion: "7130237"
selfLink: /api/v1/namespaces/default/configmaps/nginx-ingress-controller
uid: 633efe3a-73cf-4c40-8e40-581937e367e2
Вы можете сделать это вручную, отредактировав конфигурационную карту через kubectl edit configmap
и затем удалив модуль контроллера, или вы можете установите его с помощью значений helm:
helm get values nginx-ingress -ndefault -oyaml > tmp/nginx-ingress-values.yaml
Измените на:
controller:
config:
server-tokens: "False"
publishService:
enabled: true
И примените его:
helm upgrade nginx-ingress stable/nginx-ingress -f tmp/nginx-ingress-values.yaml -ndefault
Удалите модуль контроллера на всякий случай.
Grep it:
kubectl exec -ndefault nginx-ingress-controller-b545558d8-gmz64 -- cat /etc/nginx/nginx.conf | grep tokens
Подтвердите ваши заголовки в Chrome инструментах разработчика:
Возможно, это было бы проще сработало:
helm upgrade --reuse-values nginx-ingress stable/nginx-ingress -ndefault --set-string controller.config.server-tokens=false
Но моя конфигурация сейчас работает, поэтому я не буду ее пробовать.