• Home
  • LLMs
  • Python
  • Docker
  • Kubernetes
  • Java
  • Maven
  • All
  • About
Kubernetes | Start MiniKube
  1. Notes
  2. Start minikube
  3. Verify minikube
  4. Configure docker environment variables to use minikube's Docker daemon
  5. Minikube's Pods/Services/Containers
  6. Stop minikube

  1. Notes
    See this page for more details about MiniKube: https://kubernetes.io/docs/setup/learning-environment/minikube/
  2. Start minikube
    $ minikube start --driver='virtualbox' --cpus=2 --memory='2g' --disk-size='2g'
    😄  minikube v1.12.1 on Ubuntu 18.04
    ✨  Using the virtualbox driver based on user configuration
    💿  Downloading VM boot image ...
        > minikube-v1.12.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s
        > minikube-v1.12.0.iso: 173.57 MiB / 173.57 MiB [] 100.00% 63.04 MiB p/s 3s
    👍  Starting control plane node minikube in cluster minikube
    💾  Downloading Kubernetes v1.18.3 preload ...
        > preloaded-images-k8s-v4-v1.18.3-docker-overlay2-amd64.tar.lz4: 526.27 MiB
    🔥  Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=2048MB) ...
    🐳  Preparing Kubernetes v1.18.3 on Docker 19.03.12 ...
    🔎  Verifying Kubernetes components...
    🌟  Enabled addons: default-storageclass, storage-provisioner
    🏄  Done! kubectl is now configured to use "minikube"
    Note the following options:
    • --driver='virtualbox':
      Driver is one of: virtualbox, vmwarefusion, kvm2, vmware, none, docker, podman (experimental)
      (defaults to auto-detect)

    • --cpus=2:
      Number of CPUs allocated to Kubernetes.

    • --memory='2g':
      Amount of RAM to allocate to Kubernetes (format: <number>[<unit>], where unit = b, k, m or g).

    • --disk-size='2g':
      Disk size allocated to the minikube VM (format: <number>[<unit>], where unit = b, k, m or g).
  3. Verify minikube
    • Verify minikube:
      $ minikube status
      minikube
      type: Control Plane
      host: Running
      kubelet: Running
      apiserver: Running
      kubeconfig: Configured
    • Verify kubectl configuration:
      $ kubectl config view
      apiVersion: v1
      clusters:
      - cluster:
          certificate-authority: $HOME/.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/.minikube/profiles/minikube/client.crt
          client-key: $HOME/.minikube/profiles/minikube/client.key
      You can also check the content of the the file: ~/.kube/config

    • Verify cluster information:
      $ 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
  4. Configure docker environment variables to use minikube's Docker daemon
    • Configure docker environment variables to use minikube's Docker daemon:
      $ minikube docker-env
      export DOCKER_TLS_VERIFY="1"
      export DOCKER_HOST="tcp://192.168.99.100:2376"
      export DOCKER_CERT_PATH="$HOME/.minikube/certs"
      export MINIKUBE_ACTIVE_DOCKERD="minikube"
      
      # To point your shell to minikube's docker-daemon, run:
      # eval $(minikube -p minikube docker-env)
    • Configure your shell:
      $ eval $(minikube -p minikube docker-env)
    • List Minikube's Docker images:
      $ docker images
      REPOSITORY                                TAG        IMAGE ID            CREATED             SIZE
      kubernetesui/dashboard                    v2.0.1     85d666cddd04        2 months ago        223MB
      k8s.gcr.io/kube-proxy                     v1.18.3    3439b7546f29        2 months ago        117MB
      k8s.gcr.io/kube-controller-manager        v1.18.3    da26705ccb4b        2 months ago        162MB
      k8s.gcr.io/kube-scheduler                 v1.18.3    76216c34ed0c        2 months ago        95.3MB
      k8s.gcr.io/kube-apiserver                 v1.18.3    7e28efa976bd        2 months ago        173MB
      kubernetesui/metrics-scraper              v1.0.4     86262685d9ab        4 months ago        36.9MB
      k8s.gcr.io/pause                          3.2        80d28bedfe5d        5 months ago        683kB
      k8s.gcr.io/coredns                        1.6.7      67da37a9a360        6 months ago        43.8MB
      k8s.gcr.io/etcd                           3.4.3-0    303ce5db0e90        9 months ago        288MB
      gcr.io/k8s-minikube/storage-provisioner   v1.8.1     4689081edb10        2 years ago         80.8MB
      Note that the interaction with MiniKube's Docker is possible only within the current open shell. If you open a new shell (terminal window) you will have to configure it the same way as above.
  5. Minikube's Pods/Services/Containers
    • Minikube's Pods/Services:
      $ kubectl get pods,services --namespace kube-system
      NAME                                   READY   STATUS    RESTARTS   AGE
      pod/coredns-66bff467f8-d5tdc           1/1     Running   0          15m
      pod/etcd-minikube                      1/1     Running   0          15m
      pod/kube-apiserver-minikube            1/1     Running   0          15m
      pod/kube-controller-manager-minikube   1/1     Running   0          15m
      pod/kube-proxy-zzpnf                   1/1     Running   0          15m
      pod/kube-scheduler-minikube            1/1     Running   0          15m
      pod/storage-provisioner                1/1     Running   1          15m
      
      NAME               TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
      service/kube-dns   ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   15m
    • Minikube's Containers:
      $ docker ps --no-trunc --format "table {{.Command}}\t{{.Names}}"
      COMMAND                                                                         NAMES
      "/storage-provisioner"                                                          k8s_storage-provisioner_storage-provisioner_kube-system_fa447956-8dfc-4e08-b9f0-1742baf95d0b_0
      
      "/coredns -conf /etc/coredns/Corefile"                                          k8s_coredns_coredns-66bff467f8-nh968_kube-system_b884a2ce-0f54-437c-9c4b-451c57ffdd48_0
      
      "/usr/local/bin/kube-proxy                                                      k8s_kube-proxy_kube-proxy-8zgf7_kube-system_8a04dd66-a90a-42bf-93cd-6c48bf876609_0
          --config=/var/lib/kube-proxy/config.conf
          --hostname-override=minikube"
      
      "etcd                                                                           k8s_etcd_etcd-minikube_kube-system_e3064b4cb5e1ec4220321aede0b3cc10_0
          --advertise-client-urls=https://192.168.99.100:2379
          --cert-file=/var/lib/minikube/certs/etcd/server.crt
          --client-cert-auth=true
          --data-dir=/var/lib/minikube/etcd
          --initial-advertise-peer-urls=https://192.168.99.100:2380
          --initial-cluster=minikube=https://192.168.99.100:2380
          --key-file=/var/lib/minikube/certs/etcd/server.key
          --listen-client-urls=https://127.0.0.1:2379,https://192.168.99.100:2379
          --listen-metrics-urls=http://127.0.0.1:2381
          --listen-peer-urls=https://192.168.99.100:2380
          --name=minikube
          --peer-cert-file=/var/lib/minikube/certs/etcd/peer.crt
          --peer-client-cert-auth=true
          --peer-key-file=/var/lib/minikube/certs/etcd/peer.key
          --peer-trusted-ca-file=/var/lib/minikube/certs/etcd/ca.crt
          --snapshot-count=10000
          --trusted-ca-file=/var/lib/minikube/certs/etcd/ca.crt"
      
      "kube-scheduler                                                                 k8s_kube-scheduler_kube-scheduler-minikube_kube-system_dcddbd0cc8c89e2cbf4de5d3cca8769f_0
          --authentication-kubeconfig=/etc/kubernetes/scheduler.conf
          --authorization-kubeconfig=/etc/kubernetes/scheduler.conf
          --bind-address=127.0.0.1
          --kubeconfig=/etc/kubernetes/scheduler.conf
          --leader-elect=false"
      
      "kube-controller-manager                                                        k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_ba963bc1bff8609dc4fc4d359349c120_0
          --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf
          --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf
          --bind-address=127.0.0.1
          --client-ca-file=/var/lib/minikube/certs/ca.crt
          --cluster-name=mk
          --cluster-signing-cert-file=/var/lib/minikube/certs/ca.crt
          --cluster-signing-key-file=/var/lib/minikube/certs/ca.key
          --controllers=*,bootstrapsigner,tokencleaner
          --kubeconfig=/etc/kubernetes/controller-manager.conf
          --leader-elect=false
          --requestheader-client-ca-file=/var/lib/minikube/certs/front-proxy-ca.crt
          --root-ca-file=/var/lib/minikube/certs/ca.crt
          --service-account-private-key-file=/var/lib/minikube/certs/sa.key
          --use-service-account-credentials=true"
      
      "kube-apiserver                                                                 k8s_kube-apiserver_kube-apiserver-minikube_kube-system_5d746552bb1514ad264ed6541c216635_0
          --advertise-address=192.168.99.100
          --allow-privileged=true
          --authorization-mode=Node,RBAC
          --client-ca-file=/var/lib/minikube/certs/ca.crt
          --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota
          --enable-bootstrap-token-auth=true
          --etcd-cafile=/var/lib/minikube/certs/etcd/ca.crt
          --etcd-certfile=/var/lib/minikube/certs/apiserver-etcd-client.crt
          --etcd-keyfile=/var/lib/minikube/certs/apiserver-etcd-client.key
          --etcd-servers=https://127.0.0.1:2379
          --insecure-port=0
          --kubelet-client-certificate=/var/lib/minikube/certs/apiserver-kubelet-client.crt
          --kubelet-client-key=/var/lib/minikube/certs/apiserver-kubelet-client.key
          --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
          --proxy-client-cert-file=/var/lib/minikube/certs/front-proxy-client.crt
          --proxy-client-key-file=/var/lib/minikube/certs/front-proxy-client.key
          --requestheader-allowed-names=front-proxy-client
          --requestheader-client-ca-file=/var/lib/minikube/certs/front-proxy-ca.crt
          --requestheader-extra-headers-prefix=X-Remote-Extra-
          --requestheader-group-headers=X-Remote-Group
          --requestheader-username-headers=X-Remote-User
          --secure-port=8443
          --service-account-key-file=/var/lib/minikube/certs/sa.pub
          --service-cluster-ip-range=10.96.0.0/12
          --tls-cert-file=/var/lib/minikube/certs/apiserver.crt
          --tls-private-key-file=/var/lib/minikube/certs/apiserver.key"
      
      "/dashboard                                                                     k8s_kubernetes-dashboard_kubernetes-dashboard-6dbb54fd95-bkc52_kubernetes-dashboard_5f674413-ebc9-4fc1-8868-f87ac8725187_0
          --insecure-bind-address=0.0.0.0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       14 hours ago        Up 14 hours                             k8s_kubernetes-dashboard_kubernetes-dashboard-6dbb54fd95-bkc52_kubernetes-dashboard_5f674413-ebc9-4fc1-8868-f87ac8725187_0
          --bind-address=0.0.0.0
          --namespace=kubernetes-dashboard
          --enable-skip-login
          --disable-settings-authorizer"
  6. Stop minikube
    $ minikube stop
    ✋  Stopping "minikube" in virtualbox ...
    🛑  Node "minikube" stopped.
© 2025  mtitek