Minikube Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 112: Line 112:
=Mount=
=Mount=
{{External|https://minikube.sigs.k8s.io/docs/handbook/mount/}}
{{External|https://minikube.sigs.k8s.io/docs/handbook/mount/}}
If minikube runs in its own VM, host directories can be exposed as hostPath only if they are mounted in the VM. This issue does not exist if minikube does not use a VM (see minikube start --driver=none options, for more details see {{Minikube Concepts#Drivers|Minikube Concepts | Drivers}}).


Also see: {{Internal|Kubernetes_Storage_Concepts#hostPath_on_single-node_Kubernetes_Clusters_.28minikube.2C_Docker_Desktop_Kubernetes.29|hostPath on single-node Kubernetes Clusters (minikube, Docker_Desktop_Kubernetes)}}
Also see: {{Internal|Kubernetes_Storage_Concepts#hostPath_on_single-node_Kubernetes_Clusters_.28minikube.2C_Docker_Desktop_Kubernetes.29|hostPath on single-node Kubernetes Clusters (minikube, Docker_Desktop_Kubernetes)}}

Revision as of 21:09, 3 March 2021

External

Internal

Overview

Administration is done with minikube.

Addons

minikube instance must be running for "addons" to work.

minikube addons list
minikube addons enable <addon-name>

Start

minikube start

  minikube v1.12.3 on Darwin 10.14.6
✨  Automatically selected the docker driver
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
💾  Downloading Kubernetes v1.18.3 preload ...
    > preloaded-images-k8s-v5-v1.18.3-docker-overlay2-amd64.tar.lz4: 510.91 MiB
🔥  Creating docker container (CPUs=2, Memory=8100MB) ...
🐳  Preparing Kubernetes v1.18.3 on Docker 19.03.8 ...
🔎  Verifying Kubernetes components...
🌟  Enabled addons: default-storageclass, storage-provisioner
🏄  Done! kubectl is now configured to use "minikube"

❗  /usr/local/bin/kubectl is version 1.16.6-beta.0, which may be incompatible with Kubernetes 1.18.3.
💡  You can also use 'minikube kubectl -- get pods' to invoke a matching version

Kubernetes Configuration at Startup

https://minikube.sigs.k8s.io/docs/handbook/config/#modifying-kubernetes-defaults
minikube start --extra-config=.... --extra-config=...
minikube start --extra-config=apiserver.enable-admission-plugins=PodSecurityPolicy

Custom Configuration Files

Files placed in ~/.minikube/files (including recursive directories) are transferred into minikube VM. A file placed in ~/.minikube/files/etc/tokens.csv is copied in the VM as /etc/token.csv. That can actually be verified by minikube ssh into the VM after boot.

Start with Admission Controller Enabled

See Enable Pod Security Policies below for an example how to start with a PodSecurityPolicy admission controller.

Status

minikube status

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

Stop

minikube stop

✋  Stopping node "minikube"  ...
🛑  Powering off "minikube" via SSH ...
🛑  1 nodes stopped.

Dashboard

minikube dashboard

Version

minikube version

Delete

Deletes a local Kubernetes cluster. This command deletes the VM, and removes all associated files.

minikube delete --all --purge

--all deletes all profiles.

--purge deletes delete the '.minikube' folder from the user directory.

Enable Pod Security Policies

https://minikube.sigs.k8s.io/docs/tutorials/using_psp/
minikube stop
minikube start --extra-config=apiserver.enable-admission-plugins=PodSecurityPolicy --addons=pod-security-policy

CRI-O

CRI-O Support on minikube

Mount

https://minikube.sigs.k8s.io/docs/handbook/mount/

If minikube runs in its own VM, host directories can be exposed as hostPath only if they are mounted in the VM. This issue does not exist if minikube does not use a VM (see minikube start --driver=none options, for more details see Template:Minikube Concepts).

Also see:

hostPath on single-node Kubernetes Clusters (minikube, Docker_Desktop_Kubernetes)

Troubleshooting

https://minikube.sigs.k8s.io/docs/handbook/troubleshooting/
minikube logs
minikube start --alsologtostderr --v=2

Obtaining details about kube-apiserver startup arguments:

kubectl -n kube-system describe pod kube-apiserver-minikube

SSH into the minikube VM:

minikube ssh

To get more details about IP and port:

minikube ssh --v=2 --alsologtostderr

Then you can use the IP address (127.0.0.1) and the port to connect via native SSH:

ssh docker@127.0.0.1 -p 32799 -i ~/.minikube/machines/minikube/id_rsa

For file transfer, a local directory can be mounted into the minikube VM (failed last time I tried it):

minikube mount ~/tmp/minikube:/tmp/temporary

Files can be transferred back and forth via scp:

scp -P 32799 -i ~/.minikube/machines/minikube/id_rsa docker@127.0.0.1:/var/tmp/minikube/kubeadm.yaml .

hostPath Mount Troubleshooting

ssh into the VM:

minikube ssh

Find the container for the pod in question:

docker ps

Describe the container:

docker inspect <container-id>

Look for "Binds".