k8s 工具
借助nsenter命令進入容器命名空間進行抓包和網路診斷
#!/bin/bash
ns=$1
#傳參1:命名空間
pod_name=
$2#傳參2:pod名稱
container_id=
$(kubectl describe pod -n $ns $pod_name |
grep
"container id:"
|cut -d '/' -f 3 |
cut -c 1-12)
node=
$(kubectl get pods -n $ns $pod_name -o wide |
awk''
|grep -v node)
docker_id=
'docker_id1=$(docker inspect -f
}'read -t 30 -p "是否建立遠端連線確認y/n:" num1
if[ $num1 == y ]
;then
echo
"-----------------節點輸入-----------------"
echo "$docker_id $container_id)
" docker_id1="$docker_id
$container_id"
echo 'nsenter -n --target $docker_id1
' echo "------------------------------------------"
read -t 30 -p "ssh連線使用者名稱:" name
ssh $name@
$node
else
echo "-----------------節點輸入-----------------"
echo "$docker_id
$container_id)"
docker_id1="$docker_id
$container_id"
echo 'nsenter -n --target $docker_id1'
echo
"------------------------------------------"
fibash k8s_ns.sh kube-system coredns-7cccdb8747-qz***
#執行指令碼並傳參
指令碼命令解析
檢視指定 pod 執行的容器 id
獲得容器程序的 pid(進入pod節點)
進入該容器的 network namespace(進入pod節點)
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
如何實踐 1 搜尋kubunetes online kubernetes playground katacoda pod k8s最小排程單位 docker pause 二個容器 deployments 維持pod一定數量 service 解決deploytemnets內部之間的乙個負載均衡 dns解...