我尝试为Kubernetes设置一个haproxy'd多主节点设置,如[1]中所述。我的网络配置是:
所有主机都可以相互连接(每个节点都解析DNS)。每个节点都运行Ubuntu 18.04.3(LTS)。 Docker安装为
当前安装的Kubernetes软件包
使用[2中所述的其他存储库(我知道我在虚拟机上安装了bionic
,但是可用的“最新”存储库仍然是xenial
)。
我的haproxy已从[3]存储库中以haproxy/bionic,now 2.0.9-1ppa1~bionic amd64 [installed]
的形式安装。
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
retries 2
timeout connect 3000ms
timeout client 5000ms
timeout server 5000ms
frontend kubernetes
bind *:6443
option tcplog
mode tcp
default_backend kubernetes-master-nodes
backend kubernetes-master-nodes
mode tcp
balance roundrobin
option tcp-check
server master0 192.168.1.210:6443 check fall 3 rise 2
server master1 192.168.1.211:6443 check fall 3 rise 2
server master2 192.168.1.212:6443 check fall 3 rise 2
在尝试设置我的第一个控制平面时,如[4]中所述运行kubeadm init --control-plane-endpoint "haproxy.my.lan:6443" --upload-certs -v=6
会导致此错误:
Error writing Crisocket information for the control-plane node
完整登录[5]。如果我的haproxy配置有错误,或者docker或kubernetes本身可能有问题,我会很迷茫。
我的/etc/docker/daemon.json
如下:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
答案 0 :(得分:1)
虽然找不到合适的解决方案并在github上的原始“ kubeadm”项目中创建了问题,请参见此处:https://github.com/kubernetes/kubeadm/issues/1930。
由于该问题中建议的“分类”不可行(Ubuntu几乎已“设置”),因此我最终建立了另一个Docker发行版,如此处所述:https://docs.docker.com/install/linux/docker-ce/ubuntu/,在此之前清除已安装的发行版开始新的设置。
通过kubeadm v19.03.5
运行Docker(社区)v1.16.3
时,会发出以下警告:
[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 19.03.5. Latest validated version: 18.09
结果非常好,我设法按照原始文档中的说明设置了ha集群。
因此,这可以看作是解决方法,不是,可以解决我的原始问题!