Я пытаюсь развернуть контроллер nginx-ingress в Kubernetes с помощью Helm.
Я также хочу настроить его для привязки определенных портов службы nginx-ingress-controller к конкретным портам узла на виртуальной машине [Я запускаю его внутри Vagrant].
Например, я хочу:
10000 портов узла -> 8080 nginx-ingress controller -> 10000 портов udp моей серверной службы
Развертывание моего Хелма следующее:
release_name=tcp-udp-nginx-ic
http_nodePort=30080
https_nodePort=30443
echo
echo "- Installing -${release_name}- into cluster ..." | cowsay
helm del --purge ${release_name}
helm upgrade --install ${release_name} \
--set controller.service.type=NodePort \
--set controller.service.nodePorts.http=${http_nodePort} \
--set controller.service.nodePorts.https=${https_nodePort} \
--set rbac.create=true \
--set controller.replicaCount=1 \
--set controller.resources.requests."memory"=300Mi \
--set controller.resources.requests."cpu"=300m \
--set controller.resources.limits."memory"=300Mi \
--set controller.resources.limits."cpu"=300m \
--set controller.ingressClass=nginx \
--set controller.tcp.configMapNamespace=default \
--set controller.udp.configMapNamespace=default \
--set udp."8080"="default/the-backend-service:10000" \
--set service.nodePorts.udp."8080"=10000 \
stable/nginx-ingress
Мой вопрос: в каком формате я должен ввести часть --set service.nodePorts.udp
, чтобы выполнить вышеуказанное?
Используемый формат:упоминается в документации Helm об ограничениях --set .
Я знаю, что я близок, потому что, когда я клонирую диаграмму локально и в файле values.yml
задаю следующее, воспроизводитсяхорошо.
nodePorts:
http: ""
https: ""
tcp: {}
# udp: {}
udp:
8080: 10000
8081: 10001
Когда я разверну его таким образом и desscribe
Служба входного контроллера, я получу:
Name: tcp-udp-nginx-ic-nginx-ingress-controller
Namespace: default
Labels: app=nginx-ingress
chart=nginx-ingress-1.24.3
component=controller
heritage=Tiller
release=tcp-udp-nginx-ic
Annotations: <none>
Selector: app=nginx-ingress,component=controller,release=tcp-udp-nginx-ic
Type: NodePort
IP: 10.109.1.182
Port: http 80/TCP
TargetPort: http/TCP
NodePort: http 30080/TCP
Endpoints:
Port: https 443/TCP
TargetPort: https/TCP
NodePort: https 30443/TCP
Endpoints:
Port: 8080-udp 8080/UDP
TargetPort: 8080-udp/UDP
NodePort: 8080-udp 10000/UDP
Endpoints:
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>