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:
- VM -> Role “Kubic Admin Knoten” -> kubemaster01.devel
- VM -> Role “Zusätzlicher Knoten” -> kubemaster02.devel
- VM -> Role “Zusätzlicher Knoten” -> kubemaster03.devel
- 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?