首页 > 网络 > 云计算 >

Ubutu下安装Kubernetes-手动实践和遇到的坑

2017-03-15

Ubutu下安装Kubernetes-手动实践和遇到的坑。由于考虑网络的问题,在公共的云平台上申请了一台新加坡地域的Ubuntu机器,按照使用习惯申请了Ubuntu 14 04 64bit版本。

Ubutu下安装Kubernetes-手动实践和遇到的坑。

一、环境的准备

由于考虑网络的问题,在公共的云平台上申请了一台新加坡地域的Ubuntu机器,按照使用习惯申请了Ubuntu 14.04 64bit版本

备注:

根据实际的情况,使用本地Ubuntu机器,或者其他的Ubuntu虚拟机也是可以的(具体的差异点在后面尽量标注)

64位版本的操作系统这是强限制,这是k8s自身的要求

Ubuntu16.04 版本与Ubuntu14.04在本人的测试中,没有发现明显的区别

二、 安装的Kubernetes版本:

1.5.4 (因为有其他的需要,所以选择了该版本), 事实上1.4.6版本也实验过,过程要比1.5.4顺利)

三、 开始安装

(1) ssh的配置修改

由于本人习惯在个人环境中使用root(生产环境从安全的角度考虑,这点要绝对重新考虑)

先设置开通ssh的root用户登录,具体设置方法参考下面的链接

http://jingyan.baidu.com/article/8ebacdf02f552b49f65cd5c9.html

由于k8s安装时需要通过免密码的方式,需要设置ssh的免密码登录

具体设置方法可以参考下面的链接:

http://www.path8.net/tn/archives/4473

备注:

设置过程中,如果遇到~/.ssh目录没有存在的情况,可以先用ssh root@127.0.0.1进行登录,登录过程自动创建该目录

设置完成后,可以使用 ssh root@127.0.0.1进行登录测试,如果有多个节点则输入节点ip进行登录测试,登录过程不需要

进行密码输入,则设置成功。

(2) docker的安装

docker的安装这里有一个不小的坑:

Ubuntu下默认安装docker的命令为: apt-get install docker.io ,但默认安装的docker版本为1.1,具体版本如下图:

\

而k8s对docker的版本需求是1.2以上,所以这是不满足条件的需要安装更高版本的docker

解决办法:

echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > /etc/apt/sources.list.d/docker.list

apt-get upgrade

apt-get update

apt-get install docker-engine

新安装后的docker版本信息如下:

\

在Ubuntu 16.04下,该问题也并没有解决,同样需要进行升级版本处理

(3) k8s安装脚本代码的下载

wget https://github.com/kubernetes/kubernetes/archive/v1.5.4.tar.gz -O kubernetes-1.5.4.tar.gz

如果执行wget下载有网络问题,也可以手动下载,下载的地址为:

https://github.com/kubernetes/kubernetes/releases,但在github,把releases中文件的存储放到了AWS的S3中,

而在国内访问S3的是受到防火墙限制的,需要额外想办法。

(4) 设置环境变量

export KUBE_VERSION=1.5.4
export FLANNEL_VERSION=0.5.5
export ETCD_VERSION=2.3.0
export KUBERNETES_PROVIDER=ubuntu

(5) 修改配置文件

\

备注: 如果有多个节点,则后面的节点设置为单一的工作节点,设置为i。

(6) 执行安装命令

在cluster目录下,执行kube-up.sh

在该过程中,会执行脚本进行自动安装,在1.2版本,需要手动输入密码多次,在新版本中已经无需输入密码,但存在下面的情况:

a、 手动下载二进制文件

如果再国内,无法自动下载k8s,etcd和fannel的包,可先手动下载到本地,然后再修改cluster/ubuntu目录下的download-release.sh脚本

脚本中执行的主要操作是下载对应版本的k8s,etcd和fannel的包:(如下图)

\

(7) 1.5.4版本遇到的问题

a、./kube-up.sh: line 45: verify-kube-binaries: command not found

解决办法:

参考链接;https://github.com/kubernetes/kubernetes/issues/38921

在util中添加一行:

\

b、/root/kube/util.sh: line 23: /cluster/common.sh: No such file or director

解决办法;

在util中增加设置环境变量KUBE_ROOT到制定目录

c、saltbase not find

解决办法: 从1.4.6版本中clust/saltbase 到1.5.*版本

d、/root/kube/util.sh: line 48: nodes: unbound variable

解决办法: 在util.sh执行config-default.sh

相关文章
最新文章
热点推荐