{"id":19796610,"url":"https://github.com/drabo/minikube","last_synced_at":"2026-04-18T01:35:07.772Z","repository":{"id":112837678,"uuid":"192628331","full_name":"drabo/minikube","owner":"drabo","description":"How to create a Kubernetes cluster with one node running in VirtualBox","archived":false,"fork":false,"pushed_at":"2024-03-18T10:42:17.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-28T16:12:20.869Z","etag":null,"topics":["cluster","helm","k8s","kubernetes","minikube","virtualbox"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drabo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-19T00:07:18.000Z","updated_at":"2022-01-13T21:20:03.000Z","dependencies_parsed_at":"2025-02-28T10:54:27.184Z","dependency_job_id":"c9a4ebb7-ca93-4390-81ce-f175f15fb41b","html_url":"https://github.com/drabo/minikube","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/drabo/minikube","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drabo%2Fminikube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drabo%2Fminikube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drabo%2Fminikube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drabo%2Fminikube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drabo","download_url":"https://codeload.github.com/drabo/minikube/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drabo%2Fminikube/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265542157,"owners_count":23785164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cluster","helm","k8s","kubernetes","minikube","virtualbox"],"created_at":"2024-11-12T07:20:36.243Z","updated_at":"2026-04-18T01:35:07.762Z","avatar_url":"https://github.com/drabo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Install Kubernetes local cluster with Minkube\n\nIn the following document you will find several terms like:\n\n- Kubernetes cluster\n- Minikube cluster\n- Kubernetes local cluster\n- Cluster\n- K8s or k8s\n\nAll these terms refer to the same thing that is the Kubernetes cluster containing one node hosted on a local VirtualBox VM, created and managed with the CLI tool called Minikube.\n\n## 1. Install Minikube on Windows\n\nThe Minikube Kubernetes cluster will be created as a virtual machine in VirtualBox, so, make sure you have it installed.\n\n### 1.1. Use Cygwin in Windows\n\nYou will need 4 tools to create and manage the Minikube Kubernetes cluster:\n\n- minikube\n- kubectl\n- helm\n- tiller\n\n#### 1.1.1. Install Minikube\n\nMinikube is the CLI tool to create and manage the virtual machine used by Kubernetes.\n\nGo to the \u003ca href=\"https://github.com/kubernetes/minikube/releases/latest\" target=\"_blank\"\u003eminikube download page\u003c/a\u003e\n\nAt the bottom of the page you may identify the package for Windows: `minikube-windows-amd64.exe`. Copy the link of the file and use it below to set the variable MINIKUBELINK:\n\n```shell\nMINIKUBELINK=https://github.com/kubernetes/minikube/releases/download/v1.3.1/minikube-windows-amd64.exe\n\ncurl -Lo minikube.exe $MINIKUBELINK \u0026\u0026 chmod +x minikube.exe \u0026\u0026 mv minikube.exe /usr/local/bin/\n```\n\n#### 1.1.2. Install Kubectl\n\nKubectl is the CLI tool to manage Kubernetes.\n\nDownload the Windows executable:\n\n```shell\ncurl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/windows/amd64/kubectl.exe \u0026\u0026 chmod +x kubectl.exe \u0026\u0026 mv kubectl.exe /usr/local/bin/\n```\n\n#### 1.1.3. Install Helm and Tiller\n\nHelm is the CLI tool to install software packages that exists in Helm library. Tiller keeps track of the packages installed.\n\nGot to page https://github.com/helm/helm/releases/latest and identify the download link of package `Windows amd64` within section **Installation and Upgrading** of the page. Copy the link of the file and use it below to set the variable HELMLINK:\n\n```shell\nHELMLINK=https://get.helm.sh/helm-v2.14.3-windows-amd64.zip\n\ncurl -LO $HELMLINK \u0026\u0026 unzip $(basename $HELMLINK) \u0026\u0026 chmod +x windows-amd64/*.exe \u0026\u0026 mv windows-amd64/*.exe /usr/local/bin/\n```\n\n#### 1.1.4. Common configuration\n\nFor the above tools you need to set few symlinks, exports and completion:\n\n```shell\nmkdir $HOME/bin\nln -s /usr/local/bin/minikube.exe $HOME/bin/minikube\nln -s /usr/local/bin/kubectl.exe $HOME/bin/kubectl\nln -s /usr/local/bin/helm.exe $HOME/bin/helm\necho \"source \u003c(/usr/local/bin/minikube completion bash)\" \u003e\u003e$HOME/.bashrc\necho \"source \u003c(/usr/local/bin/kubectl completion bash)\" \u003e\u003e$HOME/.bashrc\necho \"source \u003c(/usr/local/bin/helm completion bash)\" \u003e\u003e$HOME/.bashrc\necho \"export KUBE_EDITOR=vim\" \u003e\u003e$HOME/.bashrc\necho 'export PATH='$HOME'/bin:$PATH' \u003e\u003e$HOME/.bashrc\n```\n\nClose the terminal and reopen it in order to execute the above commands. Check few commands to verify the version installed of each CLI tool:\n\n```shell\n$ minikube version\n\nminikube version: v1.3.1\n```\n\nKubectl shows only the client information because the server relates to the Kubernetes cluster that is still not created:\n\n```shell\n$ kubectl version\n\nClient Version: version.Info{Major:\"1\", Minor:\"15\", GitVersion:\"v1.15.2\", GitCommit:\"641856db18352033a0d96dbc99153fa3b27298e5\", GitTreeState:\"clean\", BuildDate:\"2019-03-25T15:53:57Z\", GoVersion:\"go1.12.1\", Compiler:\"gc\", Platform:\"windows/amd64\"}\nUnable to connect to the server: dial tcp 127.0.0.1:8080: connectex: No connection could be made because the target machine actively refused it.\n```\n\nAs well, helm shows only the client information:\n\n```shell\n$ helm version\n\nClient: \u0026version.Version{SemVer:\"v2.14.3\", GitCommit:\"5270352a09c7e8b6e8c9593002a73535276507c0\", GitTreeState:\"clean\"}\nError: Get http://localhost:8080/api/v1/namespaces/kube-system/pods?labelSelector=app%3Dhelm%2Cname%3Dtiller: dial tcp 127.0.0.1:8080: connectex: No connection could be made because the target machine actively refused it.\n```\n\nTiller starts the server on localhost. You may cancel it.\n\n```shell\n$ tiller version\n\n[main] 2019/06/19 00:37:34 Starting Tiller v2.14.3 (tls=false)\n[main] 2019/06/19 00:37:34 GRPC listening on :44134\n[main] 2019/06/19 00:37:34 Probes listening on :44135\n[main] 2019/06/19 00:37:34 Storage driver is ConfigMap\n[main] 2019/06/19 00:37:34 Max history per release is 0\nCtrl+C\n```\n\n#### 1.1.5. Create the Kubernetes cluster with Minikube\n\nThe local cluster may be created with the same command that will later start it:\n\n```shell\nminikube start\n```\n\nThis command will create a VirtualBox machine with 2 CPU, 4GB RAM and 20GB disk.\n\nYou may use this config or you may enhance it according to your needs. You may edit the script [0.minikube-create.sh](0.minikube-create.sh) to modify the resources or to set a local Docker repository IP address, that may be Nexus.\n\nIf you intend to use such local Docker repo then you **must** specify it at the minikube cluster creation time because a later update of this element will not be possible.\n\nEdit the script [0.minikube-create.sh](0.minikube-create.sh) according to your needs and run it:\n\n```shell\n./0.minikube-create.sh\n```\n\nTo check if the cluster is created run `minikube status`:\n\n```shell\n$ minikube status\n\nhost: Running\nkubelet: Running\napiserver: Running\nkubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100\n```\n\nIf the cluster was created then you will see the components `Running` and the IP address of the cluster.\n\nAfter the cluster is created, kubectl will show also the server version:\n\n```shell\n$ kubectl version\n\nClient Version: version.Info{Major:\"1\", Minor:\"15\", GitVersion:\"v1.15.2\", GitCommit:\"641856db18352033a0d96dbc99153fa3b27298e5\", GitTreeState:\"clean\", BuildDate:\"2019-03-25T15:53:57Z\", GoVersion:\"go1.12.1\", Compiler:\"gc\", Platform:\"windows/amd64\"}\nServer Version: version.Info{Major:\"1\", Minor:\"15\", GitVersion:\"v1.15.2\", GitCommit:\"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0\", GitTreeState:\"clean\", BuildDate:\"2019-06-06T01:36:19Z\", GoVersion:\"go1.12.5\", Compiler:\"gc\", Platform:\"linux/amd64\"}\n```\n\n#### 1.1.6. Modify optins to the minikube cluster\n\nThere are 2 optins that should be enabled:\n\n- dashboard - a GUI to browse and manage components of the Kubernetes cluster\n- ingress - a functionality of Kubernetes that allow to expose the services running in the cluster with DNS names\n\nBoth these options are provided as 'addons' in Minikube.\n\nYou may list all addons with:\n\n```shell\n$ minikube addons list\n\n- addon-manager: enabled\n- dashboard: disabled\n- default-storageclass: enabled\n- efk: disabled\n- freshpod: disabled\n- gvisor: disabled\n- heapster: disabled\n- ingress: disabled\n- logviewer: disabled\n- metrics-server: enabled\n- nvidia-driver-installer: disabled\n- nvidia-gpu-device-plugin: disabled\n- registry: disabled\n- registry-creds: enabled\n- storage-provisioner: enabled\n- storage-provisioner-gluster: disabled\n```\n\nThe script [1.minikube-update.sh](1.minikube-update.sh) may be modified and used according to your needs:\n\n```shell\n./1.minikube-update.sh\n```\n\n#### 1.1.7. Explore the cluster\n\n##### 1.1.7.1. Use CLI to explore cluster\n\nThe CLI tool kubectl is used to explore and manage the cluster\n\nThe following will show the only node composing the cluster:\n\n```shell\n$ kubectl get nodes\n\nNAME       STATUS   ROLES    AGE   VERSION\nminikube   Ready    master   1d    v1.14.3\n```\n\nThe following will show all components in the default namespace:\n\n```shell\n$ kubectl get all\n\nNAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE\nservice/kubernetes   ClusterIP   10.96.0.1    \u003cnone\u003e        443/TCP   58d\n```\n\n##### 1.1.7.2. Use GUI to explore cluster\n\nThe GUI will run in the default web browser and you start it with:\n\n```shell\nminikube dashboard \u0026\n```\n\n#### 1.1.8. Prepare Helm to deploy software into the cluster created\n\nIn order for Helm to be able to install software packages into your Kubernetes cluster you need to initialize it. Run the script [2.helm-init.sh](2.helm-init.sh):\n\n```shell\n./2.helm-init.sh\n```\n\nTiller is deployed into the cluster and the above script will return an output like:\n\n```shell\nNAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)     AGE\ntiller-deploy   ClusterIP   10.108.34.40   \u003cnone\u003e        44134/TCP   1d\n```\n\nIf `tiller-deploy` _service_ is still not deployed then check it again in the dashboard GUI in namespace `kube-system` or using the kubectl:\n\n```shell\nkubectl -n kube-system get svc tiller-deploy\n```\n\nIn this moment your Kubernetes local cluster should be up and running an ready to start deploying applications into it.\n\n#### 1.1.9. Start/Stop cluster\n\n\u003e:exclamation: The cluster will be started and stopped **ONLY** using minikube CLI tool.\n\u003e\n\u003e:exclamation: **Do not** start or stop the VM using VirtualBox.\n\n- The cluster will be started with:\n\n```shell\nminikube start\n```\n\n- The cluster will be stopped with:\n\n```shell\nminikube stop\n```\n\n#### 1.1.10. Other minikube commands\n\nYou will get all options of minikube if you run:\n\n```shell\nminikube\n```\n\nFew useful comands follows:\n\n- Display the IP address of the Kubernetes minikube VM.\n\n```shell\n$ minikube ip\n\n192.168.99.100\n```\n\nYour computer has the IP address 192.168.99.1 within the network 192.168.99.0/24 created by minikube in VirtualBox.\n\n- Display the logs of cluster components.\n\n```shell\nminikube logs\n```\n\n- Login to the VM with user docker. The user has sudo rights.\n\n```shell\nminikube ssh\n```\n\n\u003e:exclamation: **Do not** modify anything into the VirtualBox VM otherwise the cluster may not be usable anymore.\n\n## 2. Install Minikube on Linux\n\nThe Minikube Kubernetes cluster will be created as a virtual machine in VirtualBox, so, make sure you have VirtualBox installed.\n\nThe installation steps are similar as for the Windows Cygwin.\n\nYou will need 4 tools to create and manage the Minikube Kubernetes cluster:\n\n- minikube\n- kubectl\n- helm\n- tiller\n\n### 2.1. Install Minikube\n\nMinikube is the CLI tool to create and manage the virtual machine used by Kubernetes.\n\nGo to the page https://github.com/kubernetes/minikube/releases/latest\n\nAt the bottom of the page you may identify the package for Windows: `minikube-linux-amd64`. Copy the link of the file and use it below to set the variable MINIKUBELINK:\n\n```shell\nMINIKUBELINK=https://github.com/kubernetes/minikube/releases/download/v1.3.0/minikube-linux-amd64\n\ncurl -Lo minikube $MINIKUBELINK \u0026\u0026 chmod +x minikube \u0026\u0026 mv minikube /usr/local/bin/\n```\n\n### 2.2. Install Kubectl\n\nKubectl is the CLI tool to manage Kubernetes.\n\nDownload the Windows executable:\n\n```shell\ncurl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl \u0026\u0026 chmod +x kubectl \u0026\u0026 mv kubectl /usr/local/bin/\n```\n\n### 2.3. Install Helm and Tiller\n\nHelm is the CLI tool to install software packages that exists in Helm library. Tiller keeps track of the packages installed.\n\nGot to page https://github.com/helm/helm/releases/latest and identify the download link of package `Linux amd64` within section **Installation and Upgrading** of the page. Copy the link of the file and use it below to set the variable HELMLINK:\n\n```shell\nHELMLINK=https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz\n\ncurl -LO $HELMLINK \u0026\u0026 tar -xf $(basename $HELMLINK) \u0026\u0026 chmod +x linux-amd64/{helm,tiller} \u0026\u0026 mv linux-amd64/{helm,tiller} /usr/local/bin/\n```\n\n### 2.4. Common configuration\n\nFor the above tools you need to set few exports and completion:\n\n```shell\necho \"source \u003c(/usr/local/bin/minikube completion bash)\" \u003e\u003e$HOME/.bashrc\necho \"source \u003c(/usr/local/bin/kubectl completion bash)\" \u003e\u003e$HOME/.bashrc\necho \"source \u003c(/usr/local/bin/helm completion bash)\" \u003e\u003e$HOME/.bashrc\necho \"export KUBE_EDITOR=vim\" \u003e\u003e$HOME/.bashrc\necho 'export PATH='$HOME'/bin:$PATH' \u003e\u003e$HOME/.bashrc\n```\n\nClose the terminal and reopen it in order to execute the above commands. Check few commands to verify the version installed of each CLI tool:\n\n```shell\n$ minikube version\n\nminikube version: v1.3.1\n```\n\nKubectl shows only the client information because the server relates to the Kubernetes cluster that is still not created:\n\n```shell\n$ kubectl version\n\nClient Version: version.Info{Major:\"1\", Minor:\"15\", GitVersion:\"v1.15.2\", GitCommit:\"641856db18352033a0d96dbc99153fa3b27298e5\", GitTreeState:\"clean\", BuildDate:\"2019-03-25T15:53:57Z\", GoVersion:\"go1.12.1\", Compiler:\"gc\", Platform:\"windows/amd64\"}\nUnable to connect to the server: dial tcp 127.0.0.1:8080: connectex: No connection could be made because the target machine actively refused it.\n```\n\nAs well, helm shows only the client information:\n\n```shell\n$ helm version\n\nClient: \u0026version.Version{SemVer:\"v2.14.3\", GitCommit:\"5270352a09c7e8b6e8c9593002a73535276507c0\", GitTreeState:\"clean\"}\nError: Get http://localhost:8080/api/v1/namespaces/kube-system/pods?labelSelector=app%3Dhelm%2Cname%3Dtiller: dial tcp 127.0.0.1:8080: connectex: No connection could be made because the target machine actively refused it.\n```\n\nTiller starts the server on localhost. You may cancel it.\n\n```shell\n$ tiller version\n\n[main] 2019/06/19 00:37:34 Starting Tiller v2.14.3 (tls=false)\n[main] 2019/06/19 00:37:34 GRPC listening on :44134\n[main] 2019/06/19 00:37:34 Probes listening on :44135\n[main] 2019/06/19 00:37:34 Storage driver is ConfigMap\n[main] 2019/06/19 00:37:34 Max history per release is 0\nCtrl+C\n```\n\n### 2.5. Create the Kubernetes cluster with Minikube\n\nSame as in the [Windows section](#115-create-the-kubernetes-cluster-with-minikube)\n\n### 2.6. Modify optins to the minikube cluster\n\nSame as in the [Windows section](#116-modify-optins-to-the-minikube-cluster)\n\n### 2.7. Explore the cluster\n\nSame as in the [Windows section](#117-explore-the-cluster)\n\n### 2.8. Prepare Helm to deploy software into the cluster created\n\nSame as in the [Windows section](#118-prepare-helm-to-deploy-software-into-the-cluster-created)\n\n### 2.9. Start/Stop cluster\n\nSame as in the [Windows section](#119-startstop-cluster)\n\n### 2.10. Other minikube commands\n\nSame as in the [Windows section](#1110-other-minikube-commands)\n\n## 3. Troubleshooting\n\n### 3.1 Fix registry-creds\n\nYou may find that Replication Controller `registry-creds` is failing to create the pod.\n\nFirst, you may check the status of this minikube addon:\n\n```shell\n$ minikube addons list | grep registry-creds\n- registry-creds: enabled\n```\n\nAssuming that `registry-creds` addon is enabled in minikube but failing to start in K8s, the most probable cause is that the secrets are not created.\n\n`registry-creds` is using 3 secrets for the access to the the following 3 container image repositories:\n\n- AWS ECR\n- Google GCR\n- another repository at your choice\n\nEach of the above has a set of elements that define its secret. If the secrets are not created you may create them with the following commands:\n\n```shell\nkubectl -n kube-system create secret generic registry-creds-ecr\nkubectl -n kube-system create secret generic registry-creds-gcr\nkubectl -n kube-system create secret generic registry-creds-dpr\n```\n\nNow you need to configure the secrets. An easy way is to use minikube for this operation. It will ask each element and will update the secrets for you.\n\n```shell\n$ minikube addons configure registry-creds\n\nDo you want to enable AWS Elastic Container Registry? [y/n]: n\n\nDo you want to enable Google Container Registry? [y/n]: n\n\nDo you want to enable Docker Registry? [y/n]: y\n-- Enter docker registry server url: nexus:8083\n-- Enter docker registry username: yourname\n-- Enter docker registry password: yourpassword\n✅  registry-creds was successfully configured\n```\n\nIn the above example is assumed that it will not be configured a repository neither for AWS ECR nor for Google GCR but will be used only a local Nexus server with a Docker repository exposed with HTTPS on port 8083.\n\nAfter all the above configured you should restart the pod of `registry-creds`.\n\nFirst, you identify the pod:\n\n```shell\n$ kubectl -n kube-system get po|grep registry-creds\nregistry-creds-54llj     1/1     Error   0     93m\n```\n\nDelete the pod and the Replication Controller will recreate it and will load the new secrets that you configured:\n\n```shell\n$ kubectl -n kube-system delete po registry-creds-54llj\npod \"registry-creds-54llj\" deleted\n```\n\nCheck if the pod was created and is in state `Running`:\n\n```shell\n$ kubectl -n kube-system get po|grep registry-creds\nregistry-creds-qntm4     1/1     Running   0     17s\n```\n\nYou may see the encoded secret in few ways:\n\n```shell\nkubectl -n kube-system get secret registry-creds-dpr -o jsonpath='{.data}'\n```\n\nor\n\n```shell\nkubectl -n kube-system get secret registry-creds-dpr -o custom-columns=SECRET:.data\n```\n\nIn both cases the information returned may look like:\n\n```log\nmap[DOCKER_PRIVATE_REGISTRY_PASSWORD:XXXXXXXX== DOCKER_PRIVATE_REGISTRY_SERVER:YYYYYYYY== DOCKER_PRIVATE_REGISTRY_USER:ZZZZZZZZ==]\n```\n\nIf you decide to add credentials for AWS ECR secret you have 2 options:\n\n1. first option is to edit the secret `registry-creds-ecr`:\n\n```shell\nkubectl -n kube-system edit secret registry-creds-ecr\n```\n\nProvide the details in the section *data*:\n\n```yaml\ndata:\n  AWS_ACCESS_KEY_ID: Y2hhbmdlbWU=\n  AWS_SECRET_ACCESS_KEY: Y2hhbmdlbWU=\n  AWS_SESSION_TOKEN: \"\"\n  aws-account: Y2hhbmdlbWU=\n  aws-assume-role: Y2hhbmdlbWU=\n  aws-region: Y2hhbmdlbWU=\n```\n\nEach element to be provided in the secret should be previously encoded with base64 as follows:\n\n```shell\n$ echo -n mySecretPassword | base64\nbXlTZWNyZXRQYXNzd29yZA==\n```\n\nNote that you must use `echo -n` otherwise the element will have a `\\n` character appended.\n\n2. second option is to run again the command:\n\n```shell\nminikube addons configure registry-creds\n```\n\nand provide all necessary elements.\n\n### 3.2 Fix nginx-ingress\n\nIt is possible in minikube v1.19.0 to get the following error when you deploy an ingress component:\n\n```log\nError from server (InternalError): error when creating \"xxx.yaml\": Internal error occurred: failed calling webhook \"validate.nginx.ingress.kubernetes.io\": an error on the server (\"\") has prevented the request from succeeding\n```\n\nThe cure for the moment is to run the following command:\n\n```shell\nkubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission\n```\n\n### 3.3 Fix coredns\n\nIn some cases you may need to get from a pod to an Internet address. You may discover that the external address is not accessible due to K8s DNS initial settings done by Minikube.\n\nIn this case you will have to check the `coredns` configuration with:\n\n```shell\nkubectl -n kube-system edit configmaps coredns\n```\n\nThe configmap may look like:\n\n```yaml\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: coredns\n  namespace: kube-system\ndata:\n  Corefile: |\n    .:53 {\n        errors\n        health {\n           lameduck 5s\n        }\n        ready\n        kubernetes cluster.local in-addr.arpa ip6.arpa {\n           pods insecure\n           fallthrough in-addr.arpa ip6.arpa\n           ttl 30\n        }\n        prometheus :9153\n        hosts {\n           192.168.59.1 host.minikube.internal\n           fallthrough\n        }\n        forward . /etc/resolv.conf {\n           max_concurrent 1000\n        }\n        cache 30\n        loop\n        reload\n        loadbalance\n    }\n```\n\nAll you need is to change the `forward` section as follows:\n\n```yaml\n        forward . 8.8.8.8:53 {\n           max_concurrent 1000\n        }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrabo%2Fminikube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrabo%2Fminikube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrabo%2Fminikube/lists"}