K8S網路排故障一則 iptables規則

2021-09-23 01:29:05 字數 1744 閱讀 3394

這個故障源起來在k8s上同時安裝ceph群集(測試的時候機器不多啊)

當這兩者都ok之後,原來k8s上的服務例項,則有的通,有的不通了。

所有可能的故障點,flannel,kubelet,kubeproxy都排查過之後,

定位在iptable,

但net.ipv4.ip_forward = 1這種配置我是有的。

我同時輸出乙份正常和不正常的iptables配置。

發現了乙個點:

在不通的機器上,iptables將forward**drop掉了。

於是啟用之後,一切都平靜了。。

但。。。這個規則是啥時加入的呢?

ceph自已加入的???

看來,以後不能混鍋燉了?

iptables -l

chain forward (policydrop)

target prot opt source destination

docker-isolation all --anywhere anywhere

accept all --anywhere anywhere ctstate related,established

docker all --anywhere anywhere

accept all --anywhere anywhere

accept all --anywhere anywhere

accept all --anywhere anywhere ctstate related,established

docker all --anywhere anywhere

accept all --anywhere anywhere

drop all -- anywhere anywhere

執行命令:

iptables -p forward accept

搞定。本來正常時的設定。

chain forward (policyaccept)

target prot opt source destination

docker-isolation all --anywhere anywhere

accept all --anywhere anywhere ctstate related,established

docker all --anywhere anywhere

accept all --anywhere anywhere

accept all -- anywhere anywhere

k8s網路基礎

為了保證網路方案的標準化 擴充套件性和靈活性,k8s 採用了 container networking inte ce cni 規範。cni 是由 coreos 提出的容器網路規範,它使用了外掛程式 plugin 模型建立容器的網路棧。它要求任何實現機制都必須滿足以下需求 因為k8s只約定了網路實現...

k8s 網路模式

1 clusterip kind service apiversion v1 metadata name my service spec selector ports protocol tcp port 80 targetport 80 root k8s master rc test kubectl...

K8s任務 應用故障排查

故障排查的第一步是先給問題分類。問題是什麼?是關於 pods replication controller 還是 service?除錯 pod 的第一步是檢視 pod 資訊。用如下命令檢視 pod 的當前狀態和最近的事件 kubectl describe pods 檢視一下 pod 中的容器所處的狀...