部署calico

 

上一篇文章 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部署calico_第1张图片

  

 2)替换etcd地址,找到如下configmap,将etcd地址填入,将1)对应的配置也填到对应配置项,具体见下图画红线

部署calico_第2张图片

 

3)修改DaemonSet里面的 CALICO_IPV4POOL_CIDR,该值要与与kube-controller-manager.conf里面设定的--cluster-cidr一致,具体如下图:

部署calico_第3张图片

部署calico_第4张图片

 

至此所有修改已经完成,网上有文章说要修改configmap里面的cni_network_config里面的如下图画着红线的配置,修改成具体etcd证书所在路径,尝试过修改了反而出错。整个部署其实就是把configmap里面的配置挂在到DaemonSet里面,没有任何要挂载宿主机路径的配置。

部署calico_第5张图片

 

3、修改kubelet启动参数,增加如下图画红线配置,然后重启kubelet服务,此时由于没有安装calico,如果使用kubectl get node会显示notready部署calico_第6张图片

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

运行成功后,检查部署结果

你可能感兴趣的:(40程序员转运维,kubernetes)