# Minikube tutorial # Minikube [minikube tutorial](https://kubernetes.io/docs/tutorials/hello-minikube/) [minikube docs](https://minikube.sigs.k8s.io/docs/handbook/deploying/) Lightweight Kubernetes on local VM - `minikube start` start minikube vm - `minikube dashboard` dashboard in browser # Deployments [kubectl overview](https://kubernetes.io/docs/reference/kubectl/) - *pod* = group of one or more containers w/ shared admin and networking - *deployment* manage creation/scaling of pods - healthcheck and restarts pods - `kubectl create` create a deployment ```bash # Run a test container image that includes a webserver kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080 ``` - `kubectl get deployments` view deployments - `kubectl get events` view cluster events - `kubectl config view` view kubectl configuration - `kubectl get pods` view pods - `kubectl logs <pod_name>` view application logs for a contianer # Services - By default, pods only accessible via internal IP - *Service* exposes pod to external network - `kubectl expose deployment hello-node --type=LoadBalancer --port=8080` - expose pod to public internet - `--type=LoadBalancer` flag indicates service exposed outside of cluster - cloud providers provision external IP for service - minikube exposes via `minikube service <deployment_name>` - `kubectl get services` view services # Addons - `minikube addons list` list addons - `minikube addons enable metrics-server` enable addon `metrics-server` - `kubectl get pod,svc -n kube-system` view pod and service created by addon - `kubectl top pods` check output from `metrics-server` - `minikube addons disable metrics-server` disable metrics-server # Clean up - `kubectl delete service hello-node` delete service - `kubectl delete deployment hello-node` delete deployment - `minikube stop` stop minikube cluster - `minikube delete` delete minikube vm