本文记录了如何在ubuntu 14.04裸机上部署k8s集群,参考自官方文档。
拓扑结构
1master + 2minion
k8s-master 192.168.0.201 master
k8s-node1 192.168.0.202 minion
k8s-node2 192.168.0.203 minion
准备工作系统
安装Ubuntu 14.04 LTS 64bit server版本系统,配置好hostname和ip。
在更新国内的软件源的时候,由于GFW的原因,经常会出现md5校验错误,建议使用阿里云的源。
Docker
在minion节点上安装Docker,版本需要在1.2+,此处安装的是1.7.1。安装方法参见Docker安装(Ubuntu 64bit) 。
安装好Docker之后,我们最好还配置一个国内的registry mirror,加快镜像拉取速度,参考配置国内免费registry mirror。
Google pause
给每个minion下载Google pause镜像。之后的工作会用到gcr.io/google_containers/pause镜像,国内用户由于GFW问题总是会出错,所以我们先从docker.io下载pause镜像,并设置tag。
# docker pull docker.io/kubernetes/pause
# docker tag kubernetes/pause gcr.io/google_containers/pause:0.8.0
# docker tag gcr.io/google_containers/pause:0.8.0 gcr.io/google_containers/pauseSSH
需要所有minion节点都能从master节点直接登录,不用密码。
在master节点上进行如下操作:
$ ssh-keygen
$ ssh-copy-id user@192.168.0.201
$ ssh-copy-id user@192.168.0.202
$ ssh-copy-id user@192.168.0.203部署集群
下载
下载部署脚本及二进制文件。
首先从K8S的github仓库中下载部署脚本。
$ git clone https://github.com/kubernetes/kubernetes.git修改各组件的版本,下载所有组件的二进制文件。此处我们使用etcd 2.2.0,flannel 0.5.0,k8s 1.0.6。
$ cd kubernetes/cluster/ubuntu
$ vim build.sh #修改版本号
# version setting
FLANNEL_VERSION="0.5.0"
ETCD_VERSION="2.2.0"
KUBE_VERSION="1.0.6"
$ ./build.sh有时候使用非root账户下载会出现错误,此时我们可以切换到root权限下下载,完成之后再使用chown命令将文件权限设置为原来的账户。
目录binaries中出现如下结构则表示成功。

配置
打开cluster/ubuntu/config-default.sh文件,修改如下字段:
export nodes=${nodes:-"wangtao@192.168.0.201 wangtao@192.168.0.202 wangtao@192.168.0.203"}export role=${role:-"a i i"}
export NUM_MINIONS=${NUM_MINIONS:-2}
export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-10.0.1.0/24}










