Docker Desktop默认包括一个独立的Kubernetes服务器和客户端,以及Docker CLI集成。 Kubernetes服务器在Docker实例中本地运行,不可配置,并且是单节点集群。
Kubernetes服务器在本地系统上的Docker容器中运行,并且仅用于本地测试。 启用Kubernetes支持后,您可以在Kubernetes,Swarm上以及作为独立容器并行部署工作负载。 启用或禁用Kubernetes服务器不会影响其他工作负载。
docker desktop里的kubernetes配置如下:

Kubernetes客户端命令kubectl已集成在内,并且默认配置为连接到本地Kubernetes服务器。 如果已经安装了kubectl并指向其他环境,例如minikube或GKE集群,则需要更改上下文信息,让kubectl指向docker-desktop:
> kubectl config get-contexts
> kubectl config use-context docker-desktop
要启用Kubernetes支持并安装作为Docker容器运行的Kubernetes独立实例,选择Enable Kubernetes。
要将Kubernetes设置为默认协调器,选择Deploy Docker Stacks to Kubernetes by default.。
默认情况下,Kubernetes容器对docker service ls之类的命令是隐藏的,因为Kubernetes容器不支持手动管理。 要使其可见,选择Show system containers (advanced).。 大多数用户不需要此选项。
单击Apply & Restart以保存设置。 docker将实例化将Kubernetes服务器作为容器运行所需的映像,并将kubectl.exe命令安装在路径中。
- 启用并运行Kubernetes后,Docker desktop settings'的右下角将显示一个附加状态栏项目。 Kubernetes的状态显示在Docker菜单中,上下文指向docker-desktop。
- 要随时禁用Kubernetes支持,取消勾选Enable Kubernetes复选框。 Kubernetes容器将停止并删除,并且/ usr / local / bin / kubectl命令也将删除。
- 要删除所有堆栈和Kubernetes资源,请选择Reset Kubernetes Cluster。
- 如果通过其他方法安装了kubectl,并且遇到冲突,请将其删除。
使用docker command
可以使用docker stack deploy,docker-compose.yml文件在Kubernetes上部署stack。
docker stack deploy --compose-file /path/to/docker-compose.yml mystack
docker stack services mystack
我们可以看到service使用kubectl get services命令部署。
指定namespace
默认情况下,使用default 名称空间。 我们可以使用--namespace标志指定名称空间。
docker stack deploy --namespace my-app --compose-file /path/to/docker-compose.yml mystack
运行kubectl get services -n my-app可以查看部署在my-app名称空间中的服务。
覆盖默认orchestrator
在测试Kubernetes时,我们可能也希望以集群模式部署一些工作负载。 使用DOCKER_STACK_ORCHESTRATOR变量来覆盖给定终端会话或单个Docker命令的默认协调器。 该变量可以未设置(不设置就是默认值,在这种情况下,Kubernetes是协调器),也可以设置为swarm或kubernetes。 我们可以在运行命令之前设置变量来覆盖单点部署的orchestrator。
set DOCKER_STACK_ORCHESTRATOR=swarm
docker stack deploy --compose-file /path/to/docker-compose.yml mystack
或者,可以在部署时将--orchestrator标志设置为swarm或kubernetes,以覆盖该部署的默认协调器。
docker stack deploy --orchestrator swarm --compose-file /path/to/docker-compose.yml mystack
使用kubectl command
Windows Kubernetes默认安装在在C:\> Program Files \ Docker \ Docker \ Resources \ bin \ kubectl.exe中提供Kubernetes CLI命令。 此位置可能不在PATH变量中,因此可能需要输入命令的完整路径或将其添加到PATH中。可以通过列出可用节点来测试命令:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready master 3h v1.8.2
Docker创建了以下demo应用程序,可以使用docker stack deploy命令将其部署到集群模式或Kubernetes。
问题:启动kubernets之后一直是starting状态
可以尝试下面几个
- Restore Docker to Factory Default settings and Quit Docker for Desktop
- Delete the folder
C:\ProgramData\DockerDesktop\pki(Make a backup of it just in case) - Delete the folder
~\.kube\(Again make a backup to be safe) - Start Docker again, open Docker settings, make the necessary configuration changes (adding proxy, setting resource limits, etc..), Enable Kubernetes and let it start
- Wait a while and both Docker and Kubernetes will be up now.
本文介绍了如何在Docker Desktop上启用和管理Kubernetes,包括使用docker命令和kubectl进行部署,指定namespace,覆盖默认orchestrator,以及解决启动后Kubernetes一直显示starting状态的问题。
1314

被折叠的 条评论
为什么被折叠?



