Kubernetes és un sistema d'orquestració de contenidors que es pot utilitzar per automatitzar la implementació, l'escalat i l'administració d'aplicacions. MicroK8s és una implementació de Kubernetes que permet executar Kubernetes a Snap. MicroK8s és un paquet únic que s'executa en els principals sistemes operatius basats en Linux. Inclou un registre docker perquè puguis crear i implementar fàcilment contenidors al teu sistema. Microk8s és ràpid, lleuger i executa tots els serveis de Kubernetes de manera nativa.
En aquest tutorial, t'ensenyem com instal·lar MicroK8s i posar en marxa el teu clúster Kubernetes.
Requisits
- Un servidor al núvol que executi Ubuntu 22.04 amb 4 GB de RAM.
- Una contrasenya root establerta al teu servidor.
Comencem
Primer, actualitza el teu servidor a l'última versió amb l'ordre següent:
# apt-get update && apt-get upgrade -yUn cop actualitzat el teu servidor al núvol, reinicia'l per aplicar tots els canvis.
Instal·la MicroK8s
Primer, hauràs d'instal·lar Snap per després instal·lar MicroK8s. Pots instal·lar Snap amb l'ordre següent:
# apt-get install snapd -yUn cop instal·lat Snap, pots instal·lar MicroK8s utilitzant l'ordre Snap tal com es mostra més avall:
# snap install microk8s --classicUn cop instal·lat MicroK8s, pots consultar la informació de MicroK8s amb l'ordre següent:
# snap info microk8sHauries de veure el resultat següent:
name: microk8s
summary: Kubernetes for workstations and appliances
publisher: Canonical✓
contact: https://github.com/ubuntu/microk8s
license: unset
description: |
MicroK8s is a small, fast, secure, single node Kubernetes that installs on just
about any Linux
box. Use it for offline development, prototyping, testing, or use it on a VM
as a small, cheap, reliable k8s for CI/CD. It's also a great k8s for
appliances - develop your IoT apps for k8s and deploy them to MicroK8s on your boxes.
També pots comprovar l'estat del desplegament de MicroK8s amb l'ordre següent:
# microk8s.statusPodràs veure l'estat de MicroK8s amb els complements disponibles en el resultat següent:
microk8s is running
addons:
knative: disabled
jaeger: disabled
fluentd: disabled
gpu: disabled
storage: disabled
registry: disabled
rbac: disabled
ingress: disabled
dns: disabled
metrics-server: disabled
linkerd: disabled
prometheus: disabled
istio: disabled
dashboard: disabled
Per consultar la informació del clúster, utilitza l'ordre següent:
# microk8s.kubectl cluster-infoHauries de veure el resultat següent:
Kubernetes master is running at https://127.0.0.1:16443Per diagnosticar i depurar possibles problemes del clúster, utilitza ‘kubectl cluster-info dump’.
Treballar amb MicroK8s
També pots llistar els nodes de MicroK8s amb l'ordre següent:
# microk8s.kubectl get nodesHauries de veure el resultat següent:
NAME STATUS ROLES AGE VERSION
ubuntu2204 Ready 2m14s v1.15.0
O amb l'ordre següent:
# microk8s.kubectl get nodes -o wideHauries de veure el resultat següent:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION
CONTAINER-RUNTIME
ubuntu2204 Ready 3m5s v1.15.0 192.168.0.2 Ubuntu 22.04 LTS 4.15.0-20-generic
containerd://1.2.5
MicroK8s inclou molts complements. Pots habilitar-los o deshabilitar-los en funció de les teves necessitats.
Pots habilitar els complements dns del tauler amb l'ordre següent:
# microk8s.enable dashboard dnsHauries de veure el resultat següent:
Applying manifest
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
service/monitoring-grafana created
service/monitoring-influxdb created
service/heapster created
deployment.extensions/monitoring-influxdb-grafana-v4 created
serviceaccount/heapster created
clusterrolebinding.rbac.authorization.k8s.io/heapster created
configmap/heapster-config created
configmap/eventer-config created
deployment.extensions/heapster-v1.5.2 created
Si RBAC no està habilitat, accedeix al tauler utilitzant el testimoni predeterminat recuperat amb:
# token=$(microk8s.kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
# microk8s.kubectl -n kube-system describe secret $tokenEn una configuració habilitada per a RBAC (microk8s.enable RBAC) has de crear un usuari amb restricció de permisos tal com es mostra a https://github.com/kubernetes/dashboard/wiki/Creating-sample-user
Enabling DNS
Applying manifest
serviceaccount/coredns created
configmap/coredns created
deployment.apps/coredns created
service/kube-dns created
Restarting kubelet
DNS is enabled
Per habilitar les extensions d'emmagatzematge, utilitza l'ordre següent:
# microk8s.enable storageHauries de veure el resultat següent:
Enabling default storage class
deployment.extensions/hostpath-provisioner created
storageclass.storage.k8s.io/microk8s-hostpath created
Storage will be available soon
Després d'habilitar les extensions necessàries, consulta la informació del clúster amb l'ordre següent:
# microk8s.kubectl cluster-infoHauries de veure el resultat següent:
Kubernetes master is running at https://127.0.0.1:16443
Heapster is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/heapster/proxy
CoreDNS is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Grafana is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
InfluxDB is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/monitoring-influxdb:http/proxy
Com desplegar pods i contenidors
Pots crear i desplegar pods i contenidors amb MicroK8s fàcilment.
Crearem un desplegament de NGINX amb el contenidor amb l'ordre següent:
# microk8s.kubectl run nginx --replicas 1 --image nginxHauries de veure el resultat següent:
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed
in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create
instead.
deployment.apps/nginx created
Ara pots llistar els desplegaments amb l'ordre següent:
# microk8s.kubectl get deploymentsHauries de veure el resultat següent:
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 2m33s
I llistar els pods amb l'ordre següent:
# microk8s.kubectl get podsHauries de veure el resultat següent:
NAME READY STATUS RESTARTS AGE
nginx-7bb7cd8db5-n88qm 1/1 Running 0 2m47s
Després de desplegar el contenidor de NGINX, veuràs el servei NGINX amb l'ordre següent:
# microk8s.kubectl get servicesHauries de veure el resultat següent:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 443/TCP 18m
nginx ClusterIP 10.152.183.127 80/TCP 45s
Si vols eliminar MicroK8s, primer elimina el desplegament i el servei de NGINX amb l'ordre següent:
# microk8s.kubectl delete deployment nginx
# microk8s.kubectl delete service nginxDesprés, elimina MicroK8s del teu sistema completament amb l'ordre següent:
# microk8s.reset
# snap remove microk8sEnhorabona! Ja pots implementar i administrar contenidors amb MicroK8s.
Tens cap pregunta? No dubtis a contactar amb nosaltres. Estarem encantats d'ajudar-te en tot el que necessitis 🙂