Подробная инструкция как установить nginx ingress controller на чистый bare metal кластер:
https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal
Или по шагам:
- Устанавливаем ingress-nginx service с type NodePort:
1kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml
Проверим, что установка завершена успешно:
1kubectl get services -n ingress-nginx
Видим:
1ingress-nginx ingress-nginx NodePort 10.245.213.134 <none> 80:31462/TCP,443:30310/TCP 2s
Поздравляем! Nginx контроллер успешно установлен, теперь можем сделать curl до машины с 31462 портом и получим ответ nginx:
12345678$ curl OUR_NODE_IP:31462<html><head><title>404 Not Found</title></head><body><center><h1>404 Not Found</h1></center><hr><center>nginx/1.15.6</center></body></html> - Посмотрим какой nginx.conf наш контроллер нам сгенерировал?
1kubectl -n ingress-nginx exec nginx-ingress-controller-<pod-id> -- cat /etc/nginx/nginx.conf > ./nginx.conf
Если откроем conf файл мы увидим какую конфигурацию имеет nginx в данный момент. - Далее мы можем добавлять новые ingress, установленный Nginx controller возьмет на себя функцию обновления conf файла.
- Теперь дело за малым — настроим наш reverse proxy load balancer на порт 31462 (или 30310 для https) наших нод.