Intento configurar una configuración de nodo multimaestro haproxy para Kubernetes, como se describe en [1]. Mis configuraciones de red son:
- haproxy = 192.168.1.213
- maestro0|1|2 = 192.168.1.210|211|212
- trabajador0|1|2 = 192.168.1.220|221|222 (no es interesante en este momento)
todos los hosts pueden conectarse entre sí (el DNS se resuelve para cada nodo). Cada nodo ejecuta Ubuntu 18.04.3 (LTS). Docker está instalado como
- docker.io/bionic-updates,bionic-security,now 18.09.7-0ubuntu1~18.04.4 amd64 [instalado]
Los paquetes de Kubernetes actualmente instalados son
- kubeadm/kubernetes-xenial, ahora 1.16.3-00 amd64 [instalado]
- kubectl/kubernetes-xenial, ahora 1.16.3-00 amd64 [instalado]
- kubelet/kubernetes-xenial, ahora 1.16.3-00 amd64 [instalado, automático]
- kubernetes-cni/kubernetes-xenial, ahora 0.7.5-00 amd64 [instalado, automático]
utilizando un repositorio adicional como se describe en [2] (sé que lo instalé bionic
en mis máquinas virtuales, pero el repositorio "más nuevo" disponible todavía está disponible xenial
).
Mi haproxy está instalado a haproxy/bionic,now 2.0.9-1ppa1~bionic amd64 [installed]
partir de [3] repositorio.
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
Mientras intentaba configurar mi primer plano de control, ejecuté kubeadm init --control-plane-endpoint "haproxy.my.lan:6443" --upload-certs -v=6
como se describe en [4] da como resultado este error:
Error writing Crisocket information for the control-plane node
inicio de sesión completo [5]. Estoy bastante perdido si hay un error en mi configuración de haproxy o si puede haber algún fallo en Docker o en Kubernetes.
Mi /etc/docker/daemon.json
aspecto es este:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
- [1]https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/
- [2]https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-using-native-package-management
- [3]https://launchpad.net/~vbernat/+archive/ubuntu/haproxy-2.0
- [4]https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/#stacked-control-plane-and-etcd-nodes
- [5]https://pastebin.com/QD5mbiyN
Respuesta1
Si bien no pude encontrar una solución decente y creó un problema en el proyecto "kubeadm" original en github, consulte aquí:https://github.com/kubernetes/kubeadm/issues/1930.
Dado que la "clasificación" sugerida en el problema no era factible (Ubuntu está prácticamente "configurado") para mí, terminé configurando otra distribución de Docker, como se describe aquí:https://docs.docker.com/install/linux/docker-ce/ubuntu/, purgando la distribución instalada antes de iniciar la nueva instalación.
Al ejecutar Docker (Comunidad) v19.03.5
a través de kubeadm, v1.16.3
aparece la siguiente advertencia:
[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 19.03.5. Latest validated version: 18.09
Los resultados son bastante buenos, logré configurar mi clúster ha, como se describe en la documentación original.
Entonces, esto puede considerarse como unsolución alterna,NO¡Como solución a mi problema original!