kubectl
не удается открыть порт 88, потому что это привилегированный порт.Для всех портов <1024 требуются специальные разрешения. </p>
Существует множество способов решения вашей проблемы.
- Вы можете придерживаться портов> = 1024 и использовать, например, порт 8888 вместо88:
kubectl port-forward sa-frontend 8888:80
- Вы можете использовать
kubectl
как root: sudo kubectl port-forward sa-frontend 88:80
(не рекомендуется, kubectl будет искать свою конфигурацию как root) - Вы можете предоставить
kubectl
двоичные возможности открытия привилегированных портов. Этот ответ подробно объясняет, как это сделать.
Если вы хотите перейти к третьему варианту, вот короткий способ сделать это:
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/kubectl
Это позволит kubectl
открыть любой порт, все еще работая с привилегиями обычного пользователя.Вы можете проверить, сработало ли это, используя
sudo getcap /usr/bin/kubectl
/usr/bin/kubectl = cap_net_bind_service+eip
Имейте в виду, что это дает разрешение тому, кто использует двоичный файл.Если вы хотите более детализированные разрешения, используйте authbind.