admin管理员组文章数量:1487745
本地部署 Minikube + Docker 记录
我有 Mac 和 Windows,这些年折腾软件方面的环境 Linux 用得比较多,最近想安装一个 Kubernetes 的本地环境,本着 “生命不息,折腾不止” 的精神,打算在 Windows 上动手。了解到可以尝试 Minikube,在此简单记录一下。
首先得要安装 Docker,但是在 Windows 下跑 Docker 有两种方式,WSL(Windows Subsystem for Linux)或者 Hyper-V。我首先把这些 Windows 组件都勾上:
我两条路都去走了一下,为了使用 Hyper-V,我还去 BIOS 里面打开虚拟化支持的选项。不过,后来才知道,因为操作系统版本是 Windows 10 Home,虽说 Windows 上面跑 docker 有两种方式:
- 一种是使用 WSL
- 另一种是使用 Hyper-V
但在 Windows 10 Home 版本上只支持第一种。由于 Hyper-V 本质上是额外的虚拟机,而 WSL 更新,是虚拟化的 Linux 环境,是 Windows 操作系统原生支持的,性能要好一些。
其实,在 Docker 的设置里面也有说了:
可以列出所有 WSL(我使用的 WSL 2)目前支持的 Linux Distributions:
代码语言:javascript代码运行次数:0运行复制wsl --list --online
可以选一两个自己熟悉的安装了体验一下:
代码语言:javascript代码运行次数:0运行复制wsl --install Ubuntu
wsl --install Debian
整个 Windows 的文件系统都可以以 Linux 的方式访问。以往我一般在 Windows 上运行 Linux 命令都是使用 Cygwin 的,但是现在我了解到两者很不相同,WSL 是真正的虚拟化 Linux 环境,而 Cygwin 只不过把一些 Linux 命令编译成 Windows 的二进制版本。
安装 Minikube 和相关工具,配置环境变量。这次学到了可以用 Chocolatey,它是 Windows 下的软件安装工具。比如:
代码语言:javascript代码运行次数:0运行复制choco install kubernetes-cli
Minikube 可以以 VM、container,甚至 bare metal(Windows 下不支持)的方式来运行,通过 driver 参数指定。
我们使用 docker,这也是官方认定 preferred 的一种方式。这种方式下,Minikube 应用本身会作为 Docker container 跑在 Docker 里面(driver 的含义),同时,Minikube 也会使用 Docker 来跑其它的应用 container。
代码语言:javascript代码运行次数:0运行复制minikube config set driver docker
minikube delete
minikube start --driver=docker
看一下状态:
Done! kubectl is now configured to use “minikube” cluster and “default” namespace by default
看一下状态:
代码语言:javascript代码运行次数:0运行复制minikube status
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
此外,检查一下 WSL 已经安装的 Linux subsystem,能看到:
代码语言:javascript代码运行次数:0运行复制wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu (Default)
docker-desktop
Debian
在 Docker 的 UI 上,也能看到:
跑起来以后,用 kubectl 验证一下:
代码语言:javascript代码运行次数:0运行复制kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:57514
查看所有 namespace:
kubectl get pods –all-namespaces
启动 dashboard:
代码语言:javascript代码运行次数:0运行复制minikube dashboard
接着,创建和部署一个 hello minikube 的 service:
代码语言:javascript代码运行次数:0运行复制kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get services hello-minikube
通过访问:
代码语言:javascript代码运行次数:0运行复制minikube addons list
可以列出一堆可以立即安装的 addon,有一些是 K8s 的,有一些是 minikube 的,比如:
代码语言:javascript代码运行次数:0运行复制minikube addons enable auto-pause
这个可以在一段时间没有使用的情况下,暂停 K8s。
还有一个 addon 能让 dashboard 的 metrics 显示更多信息:
代码语言:javascript代码运行次数:0运行复制minikube addons enable metrics-server
后来,一通折腾以后发现,原来 Docker 的 settings 里面已经有了一个 Kubernetes 选项:
原来新版本的 Docker 里面自带了一套 K8s,它是完全跑在 Docker instance 里面,并且无法配置的,主要用于本地测试。它的运行也是基于 WSL。
现在就试一下,停掉 Minikube:
代码语言:javascript代码运行次数:0运行复制minikube stop
UI 确认确实停了(或者 docker ps):
然后把 Docker 的 Kubernetes tab 上面的两个选项都勾上,apply & restart。
不过等了好久,似乎卡在这一步了,我 reset 并且更新 Docker 以后,问题解决。打开以后我看到 Docker 启动了一堆 container。确认跑起来也没问题:
代码语言:javascript代码运行次数:0运行复制kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane 10m v1.30.2
文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。如有侵权请联系 cloudcommunity@tencent 删除minikube部署操作系统配置虚拟化本文标签: 本地部署 MinikubeDocker 记录
版权声明:本文标题:本地部署 Minikube + Docker 记录 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/shuma/1755030548a3182675.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论