Kubespray
Kubespray 是 Kubernetes incubator 中的项目,目标是提供 Production Ready Kubernetes 部署方案,该项目基础是通过 Ansible Playbook 来定义系统与 Kubernetes 集群部署的任务,具有以下几个特点:
可以部署在 AWS, GCE, Azure, OpenStack 以及裸机上.
部署 High Available Kubernetes 集群.
可组合性 (Composable),可自行选择 Network Plugin (flannel, calico, canal, weave) 来部署.
支持多种 Linux distributions(CoreOS, Debian Jessie, Ubuntu 16.04, CentOS/RHEL7).
本篇将说明如何通过 Kubespray 部署 Kubernetes 至裸机节点,安装版本如下所示:
Kubernetes v1.7.3
Etcd v3.2.4
Flannel v0.8.0
Docker v17.04.0-ce
节点资讯
本次安装测试环境的作业系统采用 Ubuntu 16.04 Server,其他细节内容如下:
192.168.121.179
master1 + deploy
2
4G
192.168.121.106
node1
2
4G
192.168.121.197
node2
2
4G
192.168.121.123
node3
2
4G
这边 master 为主要控制节点,node 为工作节点。
预先准备资讯
所有节点的网路之间可以互相通信。
部署节点 (这边为 master1)对其他节点不需要 SSH 密码即可登入。所有节点都拥有 Sudoer 权限,并且不需要输入密码。
所有节点需要安装
Python。所有节点需要设定
/etc/hosts解析到所有主机。修改所有节点的
/etc/resolv.conf
部署节点 (这边为 master1)安装 Ansible >= 2.3.0。
Ubuntu 16.04 安装 Ansible:
安装 Kubespray 与准备部署资讯
首先通过 pypi 安装 kubespray-cli,虽然官方说已经改成 Go 语言版本的工具,但是根本没在更新,所以目前暂时用 pypi 版本:
安裝完成後,新增配置檔 ~/.kubespray.yml,並加入以下內容:
接着用 kubespray cli 来产生 inventory 文件:
在 inventory.cfg,添加部分內容:
也可以自己新建
inventory来描述部署节点。
完成后通过以下指令进行部署 Kubernetes 集群:
其中
-n为部署的网络插件类型,目前支持 calico、flannel、weave 与 canal。
验证集群
当 Ansible 运行完成后,若没发生错误就可以开始进行操作 Kubernetes,如取得版本资讯:
取得当前集群节点状态:
查看当前集群 Pod 状态:
最后更新于