Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦

Posted Docker公司

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦相关的知识,希望对你有一定的参考价值。

出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散


说在前面


上周,KubeCon 欧洲大会在哥本哈根成功举办,让我们来回顾那些在 Docker 和 Kubernetes 读者中最受欢迎的帖子吧。对于那些还没有尝试过 Docker EE 2.0 的用户来说,这篇文章的重点在于详细介绍了如何在 Docker for Desktops 中使用 Docker compose 文件来将应用程序直接部署到 Kubernetes 集群上。

&


如果在您的桌面(Docker for Mac 或 Docker for Windows Desktop)上运行的是 Docker 的尝鲜版本,那么现在您就可以通过点击一个按钮来构建单节点的 Kubernetes 集群了。虽然我不是开发人员,但我认为这对于已经在 Macbook 或 Windows 笔记本电脑上使用 Docker 的数百万开发人员来说是个好消息,因为他们现在已经拥有了完全兼容的 Kubernetes 集群,无需安装任何其他辅助工具。


使用 Docker 来构建容器化应用程序的开发人员经常会使用构建 Docker Compose 文件的方式来部署应用程序。随着将 Kubernetes 集成到 Docker 的产品线,某些开发人员想要利用现有的 Docker Compose 文件,在 Kubernetes 中来部署这些应用程序。


通过 Docker Desktop(以及 Docker 企业版),您可以使用 Docker Compose 将应用程序直接部署到 Kubernetes 集群上。

Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦


下面我将详细介绍它的工作原理:


假设我有一个简单的 Docker Compose 文件,如下面所示,它包含三层应用:WebWordsdb


注意:我们的 Web 前端设置为从主机上的 80 端口路由到服务器的 80 端口(以及随后的底层容器)。另外,我们的“Words”服务将会开启 5 个副本。


services:

web:

build: web

image: dockerdemos/lab-web

volumes:

- "./web/static:/static"

ports:

- "80:80"

words:

build: words

image: dockerdemos/lab-words

deploy:

replicas: 5

endpoint_mode: dnsrr

resources:

limits:

memory: 16M

reservations:

memory: 16M

db:

build: db

image: dockerdemos/lab-db

Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦


我使用的是 Docker for Mac 版本,并将 Kubernetes 设置为我的默认编排工具。为了部署这个应用程序,我仅用了“docker stack deploy”命令,并向其提供了一个名为“words.yaml”的 Compose 文件以及一个名为“words”的应用栈。真正让人感到惊喜的是,它与 Docker Swarm 所使用的命令完全相同,如下所示:


$ docker stack deploy --compose-file words.yaml words

Stack words was created

Waiting for the stack to be stable and running...

- Service db has one container running

- Service words has one container running

- Service web has one container running

Stack words is stable and running

Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦


使用 Compose 文件创建的 deploymentpods  services 都可以通过使用“kubectl”命令来查看,如下所示:


$ kubectl get deployment

NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE

db        1         1         1            1           2m

web       1         1         1            1           2m

words     5         5         5            5           2m

$ kubectl get pods

NAME                     READY     STATUS    RESTARTS   AGE

db-5489494997-2krr2      1/1       Running   0          2m

web-dd5755876-dhnkh      1/1       Running   0          2m

words-86645d96b7-8whpw   1/1       Running   0          2m

words-86645d96b7-dqwxp   1/1       Running   0          2m

words-86645d96b7-nxgbb   1/1       Running   0          2m

words-86645d96b7-p5qxh   1/1       Running   0          2m

words-86645d96b7-vs8x5   1/1       Running   0          2m

$ kubectl get services

NAME            TYPE          CLUSTER-IP       EXTERNAL-IP    PORT(S)       AGE

db              ClusterIP     None                    55555/TCP     2m

web             ClusterIP     None                    55555/TCP     2m

web-published   LoadBalancer  10.104.198.84        80:32315/TCP  2m

words           ClusterIP     None                    55555/TCP     2m


如果您查看了上面的服务列表,那么您可能会注意到那些乍一看有点奇怪的事情。没错就是 “web” 和“web-published”服务。其中“web” 服务负责应用程序内部通信,而“web-published”服务(这是一个由 Docker for Mac 中的 vpnkit 所支持的负载均衡器)将会把我们的 Web 前端展现给全世界。

Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦

所以如果我们现在访问 http:// localhost:80,那么我们就可以看到正在运行的应用程序了。您可以在 Elton 录制的视频(全长 8 分钟)中看到整个过程:

 


Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦


Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦


现在,如果我们想要删除服务,您可能首先想到的是使用“kubectl”命令来删除部署。但是,实际上您可以使用“docker stack rm”命令,该命令将删除我们引入应用栈时所创建的所有应用,如下所示:


$ docker stack rm words

Removing stack: words

$ kubectl get deployment

No resources found


对我来说,最惊喜的就是整个过程都可以使用 Docker EE来完成,我只需要将 Compose 文件直接部署到 Docker EE 的用户界面就可以了。



点击下列标题,阅读更多干货



 

以上是关于Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦的主要内容,如果未能解决你的问题,请参考以下文章

docker-desktop for windows修改docker镜像文件存放位置

放大招!Docker Desktop 宣布支持 Linux

docker学习1-win10 64位专业版-安装Docker Desktop for Windows

苹果 M1 上使用 Podman 替换 Docker Desktop

苹果 M1 上使用 Podman 替换 Docker Desktop

联手微软,Docker公司将推出Docker Desktop for WSL 2