说明
通过 k8s集群部署-初始化master、添加node节点 可知,master 与 node 无法通信
k8s 支持多种网络插件,如: flannel、calico、canal等,通过这些插件,可让 master 与 node 之间进行通信,本文使用 flannel
flannel 简介
Flannel专门用于docker多机互联的一个工具,让集群中的不同节点主机创建的容器都具有全集群唯一的虚拟ip地址。
Flannel使用go语言编写。
本文中的 k8s Flannel 也是一个 docker
提示
在 k8s集群部署-初始化master、添加node节点 中,初始化 master 中,指定的下面配置:
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
就是配置 flannel网络插件的 ip
master 服务器
提示:只在 master 服务器执行
获取 kube-flannel.yml 文件
方式一(不推荐)
执行下面命令,获取 flannel 配置文件
提示:一般会下载失败
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
方式二:
执行 k8s集群部署-kube-flannel.yml v0.15.1 中的命令,创建 kube-flannel.yml 文件
拉取镜像
根据 kube-flannel.yml 配置文件创建资源
kubectl apply -f kube-flannel.yml
查看是否拉取完成
查看 kube-system 命名空间下的 pod
kubectl get pod -n kube-system
显示如下:
NAME READY STATUS RESTARTS AGE
coredns-9d85f5447-fzj8q 0/1 Pending 0 6h40m
coredns-9d85f5447-l487h 0/1 Pending 0 6h40m
etcd-master 1/1 Running 0 6h40m
kube-apiserver-master 1/1 Running 0 6h40m
kube-controller-manager-master 1/1 Running 0 6h40m
kube-flannel-ds-amd64-g6fsd 0/1 Init:ImagePullBackOff 0 36m
kube-flannel-ds-amd64-vljks 0/1 Init:ImagePullBackOff 0 36m
kube-flannel-ds-amd64-x6dld 0/1 Init:ImagePullBackOff 0 36m
kube-proxy-flpvx 1/1 Running 0 6h15m
kube-proxy-sw6vr 1/1 Running 0 5h46m
kube-proxy-xdwjt 1/1 Running 0 6h40m
kube-scheduler-master 1/1 Running 0 6h40m
STATUS解释:
Init:ImagePullBackOff表示拉取失败Pending:表示等待Running:表示成功运行,应该都是这种状态
提示:如果都是 Running,表示都成功;如果有别的状态,说明拉取失败,自行百度解决该问题
查看 node 节点状态
kubectl get node
显示如下:
NAME STATUS ROLES AGE VERSION
master Ready master 6h59m v1.17.4
node1 Ready <none> 6h34m v1.17.4
node2 Ready <none> 6h5m v1.17.4
解释: STATUS 显示 Ready,说明master 与 node 之间通信成功
解决Service ClusterIP 访问慢
按照 k8s1.17-Service ClusterIP 访问服务过慢 执行命令