• K8S 固定PODIP的方案---Calico


    1. Calico官网  https://docs.projectcalico.org/archive/v3.18/about/about-calico

    2.  我这里是在k8s环境在原有网络插件flannel的基础上,增加Calico的方式,故参考官网该链接  https://docs.projectcalico.org/archive/v3.18/getting-started/kubernetes/flannel/flannel

        2.1 请确认k8s的 /etc/kubernetes/manifests/kube-controller-manager.yaml 中 这两个配置项 --cluster-cidr=<your-pod-cidr> and --allocate-node-cidrs=true

        2.2  下载这个文件 curl https://docs.projectcalico.org/archive/v3.18/manifests/canal.yaml -O

        2.3  下载到的canal.yaml文件用到了5个镜像,其中有一个flannel我们已经有了且已安装,其余四个手动下载并在每一台k8s环境中都加载安装     

       

    docker pull docker.io/calico/node:v3.18.4
    docker pull docker.io/calico/cni:v3.18.4
    docker pull docker.io/calico/kube-controllers:v3.18.4
    docker pull docker.io/calico/pod2daemon-flexvol:v3.18.4
    docker save -o calico-node-v3.18.4.tar calico/node:v3.18.4
    docker save -o calico-pod2daemon-flexvol-v3.18.4.tar calico/pod2daemon-flexvol:v3.18.4
    docker save -o calico-cni-v3.18.4.tar calico/cni:v3.18.4
    docker save -o calico-kube-controllers-v3.18.4.tar calico/kube-controllers:v3.18.4
    #安装步骤需要每台(master和node)均执行
    docker load -i calico-node-v3.18.4.tar
    docker load -i calico-pod2daemon-flexvol-v3.18.4.tar
    docker load -i calico-cni-v3.18.4.tar
    docker load -i calico-kube-controllers-v3.18.4.tar

        2.4 修改canal.yaml文件(官网下载后,有几个地方必须修改才行,打√的是新增的  具体见以下截图)

     

        2.5 执行该文件加载服务 kubectl apply -f canal.yaml

    3.  calicoctl

        我这里是直接下载安装calicoctl单个文件到操作系统之上, 该文件传到那台宿主机上,就可以在那台上使用calicoctl命令

    curl -O -L  https://github.com/projectcalico/calicoctl/releases/download/v3.18.4/calicoctl
    chmod +x calicoctl
    将该文件放到目录 /usr/local/bin/
    
    

    4.  固定IP的方式

        4.1  cat /etc/cni/net.d/10-calico.conflist

        4.2 

         "ipam": {
                  "type": "calico-ipam"
              },

    4.3  使用固定的PODIP,在自己的yaml文件中增加 "cni.projectcalico.org/ipAddrs": "["192.168.0.1"]"

    5.  固定IP池的方式

        5.1  cat /etc/cni/net.d/10-calico.conflist

        5.2 

      "ipam": {
                  "type": "calico-ipam"
              },

      5.3 编辑一个 ippool.yaml文件

     5.3 注意使用 calicoctl 命令对ippool.yaml文件进行创建和销毁,当然它还有很多指令可以用, -h 可以看更多

    5.4 注意使用 我们自己的yaml文件的pod使用该ipool池中指定的ip段


    6. 经验之谈,单个IP如果yaml文件卸载再安装的时候,会报IP已经被占;同样的取IP池这种情况会使用另外的ip 为了解决该问题。

    需要先释放之前pod占用的ip然后在执行即可。 对于ip池这种除了释放ip以外,还要重新执行ippool.yaml文件才能使用之前的ip





     
    ----------- 赠人玫瑰,手有余香     如果本文对您有所帮助,动动手指扫一扫哟   么么哒 -----------


    未经作者 https://www.cnblogs.com/xin1006/ 梦相随1006 同意,不得擅自转载本文,否则后果自负
  • 相关阅读:
    ABAP Webdynpro Interface View的用法
    ABAP Webdynpro的跟踪工具WD_TRACE_TOOL
    git 速查
    Python 解析含有命名空间(xmlns)的xml文件(基于ElementTree)
    完全显示DataFrame中行、列内容
    解决Jupyter Notebook中for循环输出DataFrame不够美观
    git配置别名
    元素可拖拽(移动端与pc端)
    pointer network和recursive神经网络
    ELMO,BERT和GPT简介
  • 原文地址:https://www.cnblogs.com/xin1006/p/14989365.html
Copyright © 2020-2023  润新知