Calico

Kubernetes 1.17.0安装教程,基于kubeadm配置多节点集群

只谈情不闲聊 提交于 2020-01-10 16:03:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>  本文介绍在Centos7下,基于kubeadm安装Kubernetes集群,一个Master,多个Node。 软件介绍 Docker version 19.03.5, build 633a0ea Kubernetes version v1.17.0 CentOS-7-x86_64 内核版本 3.10.0-1062.el7.x86_64 CPU核数需要大于2,内存最好大于2GB 第一步:安装前准备 我这里是安装一个master,两个node,使用虚拟机安装,所以我先配置好一台之后,直接复制虚拟机,减少重复操作。 使用如下命令设置主机名: hostnamectl set-hostname master 禁用SELinux、防火墙、交换分区 setenforce 0 systemctl stop firewalld && systemctl disable firewalld swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 重置iptables iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

kuberneets 1.17 安装 calico 3.11

落花浮王杯 提交于 2020-01-08 09:47:46
安装之前确认 Requirement https://docs.projectcalico.org/v3.11/getting-started/kubernetes/requirements 主要在kublet启动时增加参数 --network-plugin=cni 实际安装过程参考 https://docs.projectcalico.org/v3.11/getting-started/kubernetes/installation/calico 随后安装 calicoctl https://docs.projectcalico.org/v3.11/getting-started/kubernetes/hardway/the-calico-datastore#calicoctl 通过 calicoctl 查看ippool 以及 node status https://docs.projectcalico.org/v3.11/getting-started/kubernetes/hardway/configure-ip-pools 测试网络环境 https://docs.projectcalico.org/v3.11/getting-started/kubernetes/hardway/test-networking 测试networkpolicy https://docs

Kubernetes 下零信任安全架构分析

十年热恋 提交于 2019-12-23 11:14:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 点击下载《不一样的 双11 技术:阿里巴巴经济体云原生实践》 本文节选自《不一样的 双11 技术:阿里巴巴经济体云原生实践》一书,点击上方图片即可下载! 作者 杨宁(麟童) 阿里云基础产品事业部高级安全专家 刘梓溪(寞白) 蚂蚁金服大安全基础安全安全专家 李婷婷(鸿杉) 蚂蚁金服大安全基础安全资深安全专家 简介 零信任安全最早由著名研究机构 Forrester 的首席分析师约翰.金德维格在 2010 年提出。零信任安全针对传统边界安全架构思想进行了重新评估和审视,并对安全架构思路给出了新的建议。 其核心思想是,默认情况下不应该信任网络内部和外部的任何人/设备/系统,需要基于认证和授权重构访问控制的信任基础。诸如 IP 地址、主机、地理位置、所处网络等均不能作为可信的凭证。零信任对访问控制进行了范式上的颠覆,引导安全体系架构从“网络中心化”走向“身份中心化”,其本质诉求是以身份为中心进行访问控制。 目前落地零信任概念包括 Google BeyondCorp、Google ALTS、Azure Zero Trust Framework 等,云上零信任体系,目前还是一个新兴的技术趋势方向,同样的零信任模型也同样适用于 Kubernetes,本文重点讲解一下 Kubernetes 下零信任安全架构的技术分析。

K8s 从懵圈到熟练 – 集群网络详解

℡╲_俬逩灬. 提交于 2019-12-15 12:00:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 作者 | 声东 阿里云售后技术专家 导读 :阿里云 K8S 集群网络目前有两种方案:一种是 flannel 方案;另外一种是基于 calico 和弹性网卡 eni 的 terway 方案。Terway 和 flannel 类似,不同的地方在于 terway 支持 Pod 弹性网卡,以及 NetworkPolicy 功能。本文中,作者基于当前的 1.12.6 版本,以 flannel 为例,深入分析阿里云 K8S 集群网络的实现方法。 鸟瞰 总体上来说,阿里云 K8S 集群网络配置完成之后,如下图所示:包括集群 CIDR、VPC 路由表、节点网络、节点的 podCIDR、节点上的虚拟网桥 cni0、连接 Pod 和网桥的 veth 等部分。 类似的图大家可能在很多文章中都看过,但因为其中相关配置过于复杂,比较难理解。这里我们可以看下这些配置背后的逻辑。 基本上我们可以把这些配置分三种情况来理解:集群配置,节点配置以及 Pod 配置。与这三种情况对应的,其实是对集群网络 IP 段的三次划分:首先是集群 CIDR,接着是为每个节点分配 podCIDR(即集群 CIDR 的子网段),最后在 podCIDR 里为每个 Pod 分配自己的 IP。 集群网络搭建 初始阶段 集群的创建,基于云资源 VPC 和 ECS,在创建完

Pods failed to start after switch cni plugin from flannel to calico and then flannel

…衆ロ難τιáo~ 提交于 2019-12-11 15:01:07
问题 I install kubernetes v1.11.5 from kubeadm with cni plugin flannel and everything is ok. But I after try to switch to calico I found that the cross machine pod communication is broken. So I switch back to flannel. But got error message when creating pod: It seems that I need to reset cni network? But I don't know how to solve this problem. My flannel and calico installation is follow kubeadm instruction with zero config update. 回答1: I use following steps to remove old calico configs from

Calico容器网络方案

巧了我就是萌 提交于 2019-12-09 13:36:26
Calico容器网络方案 Calico共有两个容器网络方案:Calico BGP和Calico IPIP。 Calico BGP方案 Calico BGP数据面如下: 同节点容器通信 容器A访问容器B,数据面流程如下: 容器A内的calic0设备的掩码长度为32,即与容器B属于不同网络,需要通过网关进行通信 容器A查找路由表,存在default路由,下一跳为169.254.1.1,且169.254.1.1可通过cali0直达 容器A发送ARP请求给169.254.1.1,ARP请求报文到达veth设备的另一端califXXX接收 由于califXXX设备使能了ARP proxy,Linux内核会以califXXX的MAC地址来响应ARP请求,并从califXXX发出; 容器A收到ARP响应后,得到169.254.1.1的MAC地址,封装二层报文,发送报文给169.254.1.1,报文从cali0设备发出 报文通过veth设备进入Host内核协议栈; 由于目的IP不在本节点,Host内核会进行报文转发(ip_forward已开启) Host内核超找路由表,发现路由条目,通过califYYYYYY设备可以直达 Host内核发送ARP请求给容器B,通过califYYYYYY设备发出 ARP请求报文通过veth设备到达容器B,容器B响应ARP请求,ARP响应通过veth设备到达Host内核

k8s 常见部署问题

大憨熊 提交于 2019-12-03 04:37:56
查看集群各服务的进程是都在正常运行 kubectl get cs -o wide kubectl get nodes -o wide kubectl get svc kubernetes 容器一直在 pendding,node 节点的负载却很低 kube-scheduler 负责调度,查看这个服务的日志 node 节点无法访问 CLUSTER-IP 和 端口不通 看 kube-proxy 的日志,如果出现 "Failed to list *core.Endpoints: endpoints is forbidden: User "system:node:foo" cannot list endpoints at the cluster scope" ,则是 RBAC 的原因。 kube-proxy 没有权限访问 apiserver 的相应接口,导致获取不到 CLUSTER-IP,从而无法配置 iptables 策略导致访问失败。 cat <<EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: system:kube-nodes namespace: "" roleRef: apiGroup: rbac

Calico配置双RR架构

孤人 提交于 2019-12-01 22:08:54
0 背景 由于本次部署的节点有20个,2个Master,18个Node,而Calico默认采用Full-mesh BGP,将导致建立的连接数过多,故引入RR完成路由的分发 1 节点及配置规划 1.1 地址规划 ip范围 角色 192.168.2.1-2 RR 192.168.2.3-20 RR-Client 1.2 关键配置 修改/etc/ansible/roles/calico/defaults 配置 本K8S集群运行在同网段kvm虚机上,虚机间没有网络ACL限制,因此可以设置CALICO_IPV4POOL_IPIP=off,如果你的主机位于不同网段,或者运行在公有云上需要打开这个选项 CALICO_IPV4POOL_IPIP=always # 设置 CALICO_IPV4POOL_IPIP=“off”,可以提高网络性能 CALICO_IPV4POOL_IPIP: "off" 安装完成后会发现,网卡并未像开启IPIP那样生成tunl0网卡,而是通过物理网卡获取到各节点POD网段的路由,说明配置成功; 查看路由表: 路由表一开始不一定每个节点都会宣告进来,待节点调度生成过POD后即可宣告路由,就可以看到更新后的路由表 配置全局禁用Full-mesh $ cat << EOF | calicoctl -f - apiVersion: projectcalico.org/v3 kind

calico 文件丢失问题

半城伤御伤魂 提交于 2019-12-01 12:34:23
1. 备份calico-node控制器YAML文件. kubectl get daemonset calico-node -n kube-system -o yaml --export > calico-node.yaml 2. 删除calico-node pods. kubectl delete -f calico-node.yaml -n kube-system 3. 关闭所有节点calico tunnel接口. ansible k8s -m shell -a "ip link set tunl0 down" --become 4. 开启所有节点calico tunnel接口. ansible k8s -m shell -a "ip link set tunl0 up" --become 5. 确认所有节点没有tunl接口相关路由. ansible k8s -m shell -a "route -n" --become 6. 通过calitoctl delete node export ETCD_ENDPOINTS="http://172.16.95.35:2379,http://172.16.95.36:2379,http://172.16.95.37:2379,http://172.16.95.38:2379,http://172.16.95.39:2379" for i

K8s 从懵圈到熟练 – 集群网络详解

ⅰ亾dé卋堺 提交于 2019-11-30 18:42:57
作者 | 声东 阿里云售后技术专家 **导读:**阿里云 K8S 集群网络目前有两种方案:一种是 flannel 方案;另外一种是基于 calico 和弹性网卡 eni 的 terway 方案。Terway 和 flannel 类似,不同的地方在于 terway 支持 Pod 弹性网卡,以及 NetworkPolicy 功能。本文中,作者基于当前的 1.12.6 版本,以 flannel 为例,深入分析阿里云 K8S 集群网络的实现方法。 鸟瞰 总体上来说,阿里云 K8S 集群网络配置完成之后,如下图所示:包括集群 CIDR、VPC 路由表、节点网络、节点的 podCIDR、节点上的虚拟网桥 cni0、连接 Pod 和网桥的 veth 等部分。 类似的图大家可能在很多文章中都看过,但因为其中相关配置过于复杂,比较难理解。这里我们可以看下这些配置背后的逻辑。 基本上我们可以把这些配置分三种情况来理解:集群配置,节点配置以及 Pod 配置。与这三种情况对应的,其实是对集群网络 IP 段的三次划分:首先是集群 CIDR,接着是为每个节点分配 podCIDR(即集群 CIDR 的子网段),最后在 podCIDR 里为每个 Pod 分配自己的 IP。 集群网络搭建 初始阶段 集群的创建,基于云资源 VPC 和 ECS,在创建完 VPC 和 ECS 之后,我们基本上可以得到如下图的资源配置