Calico搭建配置
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_CIDR
value: "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- ~]# 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
Calico搭建配置的更多相关文章
- Keepalive双主搭建配置
Keepalive 双主搭建配置 keepalived保证双主数据库的可用性 环境说明 192.168.1.10 keepalive 主1 192.168.1.20 keepalive 主2 19 ...
- Samba服务器搭建配置
本次环境: 服务端-centos6.8-192.168.2.200 客户端1-centos6.8-192.168.2.201 客户端2-Windows7-192.168.2.104 假设条件如下: 使 ...
- Varnish缓存服务器的搭建配置手册
Varnish缓存服务器的搭建配置手册 1.Varnish官方环境依赖提示 Installing Varnish Cache is as simple as enabling our package ...
- 转载-Linux下svn搭建配置流程
Linux下svn搭建配置流程 一. 源文件编译安装.源文件共两个,为: 1. 下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...
- 基于认证的代理平台搭建配置squid-20130730
基于认证的代理平台搭建配置squid-20130730 功能:通过squid代理实现 (1)基于用户名密码认证的出口ip路由选择 (2)基于client源ip的出口ip路由选择 (3)基于连接本机ip ...
- Linux下SVN服务器搭建配置
Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...
- [原创]nagios搭建配置
nagios搭建配置 一.环境 ubuntu 14.04系统 host1:172.17.0.2 serverhost2:172.17.0.3 client 二.安装 1.在两个主机上都执行一下命令: ...
- Spring Cloud 入门教程 - 搭建配置中心服务
简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...
- rocketmq 集群环境搭建配置
rocketmq环境搭建配置: 一. 搭建三主集群,环境:centos-64 7.4 + RocketMQ-4.3.2 Master01: 192.168.102.68 Master02: 192 ...
随机推荐
- golang-http-post
func httpPost() { resp, err := http.Post("https://www.abcd123.top/api/v1/login", "app ...
- 【转载】【原创】华硕F8TR笔记本更换主板及喇叭教程
转载地址:http://blog.sina.com.cn/s/blog_6241aaed0102w4e6.html [原创]华硕F8TR笔记本更换主板及喇叭教程 华硕AUSU F8TR笔记本 ...
- Git 环境配置
Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量. 这些变量存储在三个不同的位置: /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用 ...
- SourceInsight宏插件2(非常好用,强力推荐)
Quicker宏在SI中的使用方法(下载地址:链接:https://pan.baidu.com/s/1VrDxlPhft7RPUCCOKxsGIg 提取码:2d4u) Quicker宏的添加到SI中 ...
- 使用xheditor时 cloneRange错误 ext.net
使用ext.net 加 xheditor时,一直报 cloneRange错误. 于是 按照说明但独使用xheditor ,检查无错,正常使用, 因此排除版本问题. <ext:panel ru ...
- DS-1
一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算: 构造有理数T,元素e1,e2分别被赋以分子.分母值 销 ...
- 黄聪:PHP获取某一天前后任意时间
date("Y-m-d",strtotime('-30 days',strtotime('2016-9-30')));
- Linux环境下使用Android NDK编译c/c++生成可执行文件
1.安装Android NDK至Linux(Lubuntu 16) 从网上下载 android-ndk-r13b-linux-x86_64.zip,本人将其解压至/home/guanglun/work ...
- 使用COM打开Excel文档注意事项
本文主要讲解程序中打开Excel文档,读写Excel文档可以参照前章: C#读写Excel实践笔记 C#使用NPOI读写Excel的注意事项 如果只是单纯的打开Excel文档,建议使用: System ...
- Ubuntu 15.10 下Tachyon安装
1 系统环境 Ubuntu 15.10, Java 1.7, Hadoop 2.6.0 HA, Spark-1.4.0 三台机器 spark-1423-0001: Master, Worker spa ...