Активация proxy protocol
Базовая информация
Внимание
После включения proxy protocol вы потеряете доступ к Rancher через Ingress напрямую.
Включать только при использовании внешнего балансировщика.
Proxy protocol предоставляет удобный способ безопасной передачи информации о соединении, такой как адрес клиента, через несколько уровней NAT или TCP прокси. Он разработан таким образом, чтобы не требовать значительных изменений в существующих компонентах и ограничить влияние на производительность, вызванное обработкой передаваемой информации информации.
Настройка
Заметка
Далее в инструкции мы будем работать с объектом инфраструктурного кластера. Для изменения nginx в подчинённом кластере добавьте к имени объекта имя кластера. Например, чтобы поправить объект для кластера с именем demo, поправить объект demo-ingress-nginx
Для активации proxy protocol поправьте объект HelmChartProxy:
kubectl edit ingress-nginx
apiVersion: addons.cluster.x-k8s.io/v1alpha1
kind: HelmChartProxy
metadata:
creationTimestamp: "2023-10-15T17:06:17Z"
finalizers:
- helmchartproxy.addons.cluster.x-k8s.io
generation: 2
name: ingress-nginx
namespace: default
resourceVersion: "17626209"
uid: a8ed7eae-d05a-4f69-a042-0cc2de8b195d
spec:
chartName: ingress-nginx
clusterSelector:
matchLabels:
cluster.x-k8s.io/cluster-name: test
namespace: nginx-ingress
options:
install:
createNamespace: true
timeout: 5m0s
wait: true
releaseName: ingress-nginx
repoURL: http://museum.default.svc.cluster.local:8080
valuesTemplate: |
controller:
opentelemetry:
image: harbor.bootsman.host/bootsman-nimbus/common-artifacts/ingress-nginx-opentelemetry:v20230527
image:
registry: harbor.bootsman.host/bootsman-nimbus/common-artifacts
image: ingress-nginx-controller
digest: ""
admissionWebhooks:
patch:
image:
registry: harbor.bootsman.host/bootsman-nimbus/common-artifacts
image: kube-webhook-certgen
digest: ""
kind: DaemonSet
hostPort:
enabled: true
ports:
http: 80
https: 443
ingressClassResource:
default: true
publishService:
enabled: true
service:
type: ClusterIP
watchIngressWithoutClass: true
defaultBackend:
image:
registry: harbor.bootsman.host/bootsman-nimbus/common-artifacts
enabled: true
rbac:
create: true
version: 4.7.1
Нас интересует блок valuesTemplate. Приведите его к виду:
valuesTemplate: |
controller:
config:
use-forwarded-headers: "true"
use-proxy-protocol: "true
opentelemetry:
image: harbor.bootsman.host/bootsman-nimbus/common-artifacts/ingress-nginx-opentelemetry:v20230527
image:
registry: harbor.bootsman.host/bootsman-nimbus/common-artifacts
image: ingress-nginx-controller
digest: ""
admissionWebhooks:
patch:
image:
registry: harbor.bootsman.host/bootsman-nimbus/common-artifacts
image: kube-webhook-certgen
digest: ""
kind: DaemonSet
hostPort:
enabled: true
ports:
http: 80
https: 443
ingressClassResource:
default: true
publishService:
enabled: true
service:
type: ClusterIP
watchIngressWithoutClass: true
defaultBackend:
image:
registry: harbor.bootsman.host/bootsman-nimbus/common-artifacts
enabled: true
rbac:
create: true
Затем добавьте в блок controller следующую конфигурацию:
config:
use-forwarded-headers: "true"
use-proxy-protocol: "true
Сохраните манифест и подождите пару минут, после чего ingress начнёт использовать proxy protocol.