K8s calico install
安装最新版Calico
进入calico网站:
1.下载yaml
1 | curl https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/calico-etcd.yaml -o calico.yaml |
2.编辑calico.yaml里的Secret段,data下定义的证书base64加密数据
- etcd-key: # etcd的ca证书数据
- etcd-cert: # etcd的ca证书数据
- etcd-ca: # etcd的证书数据
1 | # etcd-ca |
3.编辑etcd_endpoints:
我的k8s集群3个节点的etcd 的url分别是如下,编辑加到etcd_endpoints:后面
编辑etcd证书在calico pod中的挂载路径
这个可以自己设置,我的设置是:
etcd_ca: “/calico-secrets/etcd-ca”
etcd_cert: “/calico-secrets/etcd-cert”
etcd_key: “/calico-secrets/etcd-key”
4.编辑自己环境中的pod IP段参数CALICO_IPV4POOL_CIDR
把CALICO_IPV4POOL_CIDR 和其value字段注释放开;
value设置成自己环境上kube-controoller-server中参数–cluster-cidr设置的值,比如我环境上的这个参数设置如下是:
–cluster-cidr=172.17.0.0/16
编辑value和kube-controller-server的参数值一样:
5.添加apiserver环境参数
在calico-node的DaemonSet 中添加env环境变量参数:
1 | # master apiserver |
添加这几个参数据的目的是给calico添加访问apiserver的环境变量(apiserver的masterIP和端口6443),为了解决在拉起calico后calico-node的报错Failed to reach apiserver error=
6.修改IP_AUTODETECTION_METHOD 参数
修改IP_AUTODETECTION_METHOD参数,这个根据自己环境上的实际情况修改,我的环境中:
网卡设备名称是ens开头如ens33这种,那就修改成interface=ens.*,如果你的环境上的网卡设备是eth那么改成interface=eth.*即可;
3.4 的版本不需要设置 工作模式bgp (旧版本默认是ipip)
7.calico-controller添加apiserver环境参数
如果在使用kubectl apply -f calico.yaml后,caloco-contller一直重启CrashBackoff,检查日志报错Failed to reach apiserver error=
1 | # master apiserver |