【问题标题】:calico network dependency on killall.sh in k3scalico 网络对 k3s 中 killall.sh 的依赖
【发布时间】:2021-10-31 16:35:09
【问题描述】:

我有一个 k3s 集群,它的系统 pod 应用了 calico 策略:

kube-system   pod/calico-node-xxxx                          
kube-system   pod/calico-kube-controllers-xxxxxx   
kube-system   pod/metrics-server-xxxxx
kube-system   pod/local-path-provisioner-xxxxx
kube-system   pod/coredns-xxxxx
app-system    pod/my-app-xxxx

我运行/usr/local/bin/k3s-killall.sh 来清理容器和网络。这也会清理/删除/重置我的印花布网络吗? (虽然在killall.sh 之后calico 的iptables 仍然存在)

引用 killall.sh 链接:

killall 脚本会清理容器、K3s 目录和网络组件,同时还删除带有所有相关规则的 iptables 链。

它说网络组件也将被清理,但它是 kubernetes 网络还是任何应用于集群的网络?

【问题讨论】:

    标签: kubernetes k3s project-calico kubernetes-networkpolicy calico


    【解决方案1】:

    当您根据说明here 安装k3s 时,默认情况下不会安装 Calico CNI。需要安装Calico CNIseparately

    为了回答你的问题,我们来分析/usr/local/bin/k3s-killall.sh文件,尤其是带有iptables命令的部分:

    ...
    iptables-save | grep -v KUBE- | grep -v CNI- | iptables-restore
    

    正如所见,此命令仅删除以KUBECNI 开头的iptables chains

    如果您使用k3s 和Calico CNI 在集群设置上运行命令iptables -S,您可以看到Calico 使用的链以cali- 开头:

     iptables -S
    -A cali-FORWARD -m comment --comment "cali:vjrMJCRpqwy5oRoX" -j MARK --set-xmark 0x0/0xe0000
    -A cali-FORWARD -m comment --comment "cali:A_sPAO0mcxbT9mOV" -m mark --mark 0x0/0x10000 -j cali-from-hep-forward
    ...
    

    简单回答您的问题:

    我运行/usr/local/bin/k3s-killall.sh 来清理容器和网络。这也会清理/删除/重置我的 calico 网络吗?

    没有。仍然会有一些 Calico CNI 组件,例如前面提到的iptables 链以及网络接口:

     ip addr
     6: calicd9e5f8ac65@if4: <BROADCAST,MULTICAST,UP,LOWER_UP>
     7: cali6fcd2eeafde@if4: <BROADCAST,MULTICAST,UP,LOWER_UP>
     ...
    

    它说网络组件也会被清理,但它是kubernetes网络还是任何应用于集群的网络?

    这些是k3s 默认提供的网络组件,如前面提到的KUBE-CNI- iptables 链。要了解更多关于 k3s-killall.sh 脚本的作用的信息,我建议阅读它的 codek3s-killall.sh 脚本从 # --- create killall script --- 开始,第 575 行)。

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2021-07-25
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多