Kubernetes mit kubespray installieren
Schritt-für-Schritt-Anweisungen
Howto: Kubernetes mit Kubespray installieren, einschließlich der Umgebungseinstellungen, der Konfiguration der Inventardatei und der Ausführung der Ansible-Playbooks.
Voraussetzungen
Hardware- und Softwareanforderungen
- Stellen Sie sicher, dass Sie mehrere Maschinen (mindestens 3 Knoten: 1 Master und 2 Worker) mit folgenden Spezifikationen haben:
- Ubuntu 16.04/18.04 oder CentOS 7 installiert.
- Mindestens 2 GB RAM pro Maschine (mehr RAM wird für größere Cluster empfohlen).
- Netzwerkverbindung und SSH-Zugriff von der Kubespray-Steuerungsmaschine zu jedem Knoten.
- Für Hochverfügbarkeit sollten Knoten mit 16 GB RAM, 100 GB Festplatte und 6 CPU-Kernen in Betracht gezogen werden.
Einrichtung der Steuerungsmaschine
-
Installieren Sie Git, falls noch nicht vorhanden:
sudo apt install git-all
-
Installieren Sie Python (2.7 oder 3.5+) und pip:
sudo apt update sudo apt install python3 python3-pip
-
Installieren Sie Ansible und andere Abhängigkeiten. Kubespray bietet ein Skript, um dies zu ermöglichen:
git clone https://github.com/kubernetes-sigs/kubespray.git cd kubespray git checkout release-2.20 # Optional: Ein stabilerer Release auswählen python3 -m venv venv # Erstellen Sie eine Python- virtuelle Umgebung source venv/bin/activate # Aktivieren Sie die virtuelle Umgebung pip install -r requirements.txt # Installieren Sie Ansible und andere Abhängigkeiten
Inventar konfigurieren
-
Kopieren Sie das Beispiel-Inventar:
cp -r inventory/sample inventory/mycluster
-
Bearbeiten Sie die Datei
inventory/mycluster/hosts.ini
, um Ihre Knoten hinzuzufügen:[all] node1 ansible_host=10.10.1.3 ansible_user=ubuntu node2 ansible_host=10.10.1.4 ansible_user=ubuntu node3 ansible_host=10.10.1.5 ansible_user=ubuntu [kube-master] node1 [kube-node] node2 node3
-
Wenn Sie einen anderen Benutzer verwenden, ersetzen Sie
ubuntu
durch Ihren Benutzernamen. -
Sie können auch das Skript
inventory_builder
verwenden, um die Inventar-Datei zu generieren:declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5) HOST_PREFIX=dcm-cp- KUBE_CONTROL_HOSTS=3 CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
Konfiguration anpassen
-
Passen Sie die Kubernetes-Cluster-Einstellungen in der Datei
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
an. Beispiel:kube_network_plugin: flannel kubeconfig_localhost: true
-
Für Hochverfügbarkeit konfigurieren Sie eine VIP und einen Lastenausgleicher:
# In inventory/mycluster/group_vars/all/all.yml kube_vip_arp_enabled: true kube_vip_enabled: true kube_vip_controlplane_enabled: true kube_vip_address: 10.7.12.250 # Aktualisieren Sie mit der richtigen VIP kube_vip_interface: eno1 # Aktualisieren Sie mit der richtigen Schnittstelle
Cluster bereitstellen
- Führen Sie das Ansible-Playbook aus, um Kubernetes zu bereitstellen:
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
Nach der Bereitstellung
- Nach Abschluss der Bereitstellung finden Sie eine
kubeconfig
-Datei im Verzeichnisinventory/mycluster/artifacts
. Diese Datei ist erforderlich, um mit Ihrem Kubernetes-Cluster überkubectl
zu interagieren.export KUBECONFIG=inventory/mycluster/artifacts/admin.conf kubectl get nodes
Fehlerbehebung und Zugriff
- Um Probleme zu beheben oder auf Ihren Cluster zuzugreifen, stellen Sie sicher, dass das
kubectl
-Binary auf Ihrer Steuerungsmaschine oder auf einem anderen Rechner installiert ist, von dem aus Sie den Cluster verwalten möchten. - Falls Sie Probleme wie nicht bereitgestellte Worker-Knoten oder andere Pod-Planungsschwierigkeiten begegnen, prüfen Sie die Protokolle und passen Sie die Konfiguration entsprechend an.