最近两三周我在学习 Docker 容器相关的知识,想要了解 Kubernetes 容器管理平台,并且使用开源的 Polyaxon 框架来管理集群进行机器学习的实验。目前已经部署成功了,这里记录一下部署过程。首先简单总结一下,就是先安装 Docker,再安装 Kubernetes,最后安装 Polyaxon。Kubernetes 的安装方式非常多,详见官方教程。这里我准备使用比较简单的方法,就是使用 Kubeadm 来自动安装 Kubenetes,但是这个方式与后续的 polyaxon 会有一定的冲突需要解决,请多加注意。
表一 部署命令总结
|
安装 Docker |
安装 Kubeadm |
Kubeadm init |
安装网络插件 |
Kubeadm join |
安装 helm |
安装 NFS |
安装 polyaxon |
Master |
需要 |
需要 |
需要 |
需要 |
不必,该命令只由 slave/worker 节点执行 |
需要 |
查看详情 |
需要 |
Slave/worker |
需要 |
需要 |
不必,该命令只由 Master节点执行 |
不必,加入集群之后会被自动安装 |
需要,且注意更改 hash token |
不必 |
查看详情 |
不必 |
准备工作先说一下。最基本的就是机器需要可以正常访问谷歌,因为 kubernete 相关的镜像文件就放在谷歌的服务器上,如果无法正常访问谷歌,那么后面安装的时候会经常卡到然后失败。当然也可以通过提前把这些需要的镜像下载下来,放在正确的路径以供机器使用,但是我没有这么做过,这个方法需要自己搜索一下怎么做。
- 在开始之前,需要有一台或多台机器运行如下系统之一:
- Ubuntu 16.04+
- Debian 9
- CentOS 7
- RHEL 7
- Fedora 25/26(尽力而为)
- HypriotOS v1.0.1 +
- Container Linux(1576.4.0版本测试过)
- 每台机器2 GB或更多的内存(更少的内存将为您的应用留下很小的空间)
- 2个CPU或更多
- 群集中所有计算机之间的网络互联互通(公网或内网网络都可以)
- 每台机器的唯一主机名,MAC地址和product_uuid。有关详细信息,请参见此处
- 某些端口在您的计算机防火墙上打开。有关详细信息,请参见此处
- 禁用 swap。必须禁用 swap 交换空间才能使 kubelet 正常工作。
我采用的是4台机器运行在同一个内网中,运行 Ubuntu 16.04 系统,每台机器 4GB 内存,2 CPU,关闭了 swap。虽然上面说内网外网互联都行,但是我没有测试过跨网段机器组建集群,只是在同一个子网中配置。
一.