重新部署一套K8S集群时,由于K8S需要扁平化的网络,所以当执行下面的

root@master ~]# kubectl apply -f  kube-flannel.yml

会开始下载镜像,然后去启动,结果等了几分钟,一直没有好

[root@k8s-master ~]# kubectl get pod -n kube-system
NAME                                 READY   STATUS                  RESTARTS   AGE
coredns-58cc8c89f4-9gn5g             0/1     Pending                 0          27m
coredns-58cc8c89f4-xxzx7             0/1     Pending                 0          27m
etcd-k8s-master                      1/1     Running                 1          26m
kube-apiserver-k8s-master            1/1     Running                 1          26m
kube-controller-manager-k8s-master   1/1     Running                 1          26m
kube-flannel-ds-amd64-2dqlf          0/1     Init:ImagePullBackOff   0          11m
kube-proxy-rn98b                     1/1     Running                 1          27m
kube-scheduler-k8s-master            1/1     Running                 1          26m
[root@k8s-master ~]# kubectl get pod -n kube-system

去查询pod

[root@k8s-master ~]# kubectl describe pod kube-flannel-ds-amd64-2dqlf -n kube-system
Name:         kube-flannel-ds-amd64-2dqlf
Namespace:    kube-system
Priority:     0
Node:         k8s-master/192.168.180.130
Start Time:   Thu, 19 Dec 2019 22:36:13 +0800
Labels:       app=flannel
              controller-revision-hash=67f65bfbc7
              pod-template-generation=1
              tier=node
Annotations:  <none>
Status:       Pending
IP:           192.168.180.130
IPs:
  IP:           192.168.180.130
Controlled By:  DaemonSet/kube-flannel-ds-amd64
Init Containers:
  install-cni:
    Container ID:
    Image:         quay.io/coreos/flannel:v0.11.0-amd64
    Image ID:
    Port:          <none>
    Host Port:     <none>
    Command:
      cp
    Args:
      -f
      /etc/kube-flannel/cni-conf.json
      /etc/cni/net.d/10-flannel.conflist
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /etc/cni/net.d from cni (rw)
      /etc/kube-flannel/ from flannel-cfg (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from flannel-token-r52cd (ro)
Containers:
  kube-flannel:
    Container ID:
    Image:         quay.io/coreos/flannel:v0.11.0-amd64
    Image ID:
    Port:          <none>
    Host Port:     <none>
    Command:
      /opt/bin/flanneld
    Args:
      --ip-masq
      --kube-subnet-mgr
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Limits:
      cpu:     100m
      memory:  50Mi
    Requests:
      cpu:     100m
      memory:  50Mi
    Environment:
      POD_NAME:       kube-flannel-ds-amd64-2dqlf (v1:metadata.name)
      POD_NAMESPACE:  kube-system (v1:metadata.namespace)
    Mounts:
      /etc/kube-flannel/ from flannel-cfg (rw)
      /run/flannel from run (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from flannel-token-r52cd (ro)
Conditions:
  Type              Status
  Initialized       False
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  run:
    Type:          HostPath (bare host directory volume)
    Path:          /run/flannel
    HostPathType:
  cni:
    Type:          HostPath (bare host directory volume)
    Path:          /etc/cni/net.d
    HostPathType:
  flannel-cfg:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      kube-flannel-cfg
    Optional:  false
  flannel-token-r52cd:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  flannel-token-r52cd
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     :NoSchedule
                 node.kubernetes.io/disk-pressure:NoSchedule
                 node.kubernetes.io/memory-pressure:NoSchedule
                 node.kubernetes.io/network-unavailable:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute
                 node.kubernetes.io/pid-pressure:NoSchedule
                 node.kubernetes.io/unreachable:NoExecute
                 node.kubernetes.io/unschedulable:NoSchedule
Events:
  Type     Reason     Age                    From                 Message
  ----     ------     ----                   ----                 -------
  Normal   Scheduled  <unknown>              default-scheduler    Successfully assigned kube-system/kube-flannel-ds-amd64-2dqlf to k8s-master
  Warning  Failed     5m29s                  kubelet, k8s-master  Failed to pull image "quay.io/coreos/flannel:v0.11.0-amd64": rpc error: code = Unknown desc = context canceled
  Warning  Failed     4m21s (x2 over 5m2s)   kubelet, k8s-master  Failed to pull image "quay.io/coreos/flannel:v0.11.0-amd64": rpc error: code = Unknown desc = Error response from daemon: Get https://quay.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
  Normal   Pulling    3m31s (x4 over 7m5s)   kubelet, k8s-master  Pulling image "quay.io/coreos/flannel:v0.11.0-amd64"
  Warning  Failed     3m18s (x4 over 5m29s)  kubelet, k8s-master  Error: ErrImagePull
  Warning  Failed     3m18s                  kubelet, k8s-master  Failed to pull image "quay.io/coreos/flannel:v0.11.0-amd64": rpc error: code = Unknown desc = Error response from daemon: Get https://quay.io/v2/coreos/flannel/manifests/v0.11.0-amd64: Get https://quay.io/v2/auth?scope=repository%3Acoreos%2Fflannel%3Apull&service=quay.io: net/http: TLS handshake timeout
  Normal   BackOff    3m5s (x6 over 5m29s)   kubelet, k8s-master  Back-off pulling image "quay.io/coreos/flannel:v0.11.0-amd64"
  Warning  Failed     2m2s (x11 over 5m29s)  kubelet, k8s-master  Error: ImagePullBackOff

 发现时镜像拉取失败的原因,有可能时网络原因导致的,之前都没有遇到过

kube-flannel-ds-amd64-2dqlf          0/1     Init:ImagePullBackOff   0          11m

 这个状态,应该时yaml中,有一个InitC,初始化的容器,便去查看一番

k8s中flannel:镜像下载不了_edn

 

 所以只能把别的集群中的镜像导出一份,在导入

[root@k8s-master mnt]# docker load -i flannel.tar
7bff100f35cb: Loading layer [==================================================>]  4.672MB/4.672MB
5d3f68f6da8f: Loading layer [==================================================>]  9.526MB/9.526MB
9b48060f404d: Loading layer [==================================================>]  5.912MB/5.912MB
3f3a4ce2b719: Loading layer [==================================================>]  35.25MB/35.25MB
9ce0bb155166: Loading layer [==================================================>]   5.12kB/5.12kB
Loaded image: quay.io/coreos/flannel:v0.11.0-amd64
[root@k8s-master mnt]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
registry.aliyuncs.com/google_containers/kube-apiserver            v1.16.0             b305571ca60a        3 months ago        217MB
registry.aliyuncs.com/google_containers/kube-proxy                v1.16.0             c21b0c7400f9        3 months ago        86.1MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.16.0             06a629a7e51c        3 months ago        163MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.16.0             301ddc62b80b        3 months ago        87.3MB
registry.aliyuncs.com/google_containers/etcd                      3.3.15-0            b2756210eeab        3 months ago        247MB
registry.aliyuncs.com/google_containers/coredns                   1.6.2               bf261d157914        4 months ago        44.1MB
quay.io/coreos/flannel                                            v0.11.0-amd64       ff281650a721        10 months ago       52.6MB
registry.aliyuncs.com/google_containers/pause                     3.1                 da86e6ba6ca1        24 months ago       742kB
[root@k8s-master mnt]# cd
[root@k8s-master ~]# kubectl get node
NAME         STATUS     ROLES    AGE   VERSION
k8s-master   Ready      master   54m   v1.16.1
k8s-node01   NotReady   <none>   15m   v1.16.1
k8s-node02   Ready      <none>   17m   v1.16.1
[root@k8s-master ~]# kubectl get pod -n kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
coredns-58cc8c89f4-9gn5g             1/1     Running   0          54m
coredns-58cc8c89f4-xxzx7             1/1     Running   0          54m
etcd-k8s-master                      1/1     Running   1          53m
kube-apiserver-k8s-master            1/1     Running   1          53m
kube-controller-manager-k8s-master   1/1     Running   2          53m
kube-flannel-ds-amd64-4bc88          1/1     Running   0          17m
kube-flannel-ds-amd64-lzwd6          1/1     Running   0          19m
kube-flannel-ds-amd64-vw4vn          1/1     Running   0          15m
kube-proxy-bs8sd                     1/1     Running   1          15m
kube-proxy-nfvtt                     1/1     Running   0          17m
kube-proxy-rn98b                     1/1     Running   1          54m
kube-scheduler-k8s-master            1/1     Running   1          53m
[root@k8s-master ~]# kubectl get node
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   54m   v1.16.1
k8s-node01   Ready    <none>   15m   v1.16.1
k8s-node02   Ready    <none>   17m   v1.16.1

稍等一会,就可以了。由于百度云连接经常失效,有需要镜像的,可以和我联系。

之前下载镜像是用的香港阿里云,一年100多,买的特价。

现在有了服务器,就专门安装了一个软路由,按月买的代理,100G,别的虚拟机的网关和DNS都是设置的软路由的IP,这样也能下载。

 可以ping通谷歌

k8s中flannel:镜像下载不了_docker_02

 设置配置

 k8s中flannel:镜像下载不了_5g_03

 k8s中flannel:镜像下载不了_docker_04

 下载演示:

k8s中flannel:镜像下载不了_5g_05