k8s网络组件:calico
目录
目录
前提已经安装好k8s集群
安装
calico 安装其实很简单,已经集成在两个yaml文件中
calico 版本: v3.2.3
安装必看
- 如果安装过
flannel
组件,需要先去除docker启动项中$DOCKER_NETWORK_OPTIONS
参数 - 删除已有的
/etc/cni/net.d
,/opt/cni/bin
文件 kubelet
和kube-apiserver
启动项中需要加上--allow-privileged=true
,保证calico-node
需要以特权模式运行- 这里calico文件采用了
CrossSubnet
模式
指定k8s使用CNI插件
在kubelet启动参数中加入以下参数:
--network-plugin=cni
: 指定使用cni插件--cni-bin-dir=/opt/cni/bin
: 存放网络配置的可执行文件--cni-conf-dir=/etc/cni/net.d
: 存放网络配置文件,如果有多个文件,则只会选择一个(根据文件名排序)
部署
安装文件放在: https://github.com/silenceper/k8s-install/tree/master/calico
主要包含两个文件calico.yaml
,rbac.yaml
:
需要做如下参数修改:
将其中的ETCD_LVS_HOST
修改为集群的etcd地址,并且将TLS_ETCD_KEY
,TLS_ETCD_CERT
,TLS_ETCD_CA
替换为证书的内容的base64后的结果:
|
|
部署
|
|
calicoctl 安装
calicoctl 工具,主要用来配置calico,例如配置calico 网络模式等
下载地址:https://github.com/projectcalico/calicoctl/releases
将下载和二进制文件放在/usr/local/bin
目录下
calicoctl 配置文件
将以下内容写入文件/etc/calico/calicoctl.cfg
:
|
|
测试成功:
|
|
###修改ipipMode
ipipMode有三种:
- Never: bgp模式
- Always:IPIP模式
- CrossSubnet:自动选择,同一网段选择bgp模式,跨网段IPIP模式
通过calicoctl get ippool -o yaml
命令可以查看到当前使用的ipipMode为CrossSubnet
,通过如下方式可以修改:
calictl apply -f ippool.yaml
其中ippool.yaml
文件内容:
|
|