使用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/,可以备份
转载于:https://blog.51cto.com/foxhound/1858129