kubernetes使用flannel网络插件服务状态显示CrashLoopBackOff

使用Kubeadm安装K8s集群,在安装flannel网络插件后,发现pod: kube-flannel-ds 一直是CrashLoopBackOff

报错内容如下:

log is DEPRECATED and will be removed in a future version. Use logs instead.
I0823 03:28:21.342352       1 main.go:514] Determining IP address of default interface
I0823 03:28:21.343054       1 main.go:527] Using interface with name eth0 and address 172.20.101.105
I0823 03:28:21.343152       1 main.go:544] Defaulting external address to interface address (172.20.101.105)
I0823 03:28:21.540726       1 kube.go:126] Waiting 10m0s for node controller to sync
I0823 03:28:21.540872       1 kube.go:309] Starting kube subnet manager
I0823 03:28:22.550948       1 kube.go:133] Node controller sync successful
I0823 03:28:22.551040       1 main.go:244] Created subnet manager: Kubernetes Subnet Manager - cnvs-kubm-101-105
I0823 03:28:22.551061       1 main.go:247] Installing signal handlers
I0823 03:28:22.551355       1 main.go:386] Found network config - Backend type: vxlan
I0823 03:28:22.551530       1 vxlan.go:120] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false
E0823 03:28:22.552149       1 main.go:289] Error registering network: failed to acquire lease: node "cnvs-kubm-101-105" pod cidr not assigned
I0823 03:28:22.639464       1 main.go:366] Stopping shutdownHandler...

[[email protected] kubeinstall]# kubectl get pod -n kube-system
NAME                                        READY   STATUS              RESTARTS   AGE
coredns-5c98db65d4-6h976                    0/1     ContainerCreating   0          62m
coredns-5c98db65d4-hgwwd                    0/1     ContainerCreating   0          62m

kube-controller-manager-cnvs-kubm-101-105   1/1     Running             0          57m
kube-flannel-ds-amd64-2hpct                 0/1     CrashLoopBackOff    16         60m
kube-flannel-ds-amd64-6cq6j                 0/1     CrashLoopBackOff    15         54m
kube-flannel-ds-amd64-9bvpb                 0/1     CrashLoopBackOff    15         54m
kube-flannel-ds-amd64-9kv6n                 0/1     CrashLoopBackOff    16         59m
kube-flannel-ds-amd64-dt47n                 0/1     CrashLoopBackOff    15         54m
kube-flannel-ds-amd64-f24jg                 0/1     CrashLoopBackOff    15         58m
kube-flannel-ds-amd64-gf6pn                 0/1     CrashLoopBackOff    15         54m
kube-flannel-ds-amd64-h5zqm                 0/1     CrashLoopBackOff    15         56m
kube-flannel-ds-amd64-jqbxz                 0/1     CrashLoopBackOff    15         54m
kube-flannel-ds-amd64-vw2rr                 0/1     CrashLoopBackOff    15         54m
kube-flannel-ds-amd64-vwwbs                 0/1     CrashLoopBackOff    15         54m

解决办法1:

执行Kubeadm Init的时候,增加 --pod-network-cidr 10.244.0.0/16参数。

注意,安装Flannel时,kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml如果yml中的"Network": "10.244.0.0/16"和--pod-network-cidr不一样,就修改成一样的。不然可能会使得Node间Cluster IP不通。

解决办法2:

可以先打印默认集群初始化配置,修改后引导集群:

kubeadm config print init-defaults > kubeadm-init.yaml

修改后内容如下:


apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 172.19.8.111
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: node-01
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: "172.19.8.250:8443"
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.15.0
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.245.0.0/16   《=== 注意网段
  podSubnet: "10.244.0.0/16"     《=== 注意网段
scheduler: {}

master上面都配置Nginx反向代理 API Server;
172.20.101.253 是master节点的vip;
Nginx 代理端口为 16443 端口;
API Server使用 6443 端口;

使用config指定初始化集群。


### 测试运行
kubeadm init --config=/etc/kubeinstall/kubeadm-init.yaml --upload-certs --dry-run 

### 下载软件包 (按需使用)
kubeadm config images pull

原文地址:https://blog.51cto.com/michaelkang/2432048

时间: 2024-11-02 12:18:07

kubernetes使用flannel网络插件服务状态显示CrashLoopBackOff的相关文章

kubernetes之Flannel网络插件部署

Kubernetes系统上Pod网络的实现依赖于第三方插件,而Flannel是由CoreOS主推的目前比较主流的容器网络解决方案,CNI插件有两种功能:网络配置和网络策略,由于flannel比较简单,并不支持网络策略,flannel项目自身只是一个框架,真正提供网络功能的是它的后端实现,目前,Flannel支持三种不同后端实现,分别是: UDP VXLAN host-gw UDP是Flannel项目最早支持的一种方式,是性能最差的方式,目前已被废弃. 用的最多的是VXLAN和host-gw模式的

k8s的flannel网络插件配置

flannel的网络插件配置 Kubernetes网络通信需要解决以下问题:            (1)容器间通信:同一个Pod内的多个容器间的通信,lo            (2)Pod通信:Pod IP  <-直达->  Pod IP            (3)Pod与Service通信:Pod IP  <-->  Cluster IP            (4)Service与集群外部客户端的通信:(ingress.nodeport.loadbalancer)   k

K8S 之 Flannel网络插件安装

一.flannel的作用 1.CNI网络插件最主要的功能就是实现POD资源能够跨宿主机是进行能信 #test-nodes1主机无法ping通test-nodes2主机的pod容器 [[email protected] ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-ds1-qg45q 1/1 Running 0 2d12h 172.7.

2.kubernetes的CNI网络插件-Flannel

目录 1.集群架构 1.1.下载软件,解压,做软链接 1.2.创建目录 1.3.拷贝证书文件 1.4.创建配置 1.5.创建启动脚本 1.6.授权和创建日志目录 1.7.创建supervisor配置 2.flannel host-gw模型(三选一) 2.1.启动服务并检查 3.flannel vxlan模型(三选一) 4.flannel 直接路由模型(三选一) 1.集群架构 主机名 角色 IP地址 hdss7-21.host.com flannel 10.4.7.21 hdss7-22.host

flannel网络插件介绍

插件介绍 flannel项目本身只是一个框架 真正为用户提供容器网络功能的是后端实现 目前支持三种方式 1.VXLAN 2.host-gw 3.UDP flannel会在宿主机上创建一个flannel0设备和创建一系列的路由表规则 flannel0设备介绍 负责在操作系统内核和用户应用程序之间传递IP包   1.内核态向用户态流动      当操作系统将一个IP包发送给flannel0设备后,flannel0设备就会把这个IP包交给      创建这个设备的应用程序也就是flanneld进程 

Kubernetes(k8s)底层网络原理刨析

目录 1 典型的数据传输流程图 2 3种ip说明 3 Docker0网桥和flannel网络方案 4 Service和DNS 4.1 service 4.2 DNS 5 外部访问集群 5.1 外部访问service 5.2 ingress 附 扩展实战 附A 用service实现DB的管理 附B 用NetworkPolicy实现访问权限隔离 附C 用secret对象管理账户密码 1 典型的数据传输流程图 ? 一个外部的business-manager请求,首先进入集群的入口(ingress),i

Kubernetes Flannel网络部署

之前的博客已经介绍了部署一个简单的Kubernetes集群,但是这个集群环境没有一个合理的网络配置.在实际生产中要实现集群中各个组件的通信,就需要使用第三方提供的网络插件. Flannel 二进制安装 1.下载fannel组件 wget https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz 2.安装Flannel 网络组件 tar xf flannel-v0.1

Android4.4 Telephony流程分析——GsmServiceStateTracker管理网络服务状态

本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉. 本文主要介绍GsmServiceStateTracker是怎么管理网络的?手机开机后,怎么去注册网络?网络状态是怎么变换传递的. Android在ServiceState.java中定义了四种ServiceState状态和16中无线通信网络类型: public class ServiceState implements Parcelable { /** * Normal operation

二进制搭建kubernetes多master集群【二、配置flannel网络】

上一篇我们已经搭建etcd高可用集群,参考:二进制搭建kubernetes多master集群[一.使用TLS证书搭建etcd集群] 此文将搭建flannel网络,目的使跨主机的docker能够互相通信,也是保障kubernetes集群的网络基础和保障,下面正式开始配置. 一.部署 Flannel 在所有集群节点都安装Flannel,下面的操作以etcd集群的三个节点为例都执行一遍 1.下载安装Flannel wget https://github.com/coreos/flannel/relea