使用kubeadm快速搭建k8s集群(单master,HA 的功能仍然在开发中)
NOTE:
2016/10/09 :添加release版yum源,上传rpm包,避免翻墙,补全之前未添加的镜像,完善文档
2016/11/11 :删除hub.docker.com的镜像,改为通过github自动编译,免去爬梯之苦
架构:
master 192.168.1.11
slave 192.168.1.12
前提条件
系统为Ubuntu16.04 or centos7
以下操作均在centos7 环境下,并且已经安装docker
安装yum源
release源(需翻墙):
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
已把相关rpm包上传
http://down.51cto.com/data/2248890
beta源(国内可下载尝鲜):
cat <<EOF > /etc/yum.repos.d/k8s.repo
[kubelet]
name=kubelet
baseurl=http://files.rm-rf.ca/rpms/kubelet/
enabled=1
gpgcheck=0
EOF
除了kubelet,组件都已经docker化
yum install -y kubelet kubeadm kubectl kubernetes-cni
systemctl enable kubelet && systemctl start kubelet
注意:
1、程序会进行hostname正则匹配,修改hostname和hosts文件,需要符合 example.com
2、提前下载镜像,因为国内屏蔽了
我已经上传相关镜像
https://hub.docker.com/u/foxchan/
镜像名如下:
gcr.io/google_containers/pause-amd64:3.0
gcr.io/google_containers/kube-apiserver-amd64:v1.4.0
gcr.io/google_containers/kube-controller-manager-amd64:v1.4.0
gcr.io/google_containers/kube-scheduler-amd64:v1.4.0
gcr.io/google_containers/etcd-amd64:2.2.5
gcr.io/google_containers/kube-discovery-amd64:1.0
gcr.io/google_containers/kube-dnsmasq-amd64:1.3
gcr.io/google_containers/kubedns-amd64:1.7
gcr.io/google_containers/exechealthz-amd64:1.1
gcr.io/google_containers/kube-proxy-amd64:v1.4.0
在你期望运行master的机器执行如下命令,耐心等待,联网下载(下载的就是上面提供的镜像)
kubeadm init --use-kubernetes-version v1.4.0-beta.11
出现这些,证明安装成功了
Kubernetes master initialised successfully!
You can now join any number of machines by running the following on each node:
kubeadm join --token dxxxxxxxxx 192.168.1.11
slave节点
先下载镜像
gcr.io/google_containers/pause-amd64:3.0
gcr.io/google_containers/kube-proxy-amd64:v1.4.0
执行如下命令加入集群
kubeadm join --token dxxxxxxxx 192.168.1.11
master查看是否添加成功
kubectl get nodes
还没完事,还有活要干!
现在创建pod网络(master上操作,也可以用其他的网络模式,Calico or Canal之后补充)
weaver网络:
镜像如下
weaveworks/weave-kube:1.7.0
weaveworks/weave-npc:1.7.0
添加weaver网络支持
kubectl apply -f https://git.io/weave-kube 查看容器是否全部正常
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system etcd-emarsys105011.emar.com 1/1 Running 0 10d
kube-system kube-apiserver-emarsys105011.emar.com 1/1 Running 8 10d
kube-system kube-controller-manager-emarsys105011.emar.com 1/1 Running 0 10d
kube-system kube-discovery-1971138125-6g5vk 1/1 Running 0 10d
kube-system kube-dns-2247936740-bwcsy 3/3 Running 3 10d
kube-system kube-proxy-amd64-leat6 1/1 Running 0 10d
kube-system kube-proxy-amd64-ta5jb 1/1 Running 0 9d
kube-system kube-scheduler-emarsys105011.emar.com 1/1 Running 0 10d
kube-system weave-net-l1rif 2/2 Running 0 9d
kube-system weave-net-zbsbf 2/2 Running 0 9d 现在,集群已经准备好了!!!
总结:
1、kubeadm仍然是持续开发的功能,以后会集成更多的功能进来,尝鲜、了解特性可以,放到生产并不建议。
2、目前是单master模式,挂了就是真挂了。etcd的数据保存路径:/var/lib/etcd/,可以备份
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com