手把手带您用Docker 快速创建Kubernetes群集(附详细代码和实操视频)
出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五晚6点10分 与您不见不散
说在前面
今天为大家带来一篇用Docker 快速创建Kubernetes群集的教程。本篇教程是根据我之前的一篇文章《10分钟部署Kubernetes集群》更新、浓缩而来的。这个教程经过我多次验证,还是具有一定的指导意义的。尤其是当您想要尽快在云或本地创建群集的时候。如果您对本教程有任何疑问,您可以参考文尾处的演示视频。
一、挑选主机
我将在这个教程中使用 Ubuntu 16.04 ,以便您可以复制/粘贴所有的命令。下面是我个人测试过的几个环境,您可以结合自身实际情况作为参考:
-
DigitalOcean —— 开发者云
Civo —— 英国的开发者云
Packet —— 裸机云
2台i7的戴尔主机 —— 在我家
1、配置机器
我建议您使用至少3台主机进行测试,这样我们就有了一个主节点和两个工作节点。
还有两点需要您注意:
-
理想情况下选择至少2GB内存的双核主机;
如果在配置主机时您可以选择一个自定义的用户名,那么就需要您就选择自定义的用户名从而放弃选择root。例如,Civo提供了ubuntu,civo或root的选项;
现在在每台机器上执行以下步骤,这可能要花费您5-10分钟。如果您觉得这个过程太慢了,您还可以输入以下命令来使用我制作的实用脚本:
$ curl -sL https://gist.githubusercontent.com/alexellis/e8bbec45c75ea38da5547746c0ca4b0c/raw/23fc4cd13910eac646b13c4f8812bab3eeebab4c/configure.sh | sh
2、登录并安装Docker
接下来我们将要从Ubuntu apt库安装Docker。虽然它是Docker的老版本,但对于我们将要进行的Kubernetes测试来说已经够用了。
$ sudo apt-get update \
&& sudo apt-get install -qy docker.io
3、禁用swap文件
这是进行Kubernetes测试的强制性步骤。最简单的方法就是编辑/etc/fstab,并注释掉指向swap的内容。
输入“sudo swapoff -a”保存并重启。
禁用 swap 内存可能在一开始看起来是一个奇怪的需求。如果你对这一步感到好奇,那么您可以点击文尾处“阅读原文”了解详情。
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
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>
二、安装网络
许多网络供应商都可以为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项目的相关演示案例。
三、将工作节点加入群集
使用 kubeadm join 命令,您就可以切换到您的任意工作节点了。
四、总结
就是这样——我的演示完成了。现在您拥有了一个可以运行并且可以部署应用程序的集群了。输入“kubectl get nodes”命令,查看节点(如下图所示)。如果您需要设置仪表板UI,请参阅Kubernetes文档。
如果您对本教程有任何疑问,您可以参考我的演示视频,让我来带您快速创建Kubernetes群集吧!
点击下列标题,阅读更多干货
如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!
点击下方“阅读全文”,了解详情!