Estoy tomando el curso Introduction to Kubernetes (LFS158x) https://training.linuxfoundation.org/training/introduction-to-kubernetes/
Y tiene una sección con minikube. Minikube es una herramienta que administra maquinas virtuales en donde corre un cluster o mejor dicho una instancia de Kubernetes en un solo nodo. (Para instalar minikibe necesitas virtualbox o vmware FYI)
Hay una serie de comandos que no quiero que se me olviden y podría ser interesantes para los demás
minikube start minikube stop minikube status minikube ssh
Minikube crea el config file en .kube /Users/(ùsuario)/.kube/config que kubectl necesita.
$ kubectl config view apiVersion: v1 clusters: - cluster: certificate-authority: /home/student/.minikube/ca.crt server: https://192.168.99.100:8443 name: minikube contexts: - context: cluster: minikube user: minikube name: minikube current-context: minikube kind: Config preferences: {} users: - name: minikube user: client-certificate: /home/student/.minikube/profiles/minikube/client.crt client-key: /home/student/.minikube/profiles/minikube/client.key
Igual puede ver información básica con:
$ kubectl cluster-info Kubernetes master is running at https://192.168.99.100:8443 KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Para abrir el dashboard
$ minikube dahsboard o $ kubectl proxy Starting to serve on 127.0.0.1:8001
Para ver el estatus de los addons (y si tiene dahsboard activado por ejemplo)
Rs-MacBook-Pro:.kube r$ minikube addons list |-----------------------------|----------|--------------|-----------------------| | ADDON NAME | PROFILE | STATUS | MAINTAINER | |-----------------------------|----------|--------------|-----------------------| | ambassador | minikube | disabled | unknown (third-party) | | auto-pause | minikube | disabled | google | | csi-hostpath-driver | minikube | disabled | kubernetes | | dashboard | minikube | enabled ✅ | kubernetes | | default-storageclass | minikube | enabled ✅ | kubernetes | | efk | minikube | disabled | unknown (third-party) | | freshpod | minikube | disabled | google | | gcp-auth | minikube | disabled | google | | gvisor | minikube | disabled | google | | helm-tiller | minikube | disabled | unknown (third-party) | | ingress | minikube | disabled | unknown (third-party) | | ingress-dns | minikube | disabled | unknown (third-party) | | istio | minikube | disabled | unknown (third-party) | | istio-provisioner | minikube | disabled | unknown (third-party) | | kubevirt | minikube | disabled | unknown (third-party) | | logviewer | minikube | disabled | google | | metallb | minikube | disabled | unknown (third-party) | | metrics-server | minikube | disabled | kubernetes | | nvidia-driver-installer | minikube | disabled | google | | nvidia-gpu-device-plugin | minikube | disabled | unknown (third-party) | | olm | minikube | disabled | unknown (third-party) | | pod-security-policy | minikube | disabled | unknown (third-party) | | portainer | minikube | disabled | portainer.io | | registry | minikube | disabled | google | | registry-aliases | minikube | disabled | unknown (third-party) | | registry-creds | minikube | disabled | unknown (third-party) | | storage-provisioner | minikube | enabled ✅ | kubernetes | | storage-provisioner-gluster | minikube | disabled | unknown (third-party) | | volumesnapshots | minikube | disabled | kubernetes | |-----------------------------|----------|--------------|-----------------------|
Con el proxy funcionando puedes acceder al API
$ curl http://localhost:8001/ { "paths": [ "/api", "/api/v1", "/apis", "/apis/apps", ...... ...... "/logs", "/metrics", "/openapi/v2", "/version" ] }
Para usar el API sin el proxy puedes usar el token
$ TOKEN=$(kubectl describe secret -n kube-system $(kubectl get secrets -n kube-system | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t' | tr -d " ")
Y el APISERVER
$ APISERVER=$(kubectl config view | grep https | cut -f 2- -d ":" | tr -d " ")
Y el command que necesutas es
curl $APISERVER --header "Authorization: Bearer $TOKEN" --insecure