kubeadm 搭建 Kubernetes 集群(3)

这里再爆料一个坑,底下的 kubeadm join --token=b17964.5d8a3c14e99cf6aa 192.168.1.167 这条命令一定保存好,因为后期没法重现的,你们老大再让你添加机器的时候如果没这个你会哭的

3.5、加入 node

上面所有坑大约说的差不多了,直接上命令了

# 处理主机名 echo "192-168-1-189.node" > /etc/hostname echo "127.0.0.1 192-168-1-189.node" >> /etc/hosts sysctl kernel.hostname=192-168-1-189.node # 拉取镜像 images=(kube-proxy-amd64:v1.4.4 kube-discovery-amd64:1.0 kubedns-amd64:1.7 kube-scheduler-amd64:v1.4.4 kube-controller-manager-amd64:v1.4.4 kube-apiserver-amd64:v1.4.4 etcd-amd64:2.2.5 kube-dnsmasq-amd64:1.3 exechealthz-amd64:1.1 pause-amd64:3.0 kubernetes-dashboard-amd64:v1.4.1) for imageName in ${images[@]} ; do docker pull mritd/$imageName docker tag mritd/$imageName gcr.io/google_containers/$imageName docker rmi mritd/$imageName done # 装 rpm tee /etc/yum.repos.d/mritd.repo << EOF [mritdrepo] name=Mritd Repository baseurl=https://rpm.mritd.me/centos/7/x86_64 enabled=1 gpgcheck=1 gpgkey=https://mritd.b0.upaiyun.com/keys/rpm.public.key EOF yum makecache yum install -y kubelet kubectl kubernetes-cni kubeadm ebtables # 清理目录(没初始化过只需要删目录) rm -r -f /etc/kubernetes /var/lib/kubelet /var/lib/etcd; # 启动 kubelet systemctl enable kubelet systemctl start kubelet # 初始化加入集群 kubeadm join --token=b17964.5d8a3c14e99cf6aa 192.168.1.167

同样完美截图

join master

get node

3.6、部署 weave 网络

再没部署 weave 时,dns 是启动不了的,如下

dns not work

官方给出的命令是这样的

kubectl create -f https://git.io/weave-kube

本着 “刨根问底挖祖坟” 的精神,先把这个 yaml 搞下来

wget https://git.io/weave-kube -O weave-kube.yaml

然后同样的套路,打开看一下镜像,利用 Docker Hub 做中转,搞下来再 load 进去,然后 create -f 就行了

docker pull mritd/weave-kube:1.7.2 docker tag mritd/weave-kube:1.7.2 weaveworks/weave-kube:1.7.2 docker rmi mritd/weave-kube:1.7.2 kubectl create -f weave-kube.yaml

完美截图

create weave

3.7、部署 dashboard

dashboard 的命令也跟 weave 的一样,不过有个大坑,默认的 yaml 文件中对于 image 拉取策略的定义是 无论何时都会去拉取镜像,导致即使你 load 进去也无卵用,所以还得先把 yaml 搞下来然后改一下镜像拉取策略,最后再 create -f 即可

wget https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml -O kubernetes-dashboard.yaml

编辑 yaml 改一下 imagePullPolicy,把 Always 改成 IfNotPresent(本地没有再去拉取) 或者 Never(从不去拉取) 即可

IfNotPresent

最后再利用 Dokcer Hub 中转,然后创建(实际上 dashboard 已经有了 v1.4.1,我这里已经改了)

kubectl create -f kubernetes-dashboard.yaml

截图如下

create dashboard

通过 describe 命令我们可以查看其暴露出的 NodePoint,然后便可访问

describe dashboard

show dashboard

四、其他的一些坑

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/503702fd0d8b5d26f64deb54accf5299.html