我对此很陌生,但是我正在建立一个多主机,高可用性Kubernetes集群,该集群至少包含3个主机和可变数量的节点。我试图在不使用kube-spray或任何其他工具的情况下进行此操作,以了解真正的出入。我觉得除了一小部分以外,我的大部分精力都没了:
我的理解是:
关于我的集群的一些要点:
我的问题是,我需要一个NodePort / LB / Ingress Controller吗?我试图理解为什么我需要以上任何一个。如果将一个主节点与另一个主节点并排添加到现有集群中,则吊舱将在它们之间分布,对吗?那不是我所需要的吗?请帮助我理解,因为我觉得我缺少一个关键概念。
答案 0 :(得分:2)
首先,NodePort,LoadBalancer和Ingress与设置kubernetes集群无关。这三个工具可将您的应用程序暴露给外界,以便您可以从kubernetes集群外部访问这些应用程序。
这里有两个部分:
https://velotio.com/blog/2018/6/15/kubernetes-high-availability-kubeadm
希望这可以使您更加清楚。
编辑:此编辑适用于1.13的kubeadm配置文件(请参见注释)
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