Can Docker Desktop version work with Kubernetes? - kubernetes

As far as I understand Kubernetes kubelet talks to CRI (Container Runtime Interface) to run containers. So every Container runtime which is being used in Kubernetes should follow CRI implementation (https://www.ianlewis.org/en/container-runtimes-part-4-kubernetes-container-run). Docker Desktop version neither runs dockerd or containerd. It runs HyperKit for High-Level virtualization. Is it CRI compliant and could be used with Kubernetes?

Hyperkit is not CRI, it is hypervisor such as VirtualBox, which is used for Docker Desktop for Mac. From Official docker documentation
Docker Desktop for Mac uses HyperKit instead of Virtual Box. Hyperkit
is a lightweight macOS virtualization solution built on top of
Hypervisor.framework in macOS 10.10 Yosemite and higher.
If you check this blog, it explains very well relationships between hypervisors and CRI.
As you can see the above image, Docker Container Engine (or containerd) is in top of Linux kernel, so it has nothing to do with Hypervisors. This is basically the main difference between VMs and Containers. If you have Linux kernel, you can run your CRI there.
So, Docker Desktop with Hyperkit, will work with Kubernetes
Hope it helps!

Related

Using WSL2 with Docker Desktop to run the Kubernetes cluster

Up until a 3 months ago I was able to use Docker Desktop and WSL2 to run its Kubernetes cluster WITHOUT having a Linux distro on my dev system. During the following 3 month period of time I did not do development of services in K8s and did not even start Docker Desktop.
Now I am ready to start developing services that run in K8s which is hosted on Docker Desktop, with no Linux distro just as I did previously. But K8s does not start. No matter what kinds of remedies I try, K8s will not start.
I am wondering if something changed and now I need to use a Linux distro?
Thanks

Kubernetes in docker for Ubuntu

Is there an ubuntu version of Kubernetes in docker for Ubuntu, that works like docker for mac(https://blog.docker.com/2018/01/docker-mac-kubernetes/).
and docker for windows (https://docs.docker.com/docker-for-windows/#kubernetes)
minikube consumes lots of resource, and I want to try out a lighter alternative, which I found docker for mac that supports kubernetes, but my machine is ubuntu 18.04.
As you may know there are a lot of projects that offer K8S solution, Minikube is the closest to an official mini distribution for local testing and development, but if you wanna try lightweight options you can check:
Kind runs Kubernetes clusters in Docker containers. It supports multi-node clusters as well as HA clusters. Because it runs K8s in Docker, kind can run on Windows, Mac, and Linux. Kind may not have developer-friendly features.
K3s is ma project by Rancher as a lightweight Kubernetes offering suitable for edge environments, IoT devices, CI pipelines, and even ARM devices, like Raspberry Pi's. It runs on any Linux distribution without any additional external dependencies or tools. K3s provides lightweight by replacing docker with containerd, and using sqlite3 as the default DB (instead of etcd). This solution consumes 512 MB of RAM and 200 MB of disk space.
K3d
It is based on a k3s which is a lightweight kubernetes distribution (similar to kind).
Microk8s runs upstream Kubernetes as native services on Linux systems supporting snap. A good option if you are running Ubuntu on your Laptop. There is a very good installation tutorial:
And there are plenty more. You can check what solution suits you best.
Check kind it is kubernetes in docker.

Docker microsoft/nanoserver won't start

I have a problem with Docker running the nanoserver.
My environment: I Installed docker on a Win10 (developer build from microsoft) Virtual Machine (cause host is still Win7 with no default Docker support because of Hyper-V). I installed docker on the virgin image so no 3rd-party programs can cause the error. I also have already checked if Hyper-V is enabled.
But I think this Screenshot says everything:
Also Googled the problem, but everything i found wasn't in a Docker context.
FYI: I want to use the Docker container for running a network rendering slave which should only see one cpu core (for licensing reasons), maybe someone has another option for this.
so you are trying to run Docker on Windows 10 which is a VM on Windows 7? I suppose this is not possible. You are trying to run a virtualization platform inside a virtualized Host (your Windows 10 machine). This nested virtualization is not supported by Windows 7 afaik.
Nested virtualization is supported on Windows 10 Build 10565 and later (this must be your virtualization host).
Have you tried to create and run a Hyper-V VM inside that Windows 10 VM? this will also fail.

Which Intel virtualizaton techniques are necessary for Docker?

Which Intel virtualizaton techniques are necessary for Docker?
On a Linux system running on a Intel cpu, what Virtualization Technologies by Intel are necessary to fullfill the execution of a Docker container? E.g. there are VT-X, ...
Or is there no need of using such a technology because Docker is somehow different to existing virtualization solutions like VirtualBox. In this case, why is there no need?
None. Docker uses a completely different system - it's not running a virtual machine so much as a super chroot. See the question below:
Can I run Docker directly on a non VT-X machine (no Virtual Machine used)?
The tutorials that tell you you'll need VT-x are usually based on running docker in Windows (on Hyper-V) or in VirtualBox.

creating redhat lxc inside redhat host machine

I was in the process of creating redhat based lxc in redhat host machine but lxc-create doesn't have any template for redhat. I like to know if there is any feasibility to create redhat lxc in redhat host machine.I have also read about virsh and docker. Virsh is used for host based containers but will it be isolated similar to LXC and have anyone had experience about it. I'm confused whether i can configure separate filesystems and network interface for each container in virsh. Please help me with best solution. Thanks in advance.
The Docker Hub is full of images that can be used with LXC (including redhat images). You can use dlrootfs to download the redhat image directly from the Docker Hub and then use it with LXC.
Hope that helps