您的位置:首页 > 运维架构 > Docker

通过Kubernetes Minikube&Docker Swarm快速构建最小可行容器集群

2017-01-11 00:00 1161 查看
对于开发可能更多关注的是产品功能的实现,并不希望花费太多的时间用于构建一个基于容器集群的开发环境,所以能快速构建一个最小可行性的容器集群环境对开发来说非常重要。那么开发人员如何能快速构建一个最小可行的容器集群呢?介绍一下分别使用 Kubernetes 的Minikube,Docker Swarm 如何快速构建最小可行容器集群。

Kubernetes Minikube
在容器编排工具中安装配置最复杂的就是 Kubernetes,想要运行一个简单的容器集群环境,对于没有使用过 Kubernetes 的人来说,需要花费一定的时间去理解各组件的概念和功能,再做大量的安装配置工作才能运行一个 kubernetes 集群。而在 Kubernetes 1.3 提供了一个叫 Minikube 的强大测试工具,可以在任意笔记本上运行单节点的小型集群,这个工具默认安装和配置了一个Linux VM,Docker和Kubernetes 的相关组件,并且提供 Dashboard。目前支持在 Linux, OS X及 Windows 上安装,今天介绍的是在 OS X 上的安装。
安装步骤:
1、检查笔记本环境
Minikube要求在BIOS中对VT-x/AMD-v进行了虚拟化,执行如下命令:
$ sysctl -a | grep machdep.cpu.features | grep VMX
如果已经设置了,则命令执行后会有内容输出,以下是我电脑的输出结果:
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C

2、安装虚拟机驱动
在OS X上支持xhyve driver, VirtualBox or VMware Fusion,这里使用的是virtualbox
下载最新版本的virtualbox,下载地址:https://www.virtualbox.org/wiki/Downloads

3、下载 minikube
下载最新的版本v0.10.0,
$ curl -Lo minikube https://storage.googleapis.com ... amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

4、下载 kubectl
$ curl -Lo kubectl http://storage.googleapis.com/ ... bectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

5、启动一个容器集群
$ minikube start
Starting local Kubernetes cluster...
Kubernetes is available at https://192.168.99.100:443.

以上是官网的输出,我的电脑操作时输出如下:





一个简单的Kubernetes集群环境就创建好了。可以使用minikube -help命令查看命令的使用方法,下面我们可以执行一些命令来查看minikube的一些状态和信息:
¬ 查看状态





¬ IP:





¬ 查看Pod:





¬ 查看可使用的Kubernetes的版本





6、部署一个应用
部署有dashboard窗口操作方法和命令行方式,分别介绍一下:
ϖ Dashboard
1)执行minikube dashboard命令后会自动弹出浏览器,如下:





2)点击右上角的CREATE键进行部署配置:





参考配置如下:
• App Name: static-web
• Container image: nginx:latest
• Number of pods: 1
• Service: External
• Port: 80
• Target Port: 80

配置好后在Dashboard可以看到:





ϖ 命令行的方式:
$ kubectl run hellominikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
deployment "hello-minikube" created
$ kubectl expose deployment hello-minikube --type=NodePort
service "hellominikube" exposed

配置好后在Dashboard可以看到:





我这里用的是OS X 的方式安装,其他方式可参Minikube相关连接:
下载地址:https://github.com/kubernetes/minikube/releases
安装指导:http://kubernetes.io/docs/gett ... bectl
https://github.com/kubernetes/ ... ME.md

Docker Swarm
那么下面介绍一下如何使用Docker Swarm快速构建。Docker1.12版本带有内置的 Swarm 编排功能,所以不需要再特别安装其他的编排工具,只需四步,就可以快速启动一个具有弹性扩展及服务发现的容器集群。集群为三个节点,一个manager节点,两个node节点
1.安装docker 1.12,请参考官方文档

2.在manager节点上启动管理节点,假设IP为192.168.10.1,执行如下命令:
$ docker swarm init --advertise-addr 192.168.10.1
命令回车后会在屏幕显示:
Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager.
To add a worker to this swarm, run the following command:

docker swarm join \

--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \

192.168.10.1:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
这个显示内容告诉两个信息,如何加work节点和如何加manager节点。

3.将Node 节点加入集群
参考manager节点上命令的提示,到两个work节点上分别输入manager上显示的命令:
$ docker swarm join \

--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \

192.168.10.1:2377
在manager节点上执行 docker node ls 命令就可以显示所有节点的信息:





一个简单的容器集群就建成了,是不是so easy?

创建服务 $ docker service create --replicas 1 --name hellowswarm alpine ping docker.com





5.扩展服务数量到5个

docker service scale helloswarm=5





作者介绍:陈爱珍 ,七牛云布道师。多年企业级系统的应用运维及分布式系统实战经验。现专注于容器、微服务及DevOps落地的研究与实践。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: