Kubernetes met Minikube te installeren op Ubuntu 20.04
Minikube is een open-source gereedschap dat je helpt om een single-node Kubernetes cluster op je lokale machine op te zetten. Het maakt het gemakkelijk om een single-node Kubernetes cluster op je persoonlijke computer te draaien voor dagelijks ontwikkelingswerk. Het is cross-platform en kan geïnstalleerd worden op macOS, Linux, en Windows.
In deze zelfstudie laten we je zien hoe je Minikube op Ubuntu 20.04 server installeert.
Vereisten
- Ubuntu 20.04 desktop geïnstalleerd in je systeem.
- Minimaal 4 GB RAM en 2 of meer CPU kernen.
- Hardware virtualisatie moet ingeschakeld zijn in je lokale systeem.
- Een root wachtwoord is geconfigureerd de server.
Aan de slag
Alvorens te beginnen is het aan te raden je systeempakketten bij te werken tot de laatste versie. Je kunt ze bijwerken door het volgende commando uit te voeren:
apt-get update -y
Als alle pakketten zijn bijgewerkt, installeer je andere afhankelijkheden door het volgende commando uit te voeren:
apt-get install curl wget apt-transport-https virtualbox virtualbox-ext-pack -y
Als je klaar bent, kun je doorgaan naar de volgende stap.
Docker installeren
Vervolgens moet je Docker op je systeem installeren. Je kunt het installeren door het volgende commando uit te voeren:
apt-get install docker.io -y
Als de Docker geïnstalleerd is, start je de Docker service en schakel je hem in om te starten bij het herstarten van het systeem:
systemctl start docker
systemctl enable docker
Je kunt nu de Docker versie verifiëren met het volgende commando:
docker --version
Je zou de Docker versie moeten zien in de volgende uitvoer:
Docker version 19.03.8, build afacb8b7f0
Als je klaar bent, kun je doorgaan naar de volgende stap.
Installeer Minikube
Minikube is standaard niet beschikbaar in de Ubuntu standaard repository. Je zult dus het Minikube binaire pakket moeten downloaden van zijn officiële website. Je kunt het downloaden met het volgende commando:
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
Als de download voltooid is, kopieer je de gedownloade binary naar het systeempad met het volgende commando:
cp minikube-linux-amd64 /usr/local/bin/minikube
Geef vervolgens uitvoeringstoestemming met het volgende commando:
chmod 755 /usr/local/bin/minikube
Je kunt nu de Minikube versie verifiëren met het volgende commando:
minikube version
Je zou de volgende uitvoer moeten krijgen:
minikube version: v1.16.0 commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1
Als je klaar bent, kun je verder gaan met de volgende stap.
Installeer Kubectl
Vervolgens moet je Kubectl installeren en andere gereedschappen om applicaties op Kubernetes te beheren. Voeg eerst de GPG sleutel toe met het volgende commando:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
Voeg vervolgens de kubectl repository toe met het volgende commando:
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
Als de repository is toegevoegd, werk je de repository cache bij en installeer je Kubectl door het volgende commando uit te voeren:
apt-get update -y
apt-get install kubectl kubeadm kubectl -y
Als alle pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.
Start Minikube
Op dit punt zijn alle vereiste pakketten geïnstalleerd. Je kunt nu Minikube starten met het volgende commando:
minikube start
Je zou de volgende uitvoer moeten krijgen:
* 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
Je kunt de cluster informatie controleren met het volgende commando:
kubectl cluster-info
Je zou de volgende uitvoer moeten krijgen:
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'.
Je kunt de Kubectl standaard configuratie controleren met het volgende commando:
kubectl config view
Je zou de volgende uitvoer moeten zien:
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
Je kunt alle draaiende nodes controleren met het volgende commando:
kubectl get nodes
Je zou de volgende uitvoer moeten krijgen:
NAME STATUS ROLES AGE VERSION ubuntu2004 Ready control-plane,master 2m24s v1.20.0
Om de status van Minikube te controleren, voer je het volgende commando uit:
minikube status
Je zou de volgende uitvoer moeten krijgen:
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured timeToStop: Nonexistent
Als je klaar bent, kun je doorgaan naar de volgende stap.
Toegang tot Kubernetes Dashboard
Minikube wordt geleverd met een heleboel addons die je naar eigen behoefte kunt in- of uitschakelen. Je kunt alle addons opnoemen met het volgende commando:
minikube addons list
Je zou de volgende uitvoer moeten krijgen:
|-----------------------------|----------|--------------| | 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 | |-----------------------------|----------|--------------|
Maak vervolgens een lijst van alle container image die in het cluster draaien met het volgende commando:
kubectl get pods --all-namespaces
Je zou de volgende uitvoer moeten krijgen:
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
Schakel vervolgens het Kubernetes dashboard in en krijg de URL van het dashboard met het volgende commando:
minikube dashboard --url
Je zou de volgende uitvoer moeten krijgen:
* 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/
Conclusie
In de bovenstaande gids heb je geleerd hoe je Minikube installeert en gebruikt om een Kubernetes cluster op te zetten op Ubuntu 20.04. Je kunt nu Minikube gebruiken om Kubernetes cluster lokaal op te zetten en het vanuit de webbrowser te beheren. Voel je vrij om me te vragen als je vragen hebt.