Important
Aquest article és obsolet i pot contenir informació desactualitzada. Si us plau, consulta la documentació més recent per obtenir la informació actualitzada.
Kubernetes és un sistema d'orquestració de contenidors que es pot utilitzar per automatitzar el desplegament, 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 desplegar 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 18.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 estigui 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 s'hagi instal·lat Snap, pots instal·lar MicroK8s utilitzant l'ordre Snap com es mostra més avall:
# snap install microk8s --classicUn cop s'hagi instal·lat MicroK8s, pots comprovar 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 comprovar la informació del clúster, fes-ho 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: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
ubuntu1804 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
ubuntu1804 Ready 3m5s v1.15.0 192.168.0.2 Ubuntu 18.04 LTS 4.15.0-20-generic
containerd://1.2.5
MicroK8s inclou molts complements incorporats. 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 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, fes-ho amb 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 requerides, comprova 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 fer una llista dels 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 fer una llista dels 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 per complet amb l'ordre següent:
# microk8s.reset
# snap remove microk8sEnhorabona! Ja pots desplegar i administrar contenidors amb MicroK8s.
Tens alguna pregunta? No dubtis a contactar amb nosaltres. Estarem encantats d'ajudar-te en tot el que necessitis 🙂