手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


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

编译丨小东

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


说在前面


今天为大家带来一篇用Docker 快速创建Kubernetes群集的教程。本篇教程是根据我之前的一篇文章《10分钟部署Kubernetes集群》更新、浓缩而来的。这个教程经过我多次验证,还是具有一定的指导意义的。尤其是当您想要尽快在云或本地创建群集的时候。如果您对本教程有任何疑问,您可以参考文尾处的演示视频。

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


一、挑选主机


我将在这个教程中使用 Ubuntu 16.04 ,以便您可以复制/粘贴所有的命令。下面是我个人测试过的几个环境,您可以结合自身实际情况作为参考:


  • DigitalOcean —— 开发者云


手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)

  • Civo —— 英国的开发者云


手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


  • Packet —— 裸机云


手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


  • 2台i7的戴尔主机 —— 在我家

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


1、配置机器


我建议您使用至少3台主机进行测试,这样我们就有了一个主节点和两个工作节点。


还有两点需要您注意:


  1. 理想情况下选择至少2GB内存的双核主机;


  2. 如果在配置主机时您可以选择一个自定义的用户名,那么就需要您就选择自定义的用户名从而放弃选择root。例如,Civo提供了ubuntu,civo或root的选项;


现在在每台机器上执行以下步骤,这可能要花费您5-10分钟。如果您觉得这个过程太慢了,您还可以输入以下命令来使用我制作的实用脚本:


$ curl -sL https://gist.githubusercontent.com/alexellis/e8bbec45c75ea38da5547746c0ca4b0c/raw/23fc4cd13910eac646b13c4f8812bab3eeebab4c/configure.sh | sh

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


2、登录并安装Docker


接下来我们将要从Ubuntu apt库安装Docker。虽然它是Docker的老版本,但对于我们将要进行的Kubernetes测试来说已经够用了。

 

$ sudo apt-get update \

  && sudo apt-get install -qy docker.io

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


3、禁用swap文件


这是进行Kubernetes测试的强制性步骤。最简单的方法就是编辑/etc/fstab,并注释掉指向swap的内容。


输入“sudo swapoff -a”保存并重启。


禁用 swap 内存可能在一开始看起来是一个奇怪的需求。如果你对这一步感到好奇,那么您可以点击文尾处“阅读原文”了解详情。

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


4、安装Kubernetes


$ sudo apt-get update \

  && sudo apt-get install -y apt-transport-https \

  && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

 

$ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" \

  | sudo tee -a /etc/apt/sources.list.d/kubernetes.list \

  && sudo apt-get update

 

$ sudo apt-get update \

  && sudo apt-get install -y \

  kubelet \

  kubeadm \

  kubernetes-cni

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


5、创建群集


此时,我们将通过使用kubeadm启动主节点来创建集群,请在主节点上输入以下命令(出现任何警告,您都可以选择忽略):

 

$ sudo kubeadm init


如果您遗漏了某个步骤或出现了任何问题,那么kubeadm将会在这一点上提示您。


获取一份Kube的配置文件副本:


mkdir -p $HOME/.kube 

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 

sudo chown $(id -u):$(id -g) $HOME/.kube/config 


请确保您已经记下了您的连接令牌。


$ sudo kubeadm join --token c30633.d178035db2b4bb9a 10.0.0.5:6443 --discovery-token-ca-cert-hash sha256:<hash>


手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


二、安装网络


许多网络供应商都可以为Kubernetes 提供服务,但是都需要做一定的设置,所以我将使用Weaveworks中的Weave Net 来进行演示,因为它是Kubernetes社区中最受欢迎的选择之一。它可以在没有额外配置的情况下工作。

 

$ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"


如果您的主机上已经启用了私有网络,那么您可能需要更改私有子网络,使用Weavenet将IP地址分配到Pods(容器)上。您可以参考下面的演示案例:

 

$ curl -SL "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')&env.IPALLOC_RANGE=172.16.6.64/27" | kubectl apply -f -


Weave也有一个非常酷的可视化工具——Weave Cloud。Weave Cloud 是一款免费工具,它会为您显示Pod之间的路径流量。您可以访问(https://www.weave.works/blog/openfaas-gke查看OpenFaaS项目的相关演示案例。

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


三、将工作节点加入群集


使用 kubeadm join 命令,您就可以切换到您的任意工作节点了。

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


四、总结


就是这样——我的演示完成了。现在您拥有了一个可以运行并且可以部署应用程序的集群了。输入“kubectl get nodes”命令,查看节点(如下图所示)。如果您需要设置仪表板UI,请参阅Kubernetes文档。


手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)

手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


如果您对本教程有任何疑问,您可以参考我的演示视频,让我来带您快速创建Kubernetes群集吧!



手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


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



如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!

 手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)


手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)点击下方“阅读全文”,了解详情