Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 2.22 KB

K8sWithDockerDesktop.md

File metadata and controls

36 lines (26 loc) · 2.22 KB

Kubernetes with Docker Desktop

What is it?

  • Docker Desktop for Mac includes a standalone Kubernetes server that runs on your Mac.

Enabling Kubernetes

  • Access Preferences: Go to the Preferences/Settings menu in Docker Desktop.
  • Enable Kubernetes: There's an option to enable Kubernetes, which will install the Kubernetes components necessary to run a single-node cluster locally.
  • Configure (Optional): You can customize the Kubernetes version and other settings if needed.
  • Apply & Restart: Click the "Apply & Restart" button, and Docker Desktop will set up a local Kubernetes cluster for you.

How It Works Under the Hood

  • Kubernetes Inside Docker: Docker Desktop runs the Kubernetes control plane and worker components inside Docker containers.
  • Shared Resources: It shares system resources with Docker, so you don't need a separate VM for Kubernetes.
  • Integration with Docker CLI: It integrates with your Docker CLI, allowing you to use kubectl commands just as you would with a remote cluster.
  • Local Registry: Supports a local registry, allowing for easier image sharing and testing.
  • Networking: It sets up networking so that you can communicate with your cluster using localhost.

Mac HyperKit Hypervisor

  • Hypervisor.framework:

    • Docker Desktop uses macOS's Hypervisor.framework (through HyperKit) to run a lightweight Linux VM
    • This is where your Docker containers (and Kubernetes) are actually running
    • It is a lightweight, native macOS hypervisor based on xhyve. It's bundled with Docker Desktop
  • Port Forwarding: Docker Desktop handles port forwarding from the VM to your macOS system. When a service in a container inside the VM listens on a port, Docker Desktop forwards traffic from that port on localhost to the corresponding port on the VM.

  • Kubernetes Services: When you expose a Kubernetes service on a particular port, it's accessible at that port on localhost in your Mac’s browser or other networking tools.