k8s的pod共用了什麼linux namespace

2021-08-10
1分鐘閱讀
k8s

一直想搞懂k8s中podcontainer的差別,就是共用的linux namespace不同

linux namespace與cgroup

linux namespace白話講

有可能不是很精確,當作參考就好

  • MNT(mount): 文件系統,就是/的東西
  • PID(process ID): 能否用top看到對方
  • NET(network): 網路卡,能開的port
  • IPC(inter-process communication): 能否進行process間通信,這我就比較沒感覺。。
  • UTS(UNIX Time-Sharing): 主機的hostname
  • user(user id): 使用者與群組

cgroup白話講

cgroup(control group)看這圖就很清楚了,就是分配電腦上的資源

01

pod什麼東西隔離了

docker container中,兩個containerlinux namespace都是不同的,cgroups也是,pod就有些一樣,有些不同

預設pod中相同的

  • IPC
  • UTS
  • NET
  • cgroup

預設pod中不同的

  • MNT
  • PID
  • user

這個圖可以很好理解, 來源 02

其中要他相不相同也可以調,比如說PID可以設spec.shareProcessNamespace:true讓他一樣, 參考

看process在哪些namespace

可使用以下指令看

ls -al /proc/$PID/ns/

參考資料

author:   allmwh
commit:   b63649c
comment:   mod k8s's tag
lastmod:   2021-08-21 16:38:24
Avatar
allmwh 好油哦,配口水... 紀錄一些生活的事
comments powered by Disqus