There might not be any local docker daemon to push from,
and there might not be any remote docker daemon to push to.
But user can still load container images from cache tarballs,
and build new container images from a local build context...
It's hard to distinguish Google Container Registry and Google Artifact Registry. They have to be configured differently. I think it wouldn't hurt to emphasize that in the docs.
I forgot to add the `minikube start` line in the Windows example. I also remembered how to add persistent User level system environment variables from Powershell and added that in the doc page, as well as how to add them via Powershell's version of `.bashrc`.
As discussed in #12968 I'm updating the type of tab formatting used by this page to match the rest of the docs, using the `{{% tabs %}}` format rather than the `{{% card %}}` format.
As VMware's a company and we're dealing with specific applications of said company, updating the start docs to be more specific about those applications.
site/content/en/docs/drivers/_index.md:
* Updated macOS reference from VMware to VMware Fusion
* Updated Windows reference from VMware to VMware Workstation
site/content/en/docs/start/_index.md:
* Update reference from VMware to VMware Fusion/Workstation.
We change the default `--host-only-cidr` to `192.168.59.1/24` in order
to be compatible with the new default host-only networking restrictions
implemented in VirtualBox 6.1.28.
This fixes access denied errors on `minikube start` when using
VirtualBox >= 6.1.28:
```
VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
```
More details:
VirtualBox 6.1.28 introduced new restrictions on host-only networking:
https://www.virtualbox.org/wiki/Changelog-6.1#v28
Manual: https://www.virtualbox.org/manual/ch06.html#network_hostonly
> On Linux, Mac OS X and Solaris Oracle VM VirtualBox will only allow IP
> addresses in 192.68.56.0/21 range to be assigned to host-only
> adapters. For IPv6 only link-local addresses are allowed. If other
> ranges are desired, they can be enabled by creating
> /etc/vbox/networks.conf and specifying allowed ranges there. For
> example, to allow 10.0.0.0/8 and 192.168.0.0/16 IPv4 ranges as well as
> 2001::/64 range put the following lines into /etc/vbox/networks.conf:
>
> * 10.0.0.0/8 192.168.0.0/16
> * 2001::/64
>
> Lines starting with the hash # are ignored. Next example allows any
> addresses, effectively disabling range control:
>
> * 0.0.0.0/0 ::/0
These new restrictions manifest in the form of the following issue on
`minikube start` due to the default `--host-only-cidr` used by the
VirtualBox driver being `192.168.99.1/24`:
```console
😄 minikube v1.23.2 on Ubuntu 18.04
✨ Using the virtualbox driver based on user configuration
👍 Starting control plane node minikube in cluster minikube
🔥 Creating virtualbox VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
🔥 Deleting "minikube" in virtualbox ...
🤦 StartHost failed, but will try again: creating host: create: creating: Error setting up host only network on machine start: /usr/bin/VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.99.1 --netmask 255.255.255.0 failed:
VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
🔥 Creating virtualbox VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
😿 Failed to start virtualbox VM. Running "minikube delete" may fix it: creating host: create: creating: Error setting up host only network on machine start: /usr/bin/VBoxManage hostonlyif ipconfig vboxnet1 --ip 192.168.99.1 --netmask 255.255.255.0 failed:
VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
❌ Exiting due to GUEST_PROVISION: Failed to start host: creating host: create: creating: Error setting up host only network on machine start: /usr/bin/VBoxManage hostonlyif ipconfig vboxnet1 --ip 192.168.99.1 --netmask 255.255.255.0 failed:
VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
╭───────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ 😿 If the above advice does not help, please let us know: │
│ 👉https://github.com/kubernetes/minikube/issues/new/choose │
│ │
│ Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue. │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────╯
```
While the above is the primary error, other errors will be reported if
the adapter already exists (this happens when the adapter was created
before updating to VirtualBox 6.1.28, on a version of VirtualBox without
the new restrictions). Some examples:
```
❌ Exiting due to IF_VBOX_NOT_VISIBLE: Failed to start host: creating host: create: creating: Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue
```
```
❌ minikube is unable to connect to the VM: dial tcp 192.168.99.112:22: i/o timeout
This is likely due to one of two reasons:
- VPN or firewall interference
- virtualbox network configuration issue
Suggested workarounds:
- Disable your local VPN or firewall software
- Configure your local VPN or firewall to allow access to 192.168.99.112
- Restart or reinstall virtualbox
- Use an alternative --vm-driver
- Use --force to override this connectivity check
❌ Exiting due to GUEST_PROVISION: Failed to validate network: dial tcp 192.168.99.112:22: i/o timeout
```
When switching to a valid CIDR, `minikube start` works as usual:
```console
😄 minikube v1.23.2 on Ubuntu 18.04
✨ Using the virtualbox driver based on user configuration
👍 Starting control plane node minikube in cluster minikube
🔥 Creating virtualbox VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
🐳 Preparing Kubernetes v1.22.2 on Docker 20.10.8 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🔎 Verifying Kubernetes components...
🌟 Enabled addons: storage-provisioner, default-storageclass
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
```
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
The current windows commands to setup a local registry no longer worked for me. The registry addon is setup to listen on port 80, not port 5000. It is unclear if this is a bug or intentional. If it is intentional, the changes in this PR should get this documentation up to date.
Specifically, this PR updates the port forward from 5000:5000 to 5000:80, and adds another line to make it more clear that the "registry vm" is the registry service as obtained from the list of services.
Requirements:
- Install rootless Docker 20.10 or later, see https://rootlesscontaine.rs/getting-started/docker/
- Enable cgroup v2 delegation, see https://rootlesscontaine.rs/getting-started/common/cgroup2/
Usage: `minikube start --driver=docker --container-runtime=containerd`.
The `--container-runtime` flag needs to be set to "containerd".
CRI-O can be also supported later.
Closes issue 10836 ("add support for rootless Docker").
Support for rootless Podman (issue 8719) is not covered in this commit.
---
Code reading guide:
- `deploy/kicbase/Dockerfile`: updated to install fuse-overlayfs and containerd-fuse-overlayfs, which is used
instead of `overlayfs` snapshotter
- `deploy/kicbase/entrypoint`: updated to verify cgroup v2 delegation.
Mostly from 8a83ee46b2/images/base/files/usr/local/bin/entrypoint
- `cmd/minikube/cmd/start_flags.go`: updated to set `KubeletInUserNamespace` feature gate when rootless
- `pkg/drivers/kic/oci`: updated to use port forwarding, because rootless container IPs are not reachable from the host
- `pkg/minikube/cruntime`: updated to generate `/etc/containerd/config.toml` with rootless support.
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Having additional disks on the nodes is a requirement for developers
working on the storage components in Kubernetes. This commit adds the
extra-disks feature to the kvm2 driver.
Signed-off-by: Raghavendra Talur <raghavendra.talur@gmail.com>
This is the opposite command of "minikube image load",
and can be used after doing a "minikube image build".
The default is to save images in the cache, but it is
also possible to save to files or to standard output.