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

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

Насколько я понимаю:

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

Некоторые замечания о моем кластере:

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

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

1 Ответ

0 голосов
/ 06 декабря 2018

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

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

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

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

Теперь, когда у вас есть готовый кластер 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...