Kubernetes NodePort / Балансировщик нагрузки / Вход на установку с несколькими мастерами: необходимо ли это?

Я довольно новичок в этом, но я настраиваю кластер Kubernetes с несколькими мастерами и высокой доступностью, по крайней мере, с 3 мастерами и переменным числом узлов. Я пытаюсь сделать это БЕЗ использования Kube-Spray или каких-либо других инструментов, чтобы узнать истинные взлеты и падения. Я чувствую, что у меня почти все, кроме одного:

Мое понимание таково:

  • NodePort выделяет порт для конкретной службы
  • Балансировщик нагрузки - это внешний ресурс, который обеспечивает внешний доступ
  • Ingress Controller позволяет вам настраивать определенные пути к сервисам и портам.

Некоторые моменты о моем кластере:

  • Развернутые мной модули могут работать на любой машине в кластере и не должны быть доступны извне.
  • Мои мастера также являются рабочими узлами и могут запускать модули
  • etcd работает на каждом мастере

У меня вопрос, нужен ли контроллер NodePort/LB/Ingress? Я пытаюсь понять, зачем мне нужно что-то из вышеперечисленного. Если мастер присоединяется к существующему кластеру вместе с другим мастером, модули распределяются между ними, верно? Разве это не все, что мне нужно? Пожалуйста, помогите мне понять, так как мне не хватает ключевой концепции.

1 ответ

Прежде всего NodePort, LoadBalancer и Ingress не имеют ничего общего с настройкой кластера kubernetes. Эти три являются инструментами для представления ваших приложений внешнему миру, чтобы вы могли получить доступ к этим приложениям за пределами кластера kubernetes.

Здесь есть две части:

  1. Настройка высокодоступного кластера kubernetes с тремя мастерами. Я написал блог о том, как настроить кластер с несколькими мастерами в kubernetes, он даст вам краткое представление о том, как настроить кластер с несколькими мастерами в kubernetes.

https://velotio.com/blog/2018/6/15/kubernetes-high-availability-kubeadm

  1. Теперь, когда у вас есть готовый кластер kubernetes, вы можете начать развертывать на нем свои приложения (модули, службы и т. Д.). Те приложения, которые вы развертываете, могут быть подвержены влиянию внешнего мира, например, веб-сайт, размещенный в вашем кластере kubernetes и доступ к нему из Интернета. Тогда эти NodePort, Loadbalancer или Ingress входят в картину. Разница между NodePort, LoadBalancer и Ingress и когда использовать что? очень хорошо объясняется в этой статье здесь.

https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0

Надеюсь, это даст вам некоторую ясность.

РЕДАКТИРОВАТЬ: Это редактирование для файла конфигурации kubeadm для 1.13(см. Комментарии)

apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: stable
apiServer:
  certSANs:
  - "VIRTUAL IP"
controlPlaneEndpoint: "VIRTUAL IP"
etcd:
    external:
        endpoints:
        - https://ETCD_0_IP:2379
        - https://ETCD_1_IP:2379
        - https://ETCD_2_IP:2379
        caFile: /etc/kubernetes/pki/etcd/ca.crt
        certFile: /etc/kubernetes/pki/apiserver-etcd-client.crt
        keyFile: /etc/kubernetes/pki/apiserver-etcd-client.key
Другие вопросы по тегам