• calico change provider network IP address route via


    Patch 

    # https://stackoverflow.com/questions/41958475/getting-the-object-array-index-in-jq
    # https://www.codegrepper.com/code-examples/javascript/jq+array.length
    kubectl get ds calico-node  -n kube-system -o json |jq '.spec.template.spec.containers[0].env | length'
    kubectl get ds calico-node  -n kube-system -o json |jq '.spec.template.spec.containers[0].env |map(.name == "IP_AUTODETECTION_METHOD") | index(true)'
    kubectl get ds calico-node  -n kube-system -o json |jq '[ .spec.template.spec.containers[0].env | debug | .name == "IP_AUTODETECTION_METHOD" ] | index(true)
    kubectl get ds calico-node  -n kube-system -o json |jq '[ .spec.template.spec.containers[0].env | debug | map(.name == "IP_AUTODETECTION_METHOD") ] | index(true)'
    
    LEN=`kubectl get ds calico-node  -n kube-system -o json | 
      jq '.spec.template.spec.containers[0].env | length'`
    IDX=$((LEN-1))
    IDX=`kubectl get ds calico-node  -n kube-system -o json |jq '.spec.template.spec.containers[0].env | 
      map(.name == "IP_AUTODETECTION_METHOD") | index(true)'`
    
    DS=calico-node
    
    CMPATH=/spec/template/spec/containers/0/env/$IDX/value
    VAL="cidr=192.168.10.66/24"
    
    kubectl patch ds/$DS -n kube-system --type='json' -p '[
      {"op":"replace","path":"'"$CMPATH"'","value": "'"$VAL"'"},
    ]'

    Add

    NM=IP_AUTODETECTION_METHOD
    CMPATH=/spec/template/spec/containers/0/env/-
    kubectl patch ds/$DS -n kube-system --type='json' -p '[
      {"op":"add","path":"'"$CMPATH"'","value": {"name": "'"$NM"'", "value": "'"$VAL"'"}},
    ]'

    Change apiserver listen address after deployment

    CLUSTER_PNET=192.168.10.66/24
     
    IDX=`kubectl get pods -n kube-system kube-apiserver-controller -o json | 
      jq '.spec.containers[0].command |map(contains("--advertise-address=")) |index(true)'`
     
    CMPATH=/spec/containers/0/command/$IDX
    VAL="--advertise-address=1${CLUSTER_PNET%/*}"
    DS=kube-apiserver-controller
     
    kubectl patch pod/$DS -n kube-system --type='json' -p '[
      {"op":"replace","path":"'"$CMPATH"'","value": "'"$VAL"'"},
    ]'

    had better change the ip before development

    # CLUSTER_PNET IP 192.168.10.66 is the apiserver IP
    CLUSTER_PNET=192.168.10.66/24
     
    CON_PATH=roles/kubernetes/controlplane/templates/config.yaml.j2
    ls ceek
    if [ $? -eq 0 ]; then CON_PATH=ceek/$CON_PATH; fi
    sed -i -e "/(.*)event-ttl/a     advertise-address: "${CLUSTER_PNET%/*}""  $CON_PATH
     
    CON_PATH=roles/kubernetes/cni/calico/controlplane/files/customize_calico_container.yml
    ls ceek
    if [ $? -eq 0 ]; then CON_PATH=ceek/$CON_PATH; fi
    sed -i -e "/(.*)IP_AUTODETECTION_METHOD/{n;s/(value: ).*/1"cidr=${CLUSTER_PNET%/*}/${CLUSTER_PNET#*/}"/}" $CON_PATH

    【Calico系列】2 BGP入门笔记   

    【Calico系列】3 Calico的组件、架构与原理

    我们可以将 workload(工作负载) 当成容器或者虚拟机。

    在 calico 中,计算节点充当了路由器的角色。它们为运行在本机上的容器或是虚拟机提供路由。我们称之为 vRouter。Linux Kernel 负责数据数据包路由, 通过BPG协议来控制路由分发, Flelix 来管理路由信息。

    处于节点上的 Endpoint 只能同本节点 vRouter 通信, 数据包的第一条和最后一条都是通过 vRouter 中路由规则来实现。vRouter 间通过BGP协议来同步节点上的 Endpoint 信息。

    kubernet+calico二进制安装及总结 deployment calico-kube-controllers

    Kubernetes网络组件之Calico策略实践(BGP)  

    calico学习  

    Calico on Kubernetes 从入门到精通  Calico on Kubernetes 从入门到精通

    calico VPP的实现

    VPP dataplane implementation details  

    Host network configuration   

     
  • 相关阅读:
    java 变量的定义 类型转换 基本的数据类型
    Java中的String,StringBuilder,StringBuffer三者的区别?
    Linux配置 ElasticSearch
    Linux 配置 SVN and ideal 配置SVN的客户端 ?
    mysql5.7多实例安装
    MySQL高可用架构之MySQL5.7组复制MGR
    二进制安装MySQL5.6 MySQL5.7
    MySQL主从复制之半同步模式
    MySQL主从复制之异步模式
    基于GTID模式MySQL主从复制
  • 原文地址:https://www.cnblogs.com/shaohef/p/14742757.html
Copyright © 2020-2023  润新知