kubeadm部署单master节点( 五 )


Flannel通过给每台宿主机分配一个子网的方式为容器提供虚拟网络 , 它基于Linux TUN/TAP , 使用UDP封装IP包来创建overlay网络 , 并借助etcd维护网络的分配情况
(1)默认方法默认大家从网上的教程都会使用这个命令来初始化 。
~]# kubectl apply -f 事实上很多用户都不能成功 , 因为国内网络受限 , 所以可以这样子来做 。
(2)更换flannel镜像源修改本地的hosts文件添加如下内容以便解析才能下载该文件
199.232.28.133raw.githubusercontent.com然后下载flannel文件
[root@master ~]# curl -o kube-flannel.yml编辑镜像源 , 默认的镜像地址我们修改一下 。 把yaml文件中所有的quay.io 修改为quay-mirror.qiniu.com
[root@master ~]# sed -i 's/quay.io/quay-mirror.qiniu.com/g' kube-flannel.yml此时保存保存退出 。 在master节点执行此命令 。
[root@master ~]# kubectl apply -f kube-flannel.yml podsecuritypolicy.policy/psp.flannel.unprivileged createdclusterrole.rbac.authorization.k8s.io/flannel createdclusterrolebinding.rbac.authorization.k8s.io/flannel createdserviceaccount/flannel createdconfigmap/kube-flannel-cfg createddaemonset.apps/kube-flannel-ds-amd64 createddaemonset.apps/kube-flannel-ds-arm64 createddaemonset.apps/kube-flannel-ds-arm createddaemonset.apps/kube-flannel-ds-ppc64le createddaemonset.apps/kube-flannel-ds-s390x created这样子就可以成功拉取flannel镜像了 。 当然你也可以使用我提供给大家的kube-flannel.yml文件 。

  • 查看kube-flannel的pod是否运行正常
[root@master ~]# kubectl get pod -n kube-system | grep kube-flannelkube-flannel-ds-amd64-8svs61/1Running044skube-flannel-ds-amd64-k5k4k0/1Running044skube-flannel-ds-amd64-mwbwp0/1Running044s(3)无法拉取镜像解决方法像上面查看kube-flannel的pod时发现不是Running , 这就表示该pod有问题 , 我们需要进一步分析 。
执行kubectl describe pod xxxx如果有以下报错:
NormalBackOff24m (x6 over 26m)kubelet, master3Back-off pulling image "quay-mirror.qiniu.com/coreos/flannel:v0.12.0-amd64"WarningFailed11m (x64 over 26m)kubelet, master3Error: ImagePullBackOff或者是
Error response from daemon: Get : net/http: TLS handshake timeout上面的这些都表示是网络问题不能拉取镜像 , 我这里给大家提前准备了flannel的镜像 。 导入一下就可以了 。
[root@master ~]# docker load -i flannel.tar2.7、验证节点是否可用稍等片刻 , 执行如下指令查看节点是否可用
[root@master ~]# kubectl get nodesNAMESTATUSROLESAGEVERSIONmasterReadymaster82mv1.17.6node1Ready60mv1.17.6node2Ready55mv1.17.6目前节点状态是Ready , 表示集群节点现在是可用的 。
3、测试kubernetes集群3.1、kubernetes集群测试(1)创建一个nginx的pod现在我们在kubernetes集群中创建一个nginx的pod , 验证是否能正常运行 。
在master节点执行一下步骤:
[root@master ~]# kubectl create deployment nginx --image=nginxdeployment.apps/nginx created[root@master ~]# kubectl expose deployment nginx --port=80 --type=NodePortservice/nginx exposed现在我们查看pod和service
[root@master ~]# kubectl get pod,svc -o wideNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATED NODEREADINESS GATESpod/nginx-86c57db685-kk7551/1Running029m10.244.1.10node1