1.安装kubernetes1.6.0和dashboard
1.1首先ubuntu需要设置vpn
首先设置vpn,desktop可以直接图形界面设置(具体教程网上搜索,一大把),server版可以在linux的终端使用这种方式(经过测试desktop版的也可以使用)。
步骤1:安装pptp(如果没有安装):apt-get install pptp-linux
步骤2:执行下面语句
pptpsetup --create vpn01 --server 你的vpn服务器IP地址 --username 你的vpn用户名--password 你的vpn密码 --encrypt --start
若此语句不成功,你可以尝试换一个vpn服务器IP地址,然后重新执行此语句。
步骤3:执行下面语句,添加一条默认路由。
route add default dev ppp0
控制台没有任何提示,则表示添加路由成功。保险起见,可以使用route查看路由表,看是不是多了一条默认路由,是的话,表示成功。
步骤4:查看vpn是否设置成功
curl ip.gs
查看外网出口地址,是你的vpn服务器的地点,说明成功。一般都是国外。
常用命令:
查看路由表:route
删除机器上的默认路由:route del default
连接vpn:pon vpn01
断开vpn:poff vpn01
看vpn是否设置成功:curl ip.gs
1.2安装kubeadm和kubelet等
下面的步骤的前提是你挂上了vpn。。。。。。。。。。国内被墙,镜像拉不下来。
步骤1:执行下面的语句得到kubeadm的最新版。
apt-get update && apt-get install -y apt-transport-https
步骤2:执行下面三条命令更新google源。
1.curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
2.cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
3.apt-get update
步骤3:如果你的机器上没有安装docker,执行下面这句。
apt-get install -y docker-engine
步骤4:执行下面语句安装kubelet kubeadm kubectl等。
apt-get install -y kubelet kubeadm kubectl kubernetes-cni
步骤5:初始化master。
kubeadm init --apiserver-advertise-address=自己主机的IP
(注意:如果挂上了vpn,需要带上这个参数,否则,不需要)
耐心等待,在网上拉镜像呢,你可以重新开一个终端,使用docker images查看是拉取镜像进度,好像总共有五个镜像。
注:这一步可能出现找不到node注册的情况(提示fail to list node ....),分别试试poff vpn01、reboot、apt-get upgrade。。。。,每次试一个,然后重新init(我的机器上poff vpn01是可以的)。坑太多。注意在重新init之前要先执行kubeadm reset,删除上次的一些配置文件。
kubeadm init成功之后,如果执行了poff vpn01,需要先执行pon,然后像第一节讲到的方法手动添加一条默认路由,如果没有执行poff vpn01,则不用管。
步骤6:想要在node上部署pod的话,需要先执行下面这句去taint node。(必须执行,否则步骤7出错)
kubectl taint nodes --all node-role.kubernetes.io/master-
注1:在执行kubectl语句的时候,若出现kubectl命令不可用的情况、port拒绝访问什么的试试下面三句。。。
1.cp /etc/kubernetes/admin.conf $HOME/
2.chown $(id -u):$(id -g) $HOME/admin.conf
3.export KUBECONFIG=$HOME/admin.conf
注2:新开一个终端都会出现kubectl不可用的情况,port拒绝访问啥的,若已经执行过前两句,则直接执行第三句即可。
步骤7:安装pod的network。
这里我选择weave,也可以选择flannel。直接执行下面这句即可。
kubectl apply -f https://git.io/weave-kube-1.6
注:flannel的yaml文件在此:
https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml
自此kubernetes1.6.1安装完毕。若需要安装dashbord参考下面的步骤。
步骤8:安装dashboard,直接执行下面这句。
kubectl create -f
https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml
注意:在步骤9之前先使用kubectl get pods -n kube-system查看所有的pod是否全部是running状态,是的话,就可以执行步骤9了。
步骤9:访问dashboard。
kubectl edit svc/kubernetes-dashboard --namespace=kube-system
编辑打开的文件,修改type: ClusterIP 为 type: NodePort.(位置大概在文件的结尾处)。有可能你的文件type本来就是NodePort,则不需要修改。
然后执行:
kubectl get svc kubernetes-dashboard -o json --namespace=kube-system或者kubectl get svc --all-namespaces得到kubernetes-dashboard svc的nodePort,一般是30000以上。
最后在浏览器输入http://你的主机的IP:31567(31567是我的主机上的kubernetes-dashboard svc端口,需要修改为你的)。
2.安装EFK
可以参照:
https://github.com/opsnull/follow-me-install-kubernetes-cluster
步骤1:首先克隆他的项目到你的机器上
git clone
https://github.com/opsnull/follow-me-install-kubernetes-cluster
步骤2:给node设置标签,首先kubectl get node 看一下你的node的名称。
kubectl label nodes 你的node的名称beta.kubernetes.io/fluentd-ds-ready=true
步骤3:首先进入yaml文件所在的目录,执行kubectl create -f .(注意.不能掉)。
yaml文件所在的目录为:
follow-me-install-kubernetes-cluster/manifests/EFK
注意:在执行步骤4之前,首先使用kubect get pods -n kube-system查看所有的pod是否是running状态。是的话,执行步骤4。如果是containercreating状态,是在网上拉取镜像,耐心等待。
当然你也可以直接在前面我们创建的dashboard里面查看pod的状态。
步骤4:创建代理,访问kibana。
nohup kubectl proxy --address=’你的主机IP' --port=8086 --accept-hosts='^*$' &
步骤5:浏览器访问Kibana。
IP:8086/api/v1/proxy/namespaces/kube-system/services/kibana-logging
8086端口号是你上面指定的,一致即可,也可以指定为别的。两处要一致。
注:由于kibana初始化需要较长的时间,大概10~20分钟左右,耐心等待,也可能较快。
3.安装heapster插件
步骤1:首先克隆他的项目到你的机器上(若没有克隆的话)
git clone
https://github.com/opsnull/follow-me-install-kubernetes-cluster
注:由于第二节你已经克隆过了,就不需要克隆了。
步骤2:然后进入下面的目录,执行kubectl create -f .注意(-f后面的点不能掉)
目录:follow-me-install-kubernetes-cluster/manifests/heapster
最后,使用kubectl get pods -n kube-system查看是否所有的pod都为running状态,如果是containercreating状态,耐心等待,正在下载镜像。
在所有的pod都为running状态之后,查看kubernetes的dashboard会发现多了cpu和memory资源使用情况的图表(可能加载的比较慢,多刷新几下)。出现说明安装成功。
4.安装kube-prometheus
参照
https://github.com/coreos/prometheus-operator.git
步骤1:执行下面这句,克隆他的项目到本地。
git clone https://github.com/coreos/prometheus-operator.git
注:可能会提示你输入你在github的用户名和密码,输入即可。
步骤2:然后先进入下面的目录。
目录:prometheus-operator/contrib/kube-prometheus
执行下面这句:
hack/cluster-monitoring/deploy
步骤3:最后,在所有的pod都为running状态之后(使用kubectl get pods -n monitoring查看),你可以分别访问。
Prometheus UI on node port 30900
Alertmanager UI on node port 30903
Grafana on node port 30902
方法:在浏览器输入自己主机的IP地址加上上面的端口号即可访问Prometheus 、Alertmanager、Grafana 的dashboard。
注:删除prometheus可以执行下面这句,同样需要先进入 prometheus-operator/contrib/kube-prometheus目录。
hack/cluster-monitoring/teardown
5.注意
1.你必须有一个vpn账号。
2.我测试的环境是ubuntu16.04 desktop版和ubuntu16.04 server版。
3.步骤必须一步一步全部执行。