go学习容器云

使用kubeadm安装Kubernetes 1.9

2017-12-27  本文已影响4895人  EagleChan

最早接触kubernetes已经是几年之前,一直觉得搭建和维护比较复杂,小团队大概用不到,就没有深入去研究和应用了。感觉今年kubernetes大放异彩,各种相关消息里都少不了,于是还是决定尝试一下。

由于天朝特殊的网络环境,没有梯子的话,没法像kubernetes官方文档里写的那样去访问各种“不存在的网址”搭建集群。所以,只能找各种国内源去绕开网络问题(同时大大加速)。

搭建环境:ubuntu 16.04 + kubeadm 1.9 + docker 17.09 (当下最新)

本以为kubernetes这么火了,各种套路肯定是一堆一堆的, 结果发现自己还是太年轻。网上好多都是基于centos的(感觉ubuntu是被嫌弃了么?),并且kubernetes版本不高。可能因为官方更新迅速,很多方式现在已经不适用了,最后只能自己踩坑。

简单来说:
我把安装过程写成了脚本,下载、改改、运行就可以了

git clone git@github.com:EagleChen/kubernetes_init.git
cd kubernetes_init
# 改一改文件!!!
sudo ./install.sh pre
sudo ./install.sh kubernetes

就可以了。网络稍微好点, 10多分钟就可以搞定(主要是安装工具和下载镜像)。

为了直观, 我直接写死了很多路径,需要根据自己的需求修改。 比如不要改动docker的存储路径, 就把install_docker函数中graph那行去掉。

对脚本以及一些坑的解释:

  1. 脚本主要是解决特殊网络环境方面的问题(源、registry镜像等),只安装master节点, 装node的话, 非常类似。
  2. 脚本并没有做什么风骚的操作,基本上就是照着官方的文档来(然后改变下载地址),所以对着官方文档运行脚本,是正确姿势!这点非常关键!
  3. docker源设置成了中科大的, 可以用其他的,非常多(清华源文档是错的,注意一下就行了)。kubernetes(这么新的) 我没找到其他好的源。repo里面的gpg文件对应的是kubernetes, 若不放心,可以(自行穿墙)从官方渠道下载。
  4. dockerregistry mirror,非常多地方可以获取到,我这里就不打广告了。需要自己申请了,设置在shell脚本里。
  5. shell脚本中,保留了对于之前版本的kubeadm init的设置方式,注释掉了。如果有特殊需求,需要用之前的版本,可以尝试一下(我是没试过,出错了我就没办法了)。
  6. 运行完脚本之后,其实还有蛮多后续操作,但基本不涉及网络方面的内容了。所以需要照着输出和文档来。
  7. 阿里云registry上有两组仓库google-containersgoogle_containers, 后者更新迅速一些,用!(但是为啥不是一个,这个鬼地方太坑人了)
  8. 很多之前的文章说cgroupfs需要保持同步, 可能kubernetes新版(1.9)改变了吧,我发现用不着改docker的配置了。

参考:
官方文档: https://kubernetes.io/docs/setup/independent/install-kubeadm/
参考安装脚本:https://github.com/kubeup/okdc

上一篇下一篇

猜你喜欢

热点阅读