大家好,欢迎来到IT知识分享网。
上一篇文章 https://blog.csdn.net/kanganrui/article/details/105936821 介绍了如何二进制部署一个单点的k8s集群,一直没有时间继续完善其他组件的部署,这周末终于有时间部署了一下calico,网上搜索了一下,文章一大堆,尝试跟着做,踩了几个坑,现在总结一下步骤
1、下载calico 部署yaml
由于我采用了https来安装etcd,所以要下载支持https的yaml文件,具体下载地址如下 :
https://docs.projectcalico.org/manifests/calico-etcd.yaml
2、修改yaml
一开始对着一堆配置十分困惑,不知道如何改,去网上找了一堆文章,多次尝试终于改对
1)修改etcd证书配置,找到如下secret配置,将etcd证书转成64位字符串后分别填写到etcd-key,etcd-cert,etcd-ca最终结果如下图,etcd证书转成64位字符串使用命令:
cat /root/k8s/ssl/etcd-server.pem | base64 -w 0
cat /root/k8s/ssl/etcd-server-key.pem | base64 -w 0
cat /root/k8s/ssl/etcd-ca.pem | base64 -w 0
2)替换etcd地址,找到如下configmap,将etcd地址填入,将1)对应的配置也填到对应配置项,具体见下图画红线
3)修改DaemonSet里面的 CALICO_IPV4POOL_CIDR,该值要与与kube-controller-manager.conf里面设定的–cluster-cidr一致,具体如下图:
至此所有修改已经完成,网上有文章说要修改configmap里面的cni_network_config里面的如下图画着红线的配置,修改成具体etcd证书所在路径,尝试过修改了反而出错。整个部署其实就是把configmap里面的配置挂在到DaemonSet里面,没有任何要挂载宿主机路径的配置。
3、修改kubelet启动参数,增加如下图画红线配置,然后重启kubelet服务,此时由于没有安装calico,如果使用kubectl get node会显示notready
4、安装calico,使用kubectl apply -f calico.yml安装calioc,如果安装成功能查看具体的pod,刚才notready的node也会变成ready,具体如下图:
5、验证部署一个容器,看看分配网段是否在 CALICO_IPV4POOL_CIDR设置范围内,使用如下命令
cat << EOF | kubectl create -f –
apiVersion: v1
kind: Pod
metadata:
name: test
namespace: test
spec:
containers:
– image: busybox:latest
command:
– sleep
– “3600”
name: test
EOF
运行成功后,检查部署结果
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12764.html