背景
kubernetes 发布的最新版本1.4,增加了很多新特性,据说只用两条命令就可以创建一个k8s集群,比起之前的搭建起来简单很多。
[官方文档][** http://kubernetes.io/docs/getting-started-guides/kubeadm/ **]
环境
主机资源
192.168.234.139 dc01
192.168.234.140 dc02
192.168.234.141 dc03
操作系统
推荐使用ubuntu 16 和centos 7 以上版本(我个人使用的是centos 7.2 x64)
软件安装
在三台机器上上分别安装docker 和 kubelet、kubectl和kubeadm
安装docker
1 | curl -sS https://get.docker.io/ |sh |
安装kubelet、kubectl和kubeadm
需要安装的kubelet、kubeadm、kubectl、 kubernetes-cni这四个rpm包是google的源,正常情况下国内是连接不上的,qq群(319807078)里已经有热心网友下载下来了,安装的时候会依赖一个socat的软件包,使用
1 | yum localinstall *.rpm |
启动服务
三台机器都需要启动docker和kubelet
启动docker
1 | systemctl enable docker && systemctl start docker |
启动kubelet
1 | systemctl enable kubelet && systemctl start kubelet # **此时启动kubelet是失败的,因为在/etc/kubernetes下还没有生成配置文件** |
下载images
1 | images=(kube-proxy-amd64:v1.4.0 kube-discovery-amd64:1.0 kubedns-amd64:1.7 kube-scheduler-amd64:v1.4.0 kube-controller-manager-amd64:v1.4.0 kube-apiserver-amd64:v1.4.0 etcd-amd64:2.2.5 kube-dnsmasq-amd64:1.3 exechealthz-amd64:1.1 pause-amd64:3.0 kubernetes-dashboard-amd64:v1.4.0) |
搭建集群
初始化集群
1 | kubeadm init --api-advertise-addresses=192.168.234.139 |
查看日志
1 | journalctl -fu kubelet |
漠然大神给出的此错误排错步骤
NO.1、保证 hostname 中主机名为 xxxx.com 等这种域名格式
NO.2、保证 hosts 文件中 有 127.0.0.1 与之对应
NO.3、保证 gcr 相关镜像 已经 load 到本地
NO.4、保证 iptables规则没问题,必要时候 -F
NO.5、保证 selinux 已经关闭
NO.6、init 之前保证 启动 kubelet,虽然启动后显示启动失败
NO.7、重新 init 保证用 官方 clean 步骤做下清理
官方清理脚本
1 | systemctl stop kubelet; |
加入集群节点
保证节点上启动了docker 和kubectl
1 | kubeadm join --token 0ab76c.b59aaa1d1ab3cf93 192.168.234.139 |
查看加入的节点
1 | kubectl get nodes |
本文参考漠然大神链接
漠然大神博客地址
github build k8s rpm