Hi

Seit mehreren Tagen versuche ich nun erfolglos ein Kubernetes-HA-Cluster nach https://github.com/thkukuk/kubic-control zu bauen. Ziel ist es, 3 Master und einen HA-Proxy zu erstellen.

Step 1
---------
Ich installiere 4 frische VMs mit Kubic/MicroOS -> 2 Cores, 2GB RAM, 20 GB Storage:

1. VM -> Role "Kubic Admin Knoten" -> kubemaster01.devel
2. VM -> Role "Zusätzlicher Knoten" -> kubemaster02.devel
3. VM -> Role "Zusätzlicher Knoten" -> kubemaster03.devel
4. VM -> Role "Kubic Loadbalancer Knoten" -> kubeproxy01.devel

Im Installationsdialog ändere ich:
* die Zeitzone von global auf D/Berlin
* in den Netzwerkeinstellung einen statischen Hostnamen und "nein" -> keinen Hostnamen per DHCP setzen

Alle 4 sind im gleichen Subnet und können untereinander ihren Hostnamen sowie FQDN pingen. Da das Image eine Woche alt ist mache ich gleich (transactional-)Updates und reboote.

Step 2
---------

* salt-key -L zeigt alle Hosts und salt-key -A akzeptiert die Salt-minions
kubemaster01:~ # salt-key -L
Accepted Keys:
kubemaster02.devel
kubemaster03.devel
kubeproxy01.devel
Denied Keys:
Unaccepted Keys:
Rejected Keys:
kubemaster01:~ #


OK

Step 3
--------

auf kubemaster01:
kubicctl init --haproxy kubeproxy01.devel --multi-master kubeproxy01.devel
Initializing kubernetes master can take several minutes, please be patient.
Setting up multi-master kubernetes node (reacheable as 'kubeproxy01.devel') with weave
Configure haproxy on node kubeproxy01.devel
Initialize Kubernetes control-plane
Deploy weave
Deploy Kubernetes Reboot Daemon (kured)
First Kubernetes master succesfully setup.
Please add at minimum two further master nodes!

Auch das läuft problemlos durch. Nach ca. 5 Minuten hat sich das Log beruhigt, weiter geht's:
Step 4
---------
als root auf kubemaster01:

mkdir ~/.kube/
kubicctl kubeconfig > ~/.kube/config


läuft durch ,aber im Log erscheint:
Apr 29 12:03:08 kubemaster01 kubicd[1570]: time="2021-04-29T12:03:08+02:00" level=info msg="Received: fetch kubeconfig"
Apr 29 12:03:08 kubemaster01 kubicd[1570]: time="2021-04-29T12:03:08+02:00" level=info msg="Function: /api.Kubeadm/FetchKubeconfig, Caller: admin, Duration: 1.4941ms, Error: <nil>"
Nil und info, OK. kubectl get nodes zeigt richtig an:

kubemaster01:~ # kubectl get nodes
NAME STATUS ROLES AGE VERSION
kubemaster01 Ready control-plane,master 6m24s v1.20.6

kubemaster01:~ # kubicctl status
Kubicctl version 0.10.2
Kubicd version: 0.10.2
kubeadm version: v1.21.0
Status of deployed daemonsets (yaml):
- /usr/share/k8s-yaml/weave/weave.yaml: up to date
- /usr/share/k8s-yaml/kured/kured.yaml: up to date
Cannot load k8s-kustomize.conf: open /var/lib/kubic-control/k8s-kustomize.conf: no such file or directory

Ev ist das ja unkritisch, also weiter.

Step 5
---------
als root auf kubemaster01:
kubemaster01:~ # kubicctl node add --type=master kubemaster02.devel
Generate new token ...
Upload certificates ...
kubemaster02.devel: adding node...
kubemaster02.devel: joining cluster...
Adding node kubemaster02.devel failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded



Das Setup schlägt fehl, die Logs generieren permanent Meldungen.

Was mache ich falsch?