Calico 是一个纯三层的协议,为 OpenStack 虚机和 Docker 容器提供多主机间通信。Calico 不使用重叠网络比如 flannel 和 libnetwork 重叠网络驱动,

Calico 依赖 etcd 在不同主机间共享和交换信息,存储 Calico 网络状态。Calico 网络中每个主机都要运行 Calico 组件,提供容器 interface 管理,动态路由,动态 ACL,报告状态等功能。

Calico 目前只支持 TCP、UDP、ICMP、ICMPv6 协议。

Calico 包括如下重要组件:Felix,etcd,BGP Client,BGP Route Reflector。

  • Felix:主要负责路由配置以及 ACLS 规则的配置以及下发,它存在在每个 node 节点上。
  • etcd:分布式键值存储,主要负责网络元数据一致性,确保 Calico 网络状态的准确性,可以与 kubernetes 共用。
  • BGPClient(BIRD):主要负责把 Felix 写入 kernel 的路由信息分发到当前 Calico 网络,确保 workload 间的通信的有效性。
  • BGPRoute Reflector(BIRD):大规模部署时使用,摒弃所有节点互联的 mesh 模式,通过一个或者多个 BGPRoute Reflector 来完成集中式的路由分发。

首先需要配置NetworkManager

在尝试使用Calico网络之前配置NetworkManager

NetworkManager操纵默认网络命名空间中接口的路由表,其中Calico veth对锚定用于连接到容器。这可能会干扰Calico代理正确路由的能力。

创建以下配置文件 /etc/NetworkManager/conf.d/calico.conf 以防止NetworkManager干扰接口:

[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*

修改从官网下载的yaml文件,并根据实际情况进行修改

vim calico.yaml# 注意修改如下选项:
# etcd 地址etcd_endpoints: "https://172.16.1.64:2379,https://172.16.1.65:2379,https://172.16.1.66:2379"# etcd 证书路径# If you're using TLS enabled etcd uncomment the following.# You must also populate the Secret below with these files. etcd_ca: "/calico-secrets/etcd-ca"  etcd_cert: "/calico-secrets/etcd-cert"etcd_key: "/calico-secrets/etcd-key"  # etcd 证书 base64 地址 (执行里面的命令生成的证书 base64 码,填入里面),填入后记得把括号去除data:etcd-key: (cat /etc/kubernetes/ssl/etcd-key.pem | base64 | tr -d '\n')etcd-cert: (cat /etc/kubernetes/ssl/etcd.pem | base64 | tr -d '\n')etcd-ca: (cat /etc/kubernetes/ssl/ca.pem | base64 | tr -d '\n')# 修改 pods 分配的 IP 段- name: CALICO_IPV4POOL_CIDRvalue: "10.254.60.0/18"

修改kubelet相应的设置,增加 cni 插件 --network-plugin=cni

Calico安装为CNI插件。必须通过传递--network-plugin=cni参数将kubelet配置为使用CNI网络。(在kubeadm上,这是默认设置。)

# vim  /etc/systemd/system/kubelet.service

中间配置增加

--network-plugin=cni \

# 重新加载配置

systemctl daemon-reload
systemctl restart kubelet.service
systemctl status kubelet.service

二进制安装calicoctl,部署到一台主master节点即可

# curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.3.1/calicoctl
# mv calicoctl /usr/local/bin/
# chmod +x /usr/local/bin/calicoctl

创建 calicoctl.cfg 配置文件

# mkdir /etc/calico
# vim /etc/calico/calicoctl.cfg
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:datastoreType: "kubernetes"kubeconfig: "/root/.kube/config"   #此处配置的calicoctl选择连接的是Kubernetes API datastore,而不是etcd数据库,因为是在主节点上进行的安装,免去了配置TLS的过程

  

使用calicoctl查看calico状态

[root@es-60 ~]# calicoctl node status
Calico process is running.IPv4 BGP status
+---------------+-------------------+-------+----------+-------------+
| PEER ADDRESS  |     PEER TYPE     | STATE |  SINCE   |    INFO     |
+---------------+-------------------+-------+----------+-------------+
| 172.17.213.61 | node-to-node mesh | up    | 03:46:37 | Established |
+---------------+-------------------+-------+----------+-------------+IPv6 BGP status
No IPv6 peers found.[root@es-60 ~]# calicoctl get node  #查看已注册的节点列表
NAME
es-60
es-61 

[root@es-60 ~]# calicoctl get workloadendpoints #查看工作中的负载节点
 WORKLOAD                   NODE   NETWORKS         INTERFACE
 nginx-dm-76d4ccdd7b-f2c2z  es-60  10.254.83.67/32  calidf627dba5ad
 nginx-dm-76d4ccdd7b-w9c9q  es-61  10.254.95.67/32  cali937a51d3ab8

收集诊断信息

如果遇到问题可以使用calicoctl命令行工具收集诊断信息。这应该以超级用户权限运行,例如:
# calicoctl node diags

参考链接: https://docs.projectcalico.org/v3.3/usage/troubleshooting/#configure-networkmanager

转载于:https://www.cnblogs.com/wjoyxt/p/9994837.html

Calico搭建配置相关推荐

  1. 基于认证的代理平台搭建配置squid-20130730

    基于认证的代理平台搭建配置squid-20130730 功能:通过squid代理实现 (1)基于用户名密码认证的出口ip路由选择 (2)基于client源ip的出口ip路由选择 (3)基于连接本机ip ...

  2. Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  3. Linux下的NFS搭建配置

    Linux下的NFS搭建配置 一.NFS介绍 1.NFS简介 2.NFS特点 二.环境介绍 三.服务端配置 1.创建共享目录 2.检查NFS包是否安装 3.安装nfs相关包 4.编辑配置文件 5.重启 ...

  4. linux下本地的源的格式,[Linux]CentOS7搭建/配置:YUM仓库/源[本地源/HTTP源/自建源仓库...

    [Linux]CentOS7搭建/配置:YUM仓库/源[本地源/HTTP源/自建源仓库 1 本地YUM源 1.1 [YUM仓库/服务端] 获取:软件包资源 1.2 [YUM仓库/服务端] 挂载/搭建: ...

  5. Linux下svn搭建配置

    Linux下svn搭建配置 1.安装svn客户端    yum install subversion    svnserve --version                       :如果成功 ...

  6. DreamweaverCS6搭建配置php本地站点(图文教程)- 教程篇

    通过Dreamweaver.exe 配置PHP本地服务站点 一.软件安装说明: Dreamweaver_CS6.exe 二.步骤图解: 第一步: 第二步: 第三步: 第四步: 三.其他版本: Drea ...

  7. PyQt5 环境搭建+配置+怎样运行生成的.py程序

    PyQt5 环境搭建+配置+怎样运行生成的.py程序 PyQt5安装及配置 安装 配置 Error while finding module specification for 'PyQt5.uic. ...

  8. Linux下svn 安装搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  9. Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】

    ================================================= 人工智能教程.零基础!通俗易懂!风趣幽默!大家可以看看是否对自己有帮助! 点击查看高清无码教程 == ...

最新文章

  1. 如何让vm虚拟机和主机同时上网
  2. visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
  3. 重装系统,配置CVS
  4. spring事务(三)
  5. Java 利用InetAddress类确定特殊Ip地址
  6. 【Linux系统编程】POSIX有名信号量
  7. SAP Spartacus的OccCmsPageNormalizer
  8. C++前序中序后序非递归遍历
  9. java 静态导入 import static
  10. matlab 识别车辆,基于MATLAB的车辆牌照识别系统设计
  11. 红烧鸡翅(简单又好吃)
  12. 2022-2028全球与中国工业蜂窝网关市场现状及未来发展趋势
  13. 皮特测评:蓝牙耳机哪个品牌最好?300元内最好的蓝牙耳机
  14. html a标签 onload,动态加载script和css标签的onload问题
  15. 腾讯ai开放平台(智能闲聊)sdk----- python3.X
  16. 制作破壳而出的漂亮MM
  17. 马士兵 oracle seton,马士兵Oracle 下
  18. 通过插画理解kubernetes基本概念
  19. python基础-模仿醉汉在二维空间上的随机漫步
  20. 我的空间php验证码不显示,很考眼力的验证码 - 我的PHP之旅|php,php空间,php主机,国外php空间,php空间申请...

热门文章

  1. python 监控内存_使用python写一个监控不同机器的使用内存情况并使用flask出图
  2. Django和SQLAlchemy,哪个Python ORM更好?
  3. Java 工具包收藏
  4. ubuntu快速清理磁盘垃圾
  5. [BEC][hujiang] Lesson02 Unit1:Working life ---Reading
  6. 海量运维、运营规划之道
  7. centos6架设dhcp服务器提供两个网段的IP地址分配
  8. Java 8 Lambda表达式基础语法
  9. perl 正则表达式 引擎_Perl 5引擎概述
  10. ansible 容器部署_如何使用Ansible Container管理Linux容器