So installieren Sie Kubernetes mit Minikube auf Ubuntu 20.04

Minikube ist ein Open-Source-Tool, das Ihnen hilft, einen Single-Node-Kubernetes-Cluster auf Ihrem lokalen Rechner einzurichten. Es macht es einfach, einen Single-Node-Kubernetes-Cluster auf Ihrem persönlichen Computer für die tägliche Entwicklungsarbeit zu betreiben. Es ist plattformübergreifend und kann auf macOS, Linux und Windows installiert werden.

In diesem Tutorial zeigen wir Ihnen, wie Sie Minikube auf einem Ubuntu 20.04 Server installieren.

Voraussetzungen

  • Ubuntu 20.04 Desktop ist auf Ihrem System installiert.
  • Mindestens 4 GB RAM und 2 oder mehr CPU-Kerne.
  • Die Hardware-Virtualisierung muss in Ihrem lokalen System aktiviert sein.
  • Der Server ist mit einem Root-Passwort konfiguriert.

Erste Schritte

Bevor Sie beginnen, wird empfohlen, Ihre Systempakete auf die neueste Version zu aktualisieren. Sie können sie aktualisieren, indem Sie den folgenden Befehl ausführen:

apt-get update -y

Sobald alle Pakete aktualisiert sind, installieren Sie weitere Abhängigkeiten, indem Sie den folgenden Befehl ausführen:

apt-get install curl wget apt-transport-https virtualbox virtualbox-ext-pack -y

Sobald Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Installieren von Docker

Als nächstes müssen Sie Docker auf Ihrem System installieren. Sie können es installieren, indem Sie den folgenden Befehl ausführen:

apt-get install docker.io -y

Sobald Docker installiert ist, starten Sie den Docker-Dienst und aktivieren Sie ihn so, dass er beim Neustart des Systems gestartet wird:

systemctl start docker
systemctl enable docker

Sie können nun die Docker-Version mit folgendem Befehl überprüfen:

docker --version

Sie sollten die Docker-Version in der folgenden Ausgabe sehen:

Docker version 19.03.8, build afacb8b7f0

Wenn Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Minikube installieren

Standardmäßig ist Minikube nicht im Standard-Repository von Ubuntu verfügbar. Daher müssen Sie das Minikube-Binärpaket von seiner offiziellen Website herunterladen. Sie können es mit dem folgenden Befehl herunterladen:

wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

Sobald der Download abgeschlossen ist, kopieren Sie das heruntergeladene Binärpaket mit folgendem Befehl in den Systempfad:

cp minikube-linux-amd64 /usr/local/bin/minikube

Geben Sie anschließend die Ausführungsberechtigung mit dem folgenden Befehl an:

chmod 755 /usr/local/bin/minikube

Sie können nun die Minikube-Version mit dem folgenden Befehl überprüfen:

minikube version

Sie sollten die folgende Ausgabe erhalten:

minikube version: v1.16.0
commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1

Wenn Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Kubectl installieren

Als Nächstes müssen Sie Kubectl und andere Tools zur Verwaltung von Anwendungen auf Kubernetes installieren. Fügen Sie zunächst den GPG-Schlüssel mit dem folgenden Befehl hinzu:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

Als Nächstes fügen Sie das kubectl-Repository mit dem folgenden Befehl hinzu:

echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list

Sobald das Repository hinzugefügt ist, aktualisieren Sie den Repository-Cache und installieren Sie Kubectl mit folgendem Befehl:

apt-get update -y
apt-get install kubectl kubeadm kubectl -y

Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Minikube starten

Zu diesem Zeitpunkt sind alle erforderlichen Pakete installiert. Sie können nun Minikube mit dem folgenden Befehl starten:

minikube start

Sie sollten die folgende Ausgabe erhalten:

* minikube v1.16.0 on Ubuntu 20.04 (kvm/amd64)
* Using the none driver based on user configuration
* Starting control plane node minikube in cluster minikube
* Running on localhost (CPUs=2, Memory=3936MB, Disk=100726MB) ...
* OS release is Ubuntu 20.04 LTS
* Preparing Kubernetes v1.20.0 on Docker 19.03.8 ...
  - kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
    > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubelet.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm: 37.40 MiB / 37.40 MiB [---------------] 100.00% 27.29 MiB p/s 1s
    > kubectl: 38.37 MiB / 38.37 MiB [---------------] 100.00% 27.60 MiB p/s 1s
    > kubelet: 108.69 MiB / 108.69 MiB [-------------] 100.00% 42.08 MiB p/s 3s
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Configuring local host environment ...
* 
! The 'none' driver is designed for experts who need to integrate with an existing VM
* Most users should use the newer 'docker' driver instead, which does not require root!
* For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* 
! kubectl and minikube configuration will be stored in /root
! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:
* 
  - sudo mv /root/.kube /root/.minikube $HOME
  - sudo chown -R $USER $HOME/.kube $HOME/.minikube
* 
* This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
* Verifying Kubernetes components...
* Enabled addons: storage-provisioner, default-storageclass
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

Sie können die Cluster-Informationen mit dem folgenden Befehl überprüfen:

kubectl cluster-info

Sie sollten die folgende Ausgabe erhalten:

Kubernetes control plane is running at https://45.58.38.77:8443
KubeDNS is running at https://45.58.38.77:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Sie können die Kubectl-Standardkonfiguration mit dem folgenden Befehl überprüfen:

kubectl config view

Sie sollten die folgende Ausgabe sehen:

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    server: https://45.58.38.77:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    namespace: default
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /root/.minikube/profiles/minikube/client.crt
    client-key: /root/.minikube/profiles/minikube/client.key

Sie können alle laufenden Knoten mit dem folgenden Befehl überprüfen:

kubectl get nodes

Sie sollten die folgende Ausgabe erhalten:

NAME         STATUS   ROLES                  AGE     VERSION
ubuntu2004   Ready    control-plane,master   2m24s   v1.20.0

Um den Status von Minikube zu überprüfen, führen Sie den folgenden Befehl aus:

minikube status

Sie sollten die folgende Ausgabe erhalten:

minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
timeToStop: Nonexistent

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf das Kubernetes-Dashboard

Minikube wird mit einer Vielzahl von Addons geliefert, die Sie je nach Bedarf aktivieren oder deaktivieren können. Sie können alle Addons mit dem folgenden Befehl auflisten:

minikube addons list

Sie sollten die folgende Ausgabe erhalten:

|-----------------------------|----------|--------------|
|         ADDON NAME          | PROFILE  |    STATUS    |
|-----------------------------|----------|--------------|
| ambassador                  | minikube | disabled     |
| csi-hostpath-driver         | minikube | disabled     |
| dashboard                   | minikube | disabled     |
| default-storageclass        | minikube | enabled ?   |
| efk                         | minikube | disabled     |
| freshpod                    | minikube | disabled     |
| gcp-auth                    | minikube | disabled     |
| gvisor                      | minikube | disabled     |
| helm-tiller                 | minikube | disabled     |
| ingress                     | minikube | disabled     |
| ingress-dns                 | minikube | disabled     |
| istio                       | minikube | disabled     |
| istio-provisioner           | minikube | disabled     |
| kubevirt                    | minikube | disabled     |
| logviewer                   | minikube | disabled     |
| metallb                     | minikube | disabled     |
| metrics-server              | minikube | disabled     |
| nvidia-driver-installer     | minikube | disabled     |
| nvidia-gpu-device-plugin    | minikube | disabled     |
| olm                         | minikube | disabled     |
| pod-security-policy         | minikube | disabled     |
| registry                    | minikube | disabled     |
| registry-aliases            | minikube | disabled     |
| registry-creds              | minikube | disabled     |
| storage-provisioner         | minikube | enabled ?   |
| storage-provisioner-gluster | minikube | disabled     |
| volumesnapshots             | minikube | disabled     |
|-----------------------------|----------|--------------|

Als Nächstes listen Sie alle Container-Images, die im Cluster laufen, mit dem folgenden Befehl auf:

kubectl get pods --all-namespaces

Sie sollten die folgende Ausgabe erhalten:

NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-74ff55c5b-skf9d              1/1     Running   0          3m45s
kube-system   etcd-ubuntu2004                      1/1     Running   0          3m54s
kube-system   kube-apiserver-ubuntu2004            1/1     Running   0          3m54s
kube-system   kube-controller-manager-ubuntu2004   1/1     Running   0          3m54s
kube-system   kube-proxy-w8q6d                     1/1     Running   0          3m45s
kube-system   kube-scheduler-ubuntu2004            1/1     Running   0          3m54s
kube-system   storage-provisioner                  1/1     Running   0          3m59s

Aktivieren Sie als nächstes das Kubernetes-Dashboard und rufen Sie die URL des Dashboards mit dem folgenden Befehl ab:

minikube dashboard --url

Sie sollten die folgende Ausgabe erhalten:

* Enabling dashboard ...
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

You can now access and manage the Kubernetes cluster using the URL http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

Fazit

In der obigen Anleitung haben Sie gelernt, wie Sie Minikube installieren und zum Einrichten eines Kubernetes-Clusters unter Ubuntu 20.04 verwenden. Sie können Minikube nun verwenden, um einen Kubernetes-Cluster lokal einzurichten und ihn über den Webbrowser zu verwalten. Sie können mich gerne fragen, wenn Sie Fragen haben.

Das könnte dich auch interessieren …