参照官网地址:
https://docs.projectcalico.org/v2.5/getting-started/kubernetes/installation/integration
Calico组件包括
- calico/node, 必须安装在Master节点和每个计算节点上,包括BGP agent,负责网络策略。
- cni/plugin, 和kubelet交互发现pod。
- calico/policy-controller ,实现kubernetes的Network Policy API.
本文中安装的calico版本为2.5,对应的组件版本分别为:
calicoctl:v1.5.0
cni-plugin:v1.10.0
cni:v0.3.0
安装calico/node
|
|
创建calico-node.service
|
|
service的内容,需要将ETCD_ENDPOINTS中地址换成真实的etcd集群地址,可以将node-image中指定所需要的镜像名称,如果不指定,默认为quay.io/calico/node:latest
下边的命令会导致calio-node一直重启,所以需要换成官网的
|
|
换成(替换下边的ETCD_ENDPOINTS和ExecStart命令中的镜像名称)
|
|
启动calico-node服务
|
|
查看服务启动情况以及容器启动情况
|
|
|
|
安装calico/cni-plugin
|
|
cni-plugin需要标准的CNI配置文件,创建配置文件。
|
|
注意:policy选项为k8s,使用Kubernetes Network Policy来定义网络策略.
这里需要一个calico-kubeconfig的配置文件。在/etc/cni/net.d下创建
calico-kubeconfig配置文件
|
|
安装CNI plugin
|
|
安装calico networkpolicy-controller
创建yaml文件,文件地址下载地址:
https://docs.projectcalico.org/v2.5/getting-started/kubernetes/installation/policy-controller.yaml
内容如下:
需要修改3处地址:
image(镜像名称),ETCD_ENDPOINTS(ETCD地址),K8S_API(kubenetes 的API地址)
修改kubelet
需要将kubelet中的网络指定为calico ,修改/usr/lib/system.d/system/kubelet.service,加入如下参数
|
|
注意:kubernetes1.4版本之前不支持cni-conf-dir和cni-bin-dir参数。替换成–network-plugin-dir=/etc/cni/net.d