Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦
本文首发自“Docker公司”公众号(ID:docker-cn)
编译丨小东
每周一、三、五 与您不见不散!
上周,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 Compose 文件,如下面所示,它包含三层应用:Web、Words 和 db。
注意:我们的 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 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
使用 Compose 文件创建的 deployment、pods 和 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 前端展现给全世界。
所以如果我们现在访问 http:// localhost:80,那么我们就可以看到正在运行的应用程序了。您可以从下列渠道在 Elton 录制的视频(全长 8 分钟)中看到整个过程:
Docker 官方入口:http://t.cn/R3Z1WJq
现在,如果我们想要删除服务,您可能首先想到的是使用“kubectl”命令来删除部署。但是,实际上您可以使用“docker stack rm”命令,该命令将删除我们引入应用栈时所创建的所有应用,如下所示:
$ docker stack rm words Removing stack: words $ kubectl get deployment No resources found
对我来说,最惊喜的就是整个过程都可以使用 Docker EE来完成,我只需要将 Compose 文件直接部署到 Docker EE 的用户界面就可以了。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
运维工程师需要掌握的技能
提起运维,大家都会想到又苦又累,又不被人重视的网管,机房运维,认为这个工种很low,入门门槛低,做的事比较杂,从搬服务器上架到修打印机,修电脑,处理网络小故障等杂七杂八的活,究其原因,多年来小公司都把运维当做一种打杂的小工使。其实运维从分类可以分为很多专业领域,比如网络工程师,系统工程师,备份存储工程师,CDN工程师,数据库管理员,应用运维,运维开发,运维架构师等等岗位,本章暂不对运维岗位做过多解释,我就个人的经验,我是从运维实施、系统管理员、DBA最后到运维开发的,简单说说各大互联网公司对岗位的面试要求: WEB篇:1、负载均衡篇:熟悉常用的负载均衡技术,LVS,dpdk,Nginx等四层/七层负载均衡,除了硬件负载均衡设备F5,有搭建、维护并熟悉负载均衡原理;2、Nginx 重要配置、优化及使用、与lua的结合,接入、降级、限流、隔离、熔断、动静分离、反向代理、负载均衡,反爬虫,黑白名单等 另Nginx 和Apache的比较;3、TCP/HTTPs协议及三次握手,四次挥手,get/post的差异,协议头,跳转,常见返回码的含义200/30x/40x/50x等知识及导致返回码的可能故...
- 下一篇
开启“互联网+”模式打造智能移动APP巡检系统
2016年,工业4.0,互联网+,大数据,物联网依然是网络热词。人们谈论互联网+,想象着智能工厂,感觉变革隐隐就在转瞬之间。但大多是纸上谈兵,许多人谈论这些新的理念,新的工具,都是在仰望一个阿拉丁神灯,至于用来做什么,怎么用的一概不清楚,仅仅是觉得有了这些,就什么都解决了,就再也不用面对什么交货困难,产能低,良率低等问题了。没这回事。 工具有了,变革接踵而来。怎么在迭代中抓住机遇,成为新的制造生态链上的一员?与其观望这个“互联网+”浪潮,不如是实实在在“+互联网”。与其仰望这些工具,不如直接开始使用。各种媒体显示,很多大型企业已经开始全力开发智能产线,致力于快速生产模式,组装一部手机,一台电视,甚至是一辆汽车都是分分钟的事情。格力,小米,美的,创维等等都颇有成绩,展示了智能产线的生产力。那么中小企业面对当前的巡检管理工作,鉴于工业4.0的快速发展有什么应对动作呢? 互联网+大数据采集 中小企业的一个痛点是在产线大数据的采集。不提行业大数据,单单是自己产线上的数据就乱七八糟,材料批号难追溯,失效原因难查清,巡检数据难整理,白班夜班乱交接等等产线上实实在在的问题。工厂里一个动作,一台机器,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6