В документации о NodePort вы можете обнаружить, что этот тип может выделять порты из диапазона 30000-32767. Однако есть обходной путь. Если вы добавите специальный флаг --service-node-port-range
с запрошенным диапазоном, контроллер доступа позволит вам создать NodePort с портами 80 и 443.
Вам нужно будет перейти к /etc/kubernetes/manifests/
, отредактировать kube-apiserver.yaml
с помощью sudo идобавить запись - --service-node-port-range=1-32767
. После этого вам нужно сохранить его.
Теперь вам нужно будет создать service
. Для этого вам нужно отредактировать этот yaml и в портах добавить node port
к spec.ports
До:
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
- name: https
port: 443
targetPort: 443
protocol: TCP
После:
ports:
- name: http
nodePort: 80
port: 80
protocol: TCP
targetPort: 80
- name: https
nodePort: 443
port: 443
protocol: TCP
targetPort: 443
После этих изменений вы можете снова отредактировать kube-apiserver.yaml
в / etc / kubernetes / manifest / и прокомментировать его, используя #
в том же самомстрока как - --service-node-port-range
.
Тогда вы сможете свернуть этот NodePort
адрес и Node
адрес.
РЕДАКТИРОВАТЬ: После уточнения
Вход может быть развернут двумя способами. Первый - это развертывание Nginx
как Deamonset , для которого требуется hostPort
внутри файла конфигурации. Однако есть и другой вариант, вы можете развернуть Nginx
как Deployment
.
NodeIP и известный порт: блоки в DaemonSet могут использовать hostPort, так что блоки доступны через IP-адреса узла,Клиенты каким-то образом знают список IP-адресов узлов и знают порт.
Однако в нижней части страницы вы можете найти:
DaemonSets похожи на Deploymentsв том смысле, что они оба создают модули, и в этих модулях есть процессы, которые не должны завершаться (например, веб-серверы, серверы хранения).
Использование развертывания для служб без сохранения состояния, таких как веб-интерфейсы, где увеличение или уменьшение числареплик и развертывание обновлений важнее, чем контроль, на каком именно хосте работает Pod. Используйте DaemonSet, когда важно, чтобы копия модуля всегда выполнялась на всех или определенных хостах, а также когда он должен запускаться раньше других модулей.
Вам необходимо развернуть Ingress
как Deployment
и не как Deamonset
.
Пример развертывания Nginx можно найти здесь . Поскольку для развертывания не требуется hostPort
, вы сможете создавать модули без этого параметра.