Zusätzlich kann eine Kubernetes Demo mit einem Nignx Webserver verwendet werden um den Zustand des Clusters zu verifizieren.
- Master-Node (ubuntu 22.04)
- mindestens 2 Worker-Nodes (ubuntu 22.04)
- einen host auf dem Ansible installiert ist
- 2 GB Ram oder mehr pro Host
- mindestens 2 CPUs pro Host
- eine Netzwerkverbindung zwischen allen Hosts
Der Ansible Host benötigt eine SSH Verbindung in die Master- und die Worker-Nodes Es kann je nach Präferenz ein RSA oder ein ed25519 Key erstellt werden. Beides funktioniert.
ssh-keygen -t ed25519 (oder rsa)
ssh-copy-id -i /path/to/ed25519.pub ubuntu@IP-each-node
Die ansible.cfg aus dem Repo kann verwendet werden. Alternativ kann auch durch das folgende Kommando ein neues File erstellt werden. In beiden Fällen sollte die Kommandos zum testen benutzt werden.
ansible-config init -t all --disabled > ansible.cfg
Die folgenden Werte sollten in der ansible.cfg stehen.
[defaults]
remote_user=ubuntu
[privilege_escalation]
become=True
become_method=sudo
ansible --version
ansible-config view
In der ansible.cfg ist zu beachten, dass der User Ubuntu durch die Variable für alle Playbooks festgelegt ist. Wenn ein andere Nutzer benötigt wird, muss dies in der ansible.cfg definiert werden. Das gleiche gilt für die Sudo-Rechte.
ansible -i inventory.yaml all -m ping
ansible -K -i inventory.yaml all -m ping #Falls ein Fehler zu den sudo rechten angezeigt wird
ansible-playbook -K -i inventory.yaml kubeadm-playbooks/1-setup-user.yaml
ansible-playbook -i inventory.yaml kubeadm-playbooks/2-setup-kube-dependencies.yaml
ansible-playbook -i inventory.yaml kubeadm-playbooks/3-setup-master.yaml
ansible-playbook -i inventory.yaml kubeadm-playbooks/4-join-worker.yaml
ansible-playbook -i inventory.yaml kubernetes-demo/demo-playbook.yaml
Für die verifizierung ist eine SSH-Verbindung in die Master node nötig.
kubectl get all --all-namespaces
kubectl describe nodes
kubectl get pods -o wide
kubectl get svc
curl localhost:32000 nginx-service/NodePort