Kubernetes — Ingress Nginx (Bare Metal)

При поднятии Kubernetes на "голом железе" (Bare metal), а не на облачных решениях, где существуют LoadBalancer'ы, необходимо "открывать" Ingress "в мир" другими способами. В данной статье будет рассмотрен вариант с NodePort.

Будем считать, что сам Kubernetes уже установлен.

Данная команда необходимо не зависимо от среды развертывания:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml

Далее предлагают установить Ingress и сам добавить NodePort:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml

Но мы сами создадим yml файл и отредактируем его:

cat > ingress-nginx.yml << EOF
apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: NodePort
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
  externalIPs:
    - 1.1.1.1
    - 2.2.2.2
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
EOF

Где 1.1.1.1 и 2.2.2.2 — IP адреса work’еров Kubernetes’а, на которых будет работать Ingress.

Применяем:

kubectl apply -f ingress-nginx.yml

После этого, Ingress будет "слушать с мира" порты 80 и 443. LoadBalancer можно организовать при помощи DNS, к примеру при использование Cloudflare при указании нескольких записей "Type A" на один домен, будет по умолчанию работать RoundRobin.

0 0 vote
Рейтинг статьи

Метки: Метки

Подписаться
Уведомление о
guest
0 комментариев
Inline Feedbacks
View all comments