安装Cilium参数解析

370 阅读1分钟

命令

export DEVICES="eth0"
cilium install --version 1.14.5 \
--set k8sServiceHost=192.168.0.2 \
--set k8sServicePort=6443 \
--set cluster.name=prvite-kubernetes \
--set cluster.id=1 \
--set kubeProxyReplacement=true \
--set hubble.enabled=true \
--set hubble.ui.enabled=true \
--set hubble.relay.enabled=true \
--set hubble.relay.service.type=NodePort \
--set hubble.relay.service.nodePort=31234 \
--set nodeinit.enabled=true \
--set rollOutCiliumPods=true \
--set bpfClockProbe=true \
--set operator.replicas=2 \
--set loadBalancer.mode=dsr \
--set tunnel=disabled \
--set autoDirectNodeRoutes=true \
--set ipam.mode="multi-pool" \
--set ipv4NativeRoutingCIDR="10.10.0.0/16" \
--set ipam.operator.autoCreateCiliumPodIPPools.default.ipv4.cidrs='{10.10.0.0/16}' \
--set ipam.operator.autoCreateCiliumPodIPPools.default.ipv4.maskSize=24 \
--set bpf.masquerade=true \
--set enableIpv4Masquerade=true \
--set enableIpv6Masquerade=false \
--set endpointRoutes.enabled=true \
--set-string extraConfig.enable-local-node-route=false \
--set ipMasqAgent.config.nonMasqueradeCIDRs='{10.10.0.0/16}' \
--set ipMasqAgent.config.masqLinkLocal=false \
--set devices=$DEVICES \
--set bpf.preallocateMaps=true \
--set routingMode=native \
--set bandwidthManager.enabled=true  \
--set bandwidthManager.bbr=true \
--set loadBalancer.acceleration=native

解析

export DEVICES="eth0"
cilium install \
--version 1.14.5 \  # 指定要安装得cilium版本
--set k8sServiceHost=192.168.0.2 \ # 连接Kubernetes API服务的地址
--set k8sServicePort=6443 \  # 连接Kubernetes API服务的端口
--set cluster.name=prvite-kubernetes \  # cilium集群得名称
--set cluster.id=1 \    # cilium集群得id
--set kubeProxyReplacement=true \  # 是否替代kube-proxy
--set hubble.enabled=true \  # 是否启用流量监控和分析功能Hubble
--set hubble.ui.enabled=true \  # 是否启用Hubble UI界面
--set hubble.relay.enabled=true \ # 是否启用中继功能
--set hubble.relay.service.type=NodePort \ # 开启hubble的中继功能后,使用NodePort类型服务,使Hubble中继服务能够从集群外通过Node端口访问
--set hubble.relay.service.nodePort=31234 \  # NodePort指定的端口
--set nodeinit.enabled=true \  # 会在每个节点上执行初始化任务,安装和配置必要的环境
--set rollOutCiliumPods=true \  # 是否重新启动所有Cilium Pod
--set bpfClockProbe=true \  # 是否开启bpf时钟探测功能,开启改功能能够更准确地计算网络延时
--set operator.replicas=2 \  # Cilium Operator的副本数
--set loadBalancer.mode=dsr \  # 负载均衡模式
--set tunnel=disabled \  # 是否启用封装模式
--set autoDirectNodeRoutes=true \  # 是否自动创建节点直接路由,为每个节点创建直接到这个节点的路由规则,对于同一物理网络内的K8s集群,开启这个功能可以加速节点通信
--set ipam.mode="multi-pool" \ # IPAM模式
--set ipv4NativeRoutingCIDR="10.10.0.0/16" \  # 参数决定了Cilium在IPv4网络模式下的原生路由功能允许的IP地址范围,也就是说,10.10.0.0/16网段内的数据包交换直接使用Linux iptables转发,不走 Tunneling 隧道模式
--set ipam.operator.autoCreateCiliumPodIPPools.default.ipv4.cidrs='{10.10.0.0/16}' \  # 自动为部署在集群内的Cilium Pod分配IPv4地址,无需手动指定IP
--set ipam.operator.autoCreateCiliumPodIPPools.default.ipv4.maskSize=24 \  #这个参数指定了在该网段内给Pod分配IP时,子网掩码长度为24位
--set bpf.masquerade=true \  # 开启ebpf技术的网络地址转换(NAT)功能,开启这个功能会让Cilium使用ebpf实现类似iptables的SNAT功能
--set enableIpv4Masquerade=true \ # 表示打开Ipv4网络伪装(masquerade)功能,对从集群内部发往外网的Ipv4流量做Source NAT地址转换
--set enableIpv6Masquerade=false \ # ipv6网络伪装功能关闭
--set endpointRoutes.enabled=true \ # 为每个K8s Pod动态生成一条路由规则,使其他Pod可以直接使用Pod IP和端口进行通信,而不需要经过服务的代理
--set-string extraConfig.enable-local-node-route=false \ # 是否启用节点本地路由功能
--set ipMasqAgent.config.nonMasqueradeCIDRs='{10.10.0.0/16}' \ # 用来指定哪些CIDR范围内的IP地址不进行网络地址转换(NAT)
--set ipMasqAgent.config.masqLinkLocal=false \ # 不对Link-Local范围内流量进行SNAT,Link-Local地址范围为169.254.0.0/16
--set devices=$DEVICES \  # 只针对eth0接口配置iptables规则,如网络地址转换、安全策略
--set bpf.preallocateMaps=true \ # 是否启用ebpf map来保存过滤规则和状态信息
--set routingMode=native \  # native表示原生路由模式
--set bandwidthManager.enabled=true  \ # 启用带宽管理功能,带宽管理功能可以帮助限制Pod/NS的网络带宽使用
--set bandwidthManager.bbr=true \ # 指定带宽管理算法,BBR是一种新的带宽管理算法,全称为"Bottleneck Bandwidth and RTT"
--set loadBalancer.acceleration=native # 负载均衡加速方式, native表示使用内核原生IPVS模块进行负载均衡