flannel

node节点flannel网络问题导致该node上的pod与其他node节点网络不通的排查思路与解决

…衆ロ難τιáo~ 提交于 2020-08-04 13:59:02
node节点flannel网络问题导致该node上的pod与其他node节点网络不通的排查思路与解决方法 一、问题发现 在部署一个replicas:4的nginx deployment之后在master节点通过curl + podIP + 端口的形式测试时,发现两次访问不到,两次可以访问得到。 二、问题排查 1、通过ping pod的ip地址,发现node1节点的pod全都ping不通,问题很有可能就出在node1节点上 2、通过ip a查看node1节点发现flannel.1没有ip地址,可能原因就出现在这。 3、刚开始以为是iptables规则可能导致节点flannel网络没起来,于是就把iptables规则全清了,重启了kubelet后发现还是没有flannel网络。 4、然后在master节点通过kubectl logs -f -n kube-system kube-flannel的Pod来查看对应node1的flannel Pod的日志发现一个错误日志,还是网络down掉了 failed to add vxlanRoute (10.244.0.0/24 -> 10.244.0.0): network is down 5、尝试将node1节点的flannel.1网络删除,在node1节点上执行 ip link delete flannel.1 6、在 /etc/sysctl

kubernetes-master安装

给你一囗甜甜゛ 提交于 2020-07-25 07:34:17
导出配置文件 kubeadm config print init-defaults > kubernetes-config.yaml 修改配置文件 vim kubernetes-config.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: 192.168.100.10 bindPort: 6443 nodeRegistration: criSocket: /var/run/dockershim.sock name: master01 taints: effect: NoSchedule key: node-role.kubernetes.io/master apiServer: timeoutForControlPlane: 4m0s apiVersion: kubeadm.k8s.io/v1beta2

Flannel网络模型

眉间皱痕 提交于 2020-07-25 04:27:45
Flannel 是 CoreOS 公司针对 Kubernetes 设计的一个基于CNI标准的网络工具, 其目在于帮助 Kuberentes 实现一个简单的3层网络。 常用网络术语 2层网络 OSI 网络模型中的数据链路层. 处理网络上两个相邻节点之间的帧传递. 以太网就工作在第2层, MAC地址表示为子层. 3层网络 OSI 网络模型中的网络层. 处理主机之间路由数据包. IPv4、IPv6、ICMP 工作在第3层. VXLAN VXLAN代表虚拟可扩展的LAN. VXLAN是一种封装和覆盖协议, 可在现有网络上运行. VXLAN虚拟化与VLAN类似, 但提供更大的灵活性和功能, VLAN只有4096个网络ID. VXLAN用于通过在UDP数据报中封装第2层以太网帧来实现大型网络部署. Overlay Overlay网络是建立在现有网络之上的虚拟逻辑网络. Overlay网络通常用于在现有网络之上提供有用的抽象, 并分离和保护不同的逻辑网络. 数据封装 数据封装是指在附加层中封装网络数据包以提供其他上下文和信息的过程. 在Overlay网络中, 数据封装被用于从虚拟网络转换到底层地址空间, 从而能路由到不同的位置. 网状网络(Mesh NetWork) 网状网络是指每个节点连接到许多其他节点以协作路由、并实现更大连接的网络. 网状网络允许通过多个路径进行路由, 从而提供更可靠的网络

简单聊聊Calico与Flannel

蹲街弑〆低调 提交于 2020-07-24 23:39:04
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本人在接触k8s的2年多过程中对于flannel和calico都使用过,也查阅资料了解过此两种网络的底层,今天简单聊聊Calico与Flannel两种网络,如有错误之处欢迎指正。 容器虚拟化网络方案,总体分为2种截然不同的发展路线: 基于隧道 基于路由 基于隧道 1、隧道方案最具普适性,在任何网络环境下都可以正常工作,这与它的原理密不可分。 2、最常见的隧道方案是flannel vxlan模式,以及calico的ipip模式,其核心原理包含了2个部分。 分配网段 每台宿主机上都有网络插件的agent进程,它们连接到etcd集中式存储,从虚拟IP池中申请一个IP段占位己有,宿主机上每个容器则从IP段中分配得到1个虚拟IP。 封装/解封 1)、当不同宿主机上的容器互相访问时,数据包的源IP和目标IP都是容器IP。 2)、数据包经过宿主机的agent进程进行封装后,新数据包的源IP和目标IP则变成了两端宿主机的物理IP。 3)、数据包送到目标宿主机后,经过agent解封后得到原始数据包,并将数据包送入容器中处理,这就给两端容器营造了一种互通的感觉。 4)、因为物理IP属于3层网络,可以在互联网中经过中间路由设备互相送达,所以隧道方案对宿主机之间的网络环境没有特殊要求

跟着炎炎盐实践k8s---Kubernetes 1.16.10 二进制高可用集群部署之通用配置

元气小坏坏 提交于 2020-07-24 15:02:12
文档将介绍如何使用二进制部署Kubernetes v1.16高可用集群,而不是使用自动化部署(kubeadm)集群。在部署过程中,将详细列出各个组件启动参数,以及相关配置说明。部署完成后,将理解k8s各个组件的交互原理,并且可以快速解决实际问题。 * 环境及组件版本 Centos7.2 Kubernetes v1.16.10 Docker 18.09 .01(需要和k8s版本匹配) Etcd 3.3.13 Flanneld 0.12.0 一、 环境准备 服务器准备 master节点 10.13.33.29 master-01 10.13.33.40 master-02 10.13.33.38 master-03 node节点 10.13.33.31 node-01 修改主机名 为对应服务器设置永久主机名 cat >> /etc/hosts <<EOF 10.13.33.29 master-01 10.13.33.40 master-02 10.13.33.38 master-03 10.13.33.31 node-01 EOF hostnamectl set-hostname master-01 #所有机器按照要求修改 bash #刷新主机名 更新PATH变量 k8s所有文件和配置都会存储在/opt/k8s/ 中,运行以下命令,配置环境变量 echo 'PATH=/opt/k8s

configuring flannel to use a non default interface in kubernetes

▼魔方 西西 提交于 2020-07-05 02:52:14
问题 Is there a way to define in which interface Flannel should be listening? According to his documentation adding FLANNEL_OPTIONS="--iface=enp0s8" in /etc/sysconfig/flanneld should work, but it isn't. My master node configuration is running in a xenial(ubuntu 16.04) vagrant: $ sudo kubeadm init --pod-network-cidr 10.244.0.0/16 --apiserver-advertise-address 10.0.0.10 $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml clusterrole "flannel"

kubeadm安装K8s 1.16集群

南笙酒味 提交于 2020-05-07 12:58:58
一、环境介绍 centos7.4 系统机器两台: 机器 主机名 10.1.31.36 kubernetes master 10.1.31.24 kubernetes node1 二、准备工作 以下步骤在两台台主机上都要操作。 需要pull docker镜像,请先安装docker。 1、K8s和docker版本关系 [`https://github.com/kubernetes/kubernetes`]() 2、安装docker 从CentOS OS存储库中使用docker,则docker版本可能较旧,无法与Kubernetes v1.13.0及更高版本一起使用。 这里我们安装18.06.3版本 yum install -y -q yum-utils device-mapper-persistent-data lvm2 > /dev/null 2>&1 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo > /dev/null 2>&1 yum install -y -q docker-ce-18.06.3.ce >/dev/null 2>&1 启动docker systemctl enable docker && systemctl start docker

一步一步搞定Kubernetes二进制部署(三)——组件安装(单节点)

无人久伴 提交于 2020-05-06 15:04:05
一步一步搞定Kubernetes二进制部署(三)——组件安装(单节点) 前言 ​ 前面两篇文章我们将基础的环境构建完成,包括etcd集群(含证书创建)、flannel网络设置、docker引擎安装部署等,本文将在三台服务器上搞定此次单节点的二进制方式部署的Kubernetes集群。 master节点上进行配置 1、创建工作目录 [root@master01 k8s]# mkdir -p /opt/kubernetes/{cfg,bin,ssl} 2、部署apiserver组件 2.1制作apiserver证书 2.1.1创建apiserver证书目录,编写证书生成脚本 [root@master01 k8s]# mkdir k8s-cert [root@master01 k8s]# cd k8s-cert/ [root@master01 k8s-cert]# cat k8s-cert.sh #先前已经在etcd集群搭建的时候给出该类文本的介绍和相关解释了,这里就不再赘述了主要注意下面的地址部分的规划写入 cat > ca-config.json <<EOF { "signing": { "default": { "expiry": "87600h" }, "profiles": { "kubernetes": { "expiry": "87600h", "usages": [

一步一步搞定Kubernetes二进制部署(二)——flannel网络配置(单节点)

烂漫一生 提交于 2020-05-06 15:03:36
一步一步搞定Kubernetes二进制部署(二)——flannel网络配置(单节点) 前言 ​ 前面搭建了单节点Kubernetes二进制部署的etcd集群流程的演示,本文将结合上次的文章继续部署Kubernetes单节点集群,完成集群的外部通信之flannel网络配置。 环境准备 ​ 首先,两个node节点安装docker-ce,可以查看我之前的有关docker部署的文章: 揭开docker的面纱——基础理论梳理和安装流程演示 ,这里我直接使用shell脚本安装了,注意其中的镜像加速最好使用自己在阿里云或其他地方申请的地址。 ​ 上次我是在实验环境中挂起了虚拟机,此时建议检查网络是否可以访问外网,然后检查三个节点的etcd集群健康状态,这里的三个环境已node01为例演示验证 [root@node01 opt]# ping www.baidu.com #两个node节点上测试验证docker服务是否开启 [root@node01 opt]# systemctl status docker.service #健康状态检查 [root@node01 ssl]# /opt/etcd/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://192

Kubernetes之使用kubeadm部署

这一生的挚爱 提交于 2020-05-05 21:43:59
  参考: https://www.cnblogs.com/caoxb/p/11243472.html   部署需要的脚本下载 git clone https://gitee.com/liuyueming/k8s-kubeadm.git   部署虚拟机规划 192.168.1.11 k8s-master 192.168.1.12 k8s-node1 192.168.1.13 k8s-node2   备注:第1步~第8步,所有的节点都要操作,第9、10步Master节点操作,第11步Node节点操作。 如果第9、10、11步操作失败,可以通过 kubeadm reset 命令来清理环境重新安装。   1,关闭防火墙  systemctl stop firewalld systemctl disable firewalld   2,关闭selinux setenforce 0   修改 /etc/selinux/config   修改 SELINUX=disabled   3,关闭swapoff swapoff -a    查看是否关闭 free   4,设置主机名和hosts    修改主机名并修改/etc/hosts 192.168.1.11 k8s-master 192.168.1.12 k8s-node1 192.168.1.13 k8s-node2   5