Назад | Перейти на главную страницу

Раскрытие кластера Kubernetes за pfSense

Я установил кластер Kubernetes на сервере Bare-metal.

Этот сервер содержит гипервизор Proxmox, у меня есть следующие виртуальные машины

И мастера, и узлы используют CoreOS.

Я подготовил кластер Kubernetes с помощью Kubespray:

Мне удалось установить MetalLB, моя конфигурация следующая

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.9.240/28

Я также установил nginx-ingress с mandatory.yaml файл и простой сервис

kind: Service
apiVersion: v1
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: LoadBalancer
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  ports:
    - name: http
      port: 80
      targetPort: http
    - name: https
      port: 443
      targetPort: http

Затем я применил файл yaml для проверки nginx-ingress работает правильно

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: my-nginx
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: my-nginx
  labels:
    run: my-nginx
spec:
  ports:
  - port: 80
    protocol: TCP
  selector:
    run: my-nginx
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-app-ingress
  annotations: 
     nginx.ingress.kubernetes.io/rewrite-target: /
     nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - http:
      paths:
      - path: /test
        backend:
          serviceName: my-nginx
          servicePort: 80

Когда я использую команду, kubectl get ingress, Я получаю этот ответ

NAME                   HOSTS                        ADDRESS         PORTS   AGE
nginx-app-ingress      *                            192.168.9.240   80      19h

Я могу получить доступ к простому серверу nginx по этому URL-адресу при подключении к VPN 192.168.9.240/test

Теперь я хотел бы иметь доступ к этому «сайту» из внешнего мира.

Я не уверен, что делать, поскольку перед кластером Kubernetes стоит pfSense.

Я думаю об использовании обратного прокси, например:

Но я не совсем уверен в этом решении, так как не знаю, является ли оно лучшим решением этой проблемы.