Kubic Cluster-Setup fails

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?