zoukankan      html  css  js  c++  java
  • 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 同意,不得擅自转载本文,否则后果自负
  • 相关阅读:
    UVa 1354 天平难题 (枚举二叉树)
    广西邀请赛总结
    UVa 12118 检查员的难题 (dfs判连通, 构造欧拉通路)
    UVA
    Uva 127 "Accordian" Patience (模拟)
    UVA 10539 Almost Prime Numbers( 素数因子)
    HDU 1272 小希的迷宫(并查集)
    HDU 1213 How Many Tables (并查集)
    POJ 2236 Wireless Network(并查集)
    HDU 1233 还是畅通工程 ( Kruskal或Prim)
  • 原文地址:https://www.cnblogs.com/xin1006/p/14989365.html
Copyright © 2011-2022 走看看