Развертывание Kubernetes Cluster + Wordpress на Ubuntu 18.04 VPS, указывающее на мой домен - PullRequest
0 голосов
/ 03 мая 2020

Сценарий: я пытаюсь изучить некоторые K8 путем воссоздания моего текущего стека с контейнерами и оркестровкой контейнеров.

Справочная информация: Мой текущий стек разработчика состоит из Wordpress, NextCloud, BTCPayServer, Jitsi и Mail- в коробке. Все с открытым исходным кодом и прекрасно работает каждый на своем отдельном VPS KVM.

Цели: Моя цель - иметь возможность развернуть те же решения на K8, чтобы иметь возможность масштабировать и получить немного больше гибкости во время разработки.

Ограничения: Мой бюджет ограничен, поэтому я работаю с KVM VPS в небольших хостинг-провайдерах (без AWS / GCE / Azure / DO / et c).

Текущая настройка K8S 1 домен с 1 мастером + 2 рабочих: - мастер 1: 2xCPU, 2 ГБ ОЗУ, 50 ГБ SSD, Master01_IP - работник 1: 1xCPU, 1 ГБ ОЗУ, 10 ГБ SSD, Worker01_IP - работник 2: 2xCPU, 3 ГБ ОЗУ, 60 ГБ SSD, Worker02_IP

Каким-то образом мне удалось заставить кластер работать, я отредактировал / etc / hosts со всеми 3 IP-адресами на каждом сервере, запустил мастер и затем присоединился к двум рабочим.

Затем установил Wordpress, выполнив:

helm install wordpress-test bitnami / wordpress

Я застреваю в EXTERNAL-IP "в ожидании"

$ kubectl get sv c --namespace default -w wordpress Тест WordPress Загрузить Balancer 10.104.15.90 "в ожидании" 80: 32577 / TCP, 443: 31388 / TCP 102s терминал-снимок экрана

Как мне предоставить EXTERNAL-IP развертывания некоторым из моих доступных IP ( 1-Мастер, 2 работника), чтобы я мог получить к нему доступ, перейдя по адресу mydomain.xyz?

Я читал о LoadBalancers, но большая часть документации ссылается на крупных поставщиков облачных систем, таких как AWS, GCE, Azure, DigitalOcean, все это выходит за рамки моих возможностей, поскольку у меня даже нет кредитной карты для регистрации и создания учетной записи.

Мне нужно научиться развертывать ее с помощью своих собственных ресурсов. поэтому здесь я прошу помощи:)

1 Ответ

1 голос
/ 03 мая 2020
  1. Вы можете развернуть входной контроллер, такой как nginx, и открыть входной контроллер через NodePort. Затем использовать входной ресурс для предоставления службы через nginx.

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
  name: rewrite
  namespace: default
spec:
  rules:
  - host: mydomain.xyz
    http:
      paths:
      - backend:
          serviceName: coffee-svc
          servicePort: 80

Поскольку домен mydomain.xyz не является реальным доменом, зарегистрированным у провайдера DNS, вы можете просто изменить файл /etc/hosts системы, из которого вы можете получить к нему доступ, чтобы получить mydomain.xyz отображение NodeIP.

Другой вариант - использовать metalLB , который является реализацией LoadBalancer для чистого металла без провайдера облака.
...