В версии 4.0.2 Google Container Engine я могу создать службу на высоких портах 8080, 9000 и т. Д., Но когда я пытаюсь использовать порты 80, 81 и т. Д., Служба не работает. Я проверил правила брандмауэра и безуспешно пытался с совершенно новым проектом. Я проверил примечания к выпуску, и есть ошибка, которая мешает двум службам ссылаться на один и тот же порт, но это не так. Какие-нибудь намеки на то, что может случиться?Служба на порту 80
ответ
В настоящее время вы не можете привязываться к низкому порту (1-1024), поскольку служба проксирования tcp работает как непривилегированный пользователь. Если вы посмотрите в своих журналах, вы увидите ошибку, аналогичную:
E1030 07: 10: 54.345547 05091 proxier.go: 411] Не удалось получить сокет для игровой площадки: прослушать tcp 0.0.0.0:80: bind: permission denied
Вот почему все примеры используют порты с большим числом портов.
Вы можете попробовать порт 8080 или 8443 для стандартных непривилегированных портов http/s, пока GKE не поддерживает привязку к портам с низкой номером.
. В версии 0.5 вы можете привязываться к любому порту. –
Порт 80 считается зарезервированным для HTTP-сервера. У вас есть кто-то работает в вашей системе? Кроме того, [этот пост] (http://stackoverflow.com/questions/1694144/can-two-applications-listen-to-the-same-port) может ответить на ваши вопросы об услугах, связанных с портом. –
Вопрос о Google kubernetes Container Engine, а не о стандартном сетевом интерфейсе tcp/ip. Я ссылался на сервис kubernetes, а не на стандартную службу, запущенную на одном узле (например, на машине Linux). –