Я создал образ докера на основе httpd: 2.4 .В моем развертывании k8s я определил следующее securityContext
:
securityContext:
privileged: false
runAsNonRoot: true
runAsUser: 431
allowPrivilegeEscalation: false
Для того, чтобы этот контейнер работал должным образом, необходимо настроить Apache без полномочий root для привязки к порту> 1024, какв отличие от значения по умолчанию 80. Насколько я могу судить, это означает редактирование Listen 80
в httpd.conf
в Listen {Some port > 1024}
.
Когда я хочу запустить образ докера, который я собрал нормально (т.е. по умолчаниюпорт 80) У меня есть следующие настройки порта:
- развертывание
spec.template.spec.containers[0].ports[0].containerPort
: 80
- service
spec.ports[0].targetPort
: 80 spec.ports[0].port
: 8080
- вход
spec.rules[0].http.paths[0].backend.servicePort
: 8080
С учетом этих настроек служба становится доступной по URL-адресу хоста, указанному во входном манифесте.Опять же, это без изменений httpd.conf
.Когда я делаю эти изменения (используя Listen 8000
) и добавляю в раздел securityContext
к развертыванию, я соответственно изменяю различные манифесты:
- развертывание
spec.template.spec.containers[0].ports[0].containerPort
: 8000
- сервис
spec.ports[0].targetPort
: 8000 spec.ports[0].port
: 8080
- вход
spec.rules[0].http.paths[0].backend.servicePort
: 8080
Тем не менее, по какой-то причине, когда я пытаюсь получить доступ к URL, который должен работать, я получаю ошибку 502 Bad Gateway.Я правильно установил порты?Есть ли что-то еще, что мне нужно сделать?