准备calico.yaml

进入calico网站:

Install Calico networking and network policy for on-premises deployments

找到 Install Calico > Kubernetes > Self-managed on-premises > Install Calico networking and network policy for on-premises deployments

往下滑动页面,找到Install Calico步骤下的Manifest > Install Calico with etcd datastore

点击Install Calico with etcd datastore然后跳转:

如下找到Calico.yaml的下载连接,在k8s环境执行:

这个是比较新的版本v3.25.1的 calico:

curl https://raw.githubusercontent.com/projectcalico/calico/v3.25.1/manifests/calico-etcd.yaml -o calico.yaml

也可以根据自己的需要,在calico网站找到以前的版本下载。

下载好calico.yaml.

编辑calico.yaml里的Secret段,data下定义的证书base64加密数据

  • etcd-ca:
  • etcd-key:
  • etcd-cert:

====================================

  • 这3个分别是:
  • etcd的ca证书数据
  • etcd的证书key数据
  • etcd的证书数据

把这三个证书数据经过base64 方式加密,然后把加密后的数据粘贴到yaml中,但是注意负值加密后的数据不要把shell的提示符复制进去:

如:cat /opt/etcd/certs/ca.pem | base64 | tr -d '\n'

修改好后内容如下:

编辑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"

编辑自己环境中的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的参数值一样:

友情提示:

不知道如何设置这个参数的检查一下自己环境上kube-contrller-manager的systemd配置文件,找到相关配置项--cluster-cidr 把其赋值拷贝过来即可;

或者是kubelet的kubelet-conf.yaml,里面的配置项podCIDR。其值应该和kube-controller-manager的--cluster-codr 值是一致的,复制过来即可。

添加apiserver环境参数

在calico-node的DaemonSet 中添加env环境变量参数:

  • - name: KUBERNETES_SERVICE_HOST
  • value: "192.168.1.10"  # master apiserver 地址
  • - name: KUBERNETES_SERVICE_PORT
  • value: "6443"
  • - name: KUBERNETES_SERVICE_PORT_HTTPS
  • value: "6443"

添加这几个参数据的目的是给calico添加访问apiserver的环境变量(apiserver的masterIP和端口6443),为了解决在拉起calico后calico-node的报错Failed to reach apiserver error=<nil>,有这个错calico-node会反复重启CrashBackoff

修改IP_AUTODETECTION_METHOD 参数

修改IP_AUTODETECTION_METHOD参数,这个根据自己环境上的实际情况修改,我的环境中:

网卡设备名称是ens开头如ens33这种,那就修改成interface=ens.*,如果你的环境上的网卡设备是eth那么改成interface=eth.*即可;

calico-controller添加apiserver环境参数

如果在使用kubectl apply -f calico.yaml后,caloco-contller一直重启CrashBackoff,检查日志报错Failed to reach apiserver error=<nil>,那么和calico-node同理,需要添加apiserver环境参数,在calico-controller的Deployment中添加env段中参数项:

  • - name: KUBERNETES_SERVICE_HOST
  • value: "192.168.1.10"  # master apiserver 地址
  • - name: KUBERNETES_SERVICE_PORT
  • value: "6443"
  • - name: KUBERNETES_SERVICE_PORT_HTTPS
  • value: "6443"

启动calico部署:

kubectl apply -f calico.yaml

启动成功!

注意查看READY列,需要保证健康状态都是1/1 ,否则说明calico工作不正常。

安装最新版Calico相关推荐

  1. 在centos上通过yum直接安装最新版gcc和开发工具

    本来我把gcc 8, g++ 8, cmake 3, ninja,glibc,gnu make 和GNU 'binutils' 全部都编译安装了一遍: 先安装 gcc 8, g++ 8, cmake ...

  2. 在CentOS/Debian/Ubuntu上编译安装最新版gnu make 和GNU 'binutils' (as and ld)

    先查看make版本: root@:~/clickhouse/gcc-build# make --version GNU Make 3.82 Built for x86_64-redhat-linux- ...

  3. 在CentOS/Debian/Ubuntu上编译安装最新版 GCC 8 , cmake 3 和ninja

    CentOS不像Debian/Ubuntu,不能直接从官方库中安装最新版的gcc/g++,只能源码编译安装. gcc下载地址:Index of /gnu/gcc 我选择了最新版本 gcc-8.3.0, ...

  4. 史上最详细Docker安装最新版Minio 带详解 绝对值得收藏!!! 让我们一起学会使用minio搭建属于自己的文件服务器!!走上白嫖之路!解决启动了但是浏览器访问不了的原因

    让我们一起学会使用minio搭建属于自己的文件服务器!!走上白嫖之路! WARNING: Console endpoint is listening on a dynamic port (34451) ...

  5. linux centos7 安装最新版git 教程

    2019独角兽企业重金招聘Python工程师标准>>> linux centos7 安装最新版git 教程 2018年08月22日 11:53:59 alisen169 阅读数:13 ...

  6. linux mint 最新版,Linux Mint安装最新版R

    R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. 版本控请一定试试下面的方法安装最新版 打开终端 sudo ge ...

  7. 2021年 CentOS 快速安装 最新版Nginx

    2021年 CentOS 快速安装 最新版Nginx 目录 1. 环境准备 2. 设置 yum 源 3. 安装 Nginx 4. 其他 1. 环境准备 sudo yum install yum-uti ...

  8. centos安装最新版的docker-ce(二进制安装)

    centos安装最新版的docker-ce(二进制安装) 本文转自于https://www.jianshu.com/p/87a84097e635 在centos上安装过docker的都知道,yum i ...

  9. yum 源没有php7.0,yum安装最新版php7的操作方法

    yum安装最新版php7的操作方法 发布时间:2021-01-12 10:28:17 来源:亿速云 阅读:96 作者:栢白 这篇文章主要介绍了yum安装最新版php7的操作方法,具有一定借鉴价值,需要 ...

最新文章

  1. Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详介AvatarNode
  2. 方差过滤: Removing features with low variance
  3. oracle set parseonly on,Set noexec on 与 Set parseonly on的区别及SQL语法检查
  4. Linux学习之遇到的小问题---查看系统版本,虚拟机创建共享文件夹,用到的命令记录。
  5. 第六讲:PrintClient工具的使用
  6. linux中vi过滤,vim高级编辑(一)
  7. 交叉验证 cross validation 与 K-fold Cross Validation K折叠验证
  8. mysql insert 不需要日志_MySQL数据库性能优化(1)「转」
  9. Java中的Comparable和Comparator到底该怎么用看完就全明白了
  10. 最新版 Enterprise Library 企业库 V4.1 中文学习手册
  11. Java基础学习总结(68)——有关Java线程方面的面试题
  12. Socket通讯成功案例
  13. 有没有发现4G网速越来越慢了?
  14. 超详细目标检测,yolo3训练自己的数据集
  15. 控制系统计算机仿真源码,控制系统计算机仿真-实验五.doc
  16. 防止 MySQL-PHP 网站被玩弄的方法
  17. Looper对文件描述符的监控与处理
  18. 论文中的Matlab画图常用技巧
  19. str.trim()去除空格
  20. 手机号码校验(手机号---座机号)

热门文章

  1. html中怎么做扇形菜单,纯CSS3实现扇形动画菜单(简化版)实例源码
  2. 动人的牵线美的连接符-两张表的查询(一)
  3. 微信支付-支付结果通知接收
  4. OraDump导出套件
  5. Inspector工具使用
  6. 宝洁大中华区智能技术创新中心正式启用;新世界-K11上海淮海中路地块动工 | 知消...
  7. 一个B端硬件产品经理的成长史
  8. 程序设计-求解数独(C)
  9. 33省市出台区块链专项政策,有地方拿户口、百万奖金抢人
  10. sFlow-rt 3.0流量监控工具安装部署及简单实验