zoukankan      html  css  js  c++  java
  • pod 和 容器的关系

    一、docker容器的结构

    containerd 是老大,新建一个容器会先新建 containerd-shim,containerd-shim 会建出来最终的docker容器。

    1、 查看containerd的pid

    pidof containerd == 2841

    2、 查看 父进程是containerd的进程,全是 containerd-shim

    ps -A -ostat,pid,ppid,user,cmd|grep 2841
    
    
    Ssl   2841     1 root     /usr/bin/containerd
    Sl    7320  2841 root     containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/52eeb71ffa22cd8020a6214fa1a556c2e22c3012858a75aa5799b021502916e1 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
    
    Sl    7342  2841 root     containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/08bcf4df1a2072dc69f825517c6c1ace3ed81886d420fe974fc0683ae61aa7fb -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
    
    Sl    8087  2841 root     containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/c3d3530cf2f5dddff0d1a37c5cd6791ffb15cf21d5e1096d96ca36269e077136 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
    
    Sl   19039  2841 root     containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/63ee2df4c255110248842e885fb0b9dafca9791dda6a00499bbc3fc99e153743 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
    
    Sl   19338  2841 root     containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
    
    Sl   19407  2841 root     containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
    

    3、 查看一个containerd-shim 和子进程

    # 这是一个 nginx容器
    ps -A -opid,ppid,user,cmd |grep 7320
    
     7320  2841  root     containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/52eeb71ffa22cd8020a6214fa1a556c2e22c3012858a75aa5799b021502916e1 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
    
     7337  7320  root     nginx: master process nginx -g daemon off;
    

    4、查看这个nginx的容器

    # docker ps |grep 52eeb71ffa
    52eeb71ffa22        xxxx/xxxx/safe-nginx            "nginx -g 'daemon of…"   41 hours ago        Up 41 hours                             k8s_safe-nginx_668c459d6-pp7bxxx-xxxx_4e11582d-aeea-11ea-8af4-0050569e47b9_0
    

    二、 pod与容器,cgroup

    1、systemctl status && systemd-cgls

    在不加最后的unit参数的时候,这个命名变得很陌生了。主要是查看 cgroup状态。

    [root@my-node1 ~]# systemctl status
    ● my-node1
        State: running
         Jobs: 0 queued
       Failed: 0 units
        Since: 一 2020-06-15 16:48:44 CST; 1 day 17h ago
       CGroup: /
               ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
               ├─kubepods
               │ ├─besteffort
               │ │ └─podf86494f1-aeea-11ea-8af4-0050569e47b9
               │ │   ├─167e38f31f6f225fe7e53a6fc31a1aebb85628531b6b3b438a3591fffefca93c
               │ │   │ └─kube-proxy
               │ │   │   └─6227 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf --hostname-override=my-node1
               │ │   └─1ff0ae01463af951a16ac8e7006ec99333e8a42578118791529755b5704de4cb
               │ │     └─5982 /pause
               │ └─burstable
               │   ├─podf5f16f15-af9e-11ea-8af4-0050569e47b9
               │   │ ├─d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
               │   │ │ ├─19431 nginx: master process nginx -g daemon off
               │   │ │ ├─19453 nginx: worker proces
               │   │ │ ├─19454 nginx: worker proces
               │   │ │ ├─19455 nginx: worker proces
               │   │ │ ├─19456 nginx: worker proces
               │   │ │ ├─19457 nginx: worker proces
               │   │ │ ├─19458 nginx: worker proces
               │   │ │ ├─19459 nginx: worker proces
               │   │ │ └─19460 nginx: worker proces
               │   │ ├─9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
               │   │ │ └─19356 redis-server
               │   │ └─63ee2df4c255110248842e885fb0b9dafca9791dda6a00499bbc3fc99e153743
               │   │   └─19057 /pause
              │   ├─pod4e11582d-aeea-11ea-8af4-0050569e47b9
               │   │ ├─52eeb71ffa22cd8020a6214fa1a556c2e22c3012858a75aa5799b021502916e1
               │   │ │ ├─7337 nginx: master process nginx -g daemon off
               │   │ │ ├─7380 nginx: worker proces
               │   │ │ ├─7381 nginx: worker proces
               │   │ │ ├─7382 nginx: worker proces
               │   │ │ ├─7383 nginx: worker proces
               │   │ │ ├─7384 nginx: worker proces
               │   │ │ ├─7385 nginx: worker proces
               │   │ │ ├─7386 nginx: worker proces
               │   │ │ └─7387 nginx: worker proces
               │   │ └─0a5529d9b0fcb544630ea2722c8a82feaa8c3d2efd7ea4118bc5713ffa604437
               │   │   └─7175 /pause
               │   ├─podf8697bea-aeea-11ea-8af4-0050569e47b9
               │   │ ├─99e0fbfa76ad0141bce359555fa343380a0c27b8a441609b9fe41beed954eda4
               │   │ │ ├─6962 /bin/sh /install-cni.sh
               │   │ │ └─7233 sleep 3600
               │   │ ├─1ac5b03e0a9683313a409330a0c7390ea908d963ec9955ff71d2739882924c2d
               │   │ │ └─6593 /opt/bin/flanneld --ip-masq --kube-subnet-mgr
               │   │ └─dcbc2486a119dac68cb6bb2b90941411927c27a0a58c9027475026d02b83e224
               │   │   └─5967 /pause
               │   └─podf8662a28-aeea-11ea-8af4-0050569e47b9
               │     ├─599b533be6646195bc24f5d32bf2551a131a207fd469522608fe7916b187c7cc
               │     │ └─7049 ./kube-rbac-proxy --logtostderr --secure-listen-address=11.11.176.68:9100 --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_RSA_
               │     ├─a18a4606e095579037d4e7f10276b64ab020abf76472598c39acfa67cd16b0f2
               │     │ └─6715 /bin/node_exporter --web.listen-address=127.0.0.1:9100 --path.procfs=/host/proc --path.sysfs=/host/sys --path.rootfs=/host/root --collector.textfile.directory=/host/key --collector
               │     └─aa8c844c2907348c09244c240927964494ab1a43181c1e2cd1e8154e4451bb78
               │       └─5974 /pause
               ├─user.slice
               │ └─user-0.slice
               │   ├─session-290.scope
               │   │ ├─11908 systemctl status
               │   │ ├─11909 less
               │   │ ├─31551 sshd: root@pts/1
               │   │ └─31579 -bash
               │   ├─session-175.scope
               │   │ ├─30428 sshd: root@pts/0
               │   │ └─30430 -bash
               │   └─session-1.scope
               │     ├─1348 login -- root
               │     ├─1352 -bash
               │     └─1448 bash
               └─system.slice
                 ├─rpc-statd.service
                 │ └─7519 /usr/sbin/rpc.statd
                 ├─kubelet.service
                 │ └─5773 /usr/local/sbin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --allow-pr
                 ├─docker.service
                 │ └─2842 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
                 ├─containerd.service
                 │ ├─ 2841 /usr/bin/containerd
                 │ ├─ 5914 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/dcbc2486a119dac68cb6bb2b90941411927c27a0a58c9027475026d02b83e224 -address /run/contain
                 │ ├─ 5918 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/aa8c844c2907348c09244c240927964494ab1a43181c1e2cd1e8154e4451bb78 -address /run/contain
                 │ ├─ 5929 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/1ff0ae01463af951a16ac8e7006ec99333e8a42578118791529755b5704de4cb -address /run/contain
                 │ ├─ 6210 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/167e38f31f6f225fe7e53a6fc31a1aebb85628531b6b3b438a3591fffefca93c -address /run/contain
                 │ ├─ 6575 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/1ac5b03e0a9683313a409330a0c7390ea908d963ec9955ff71d2739882924c2d -address /run/contain
                 │ ├─ 6698 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/a18a4606e095579037d4e7f10276b64ab020abf76472598c39acfa67cd16b0f2 -address /run/contain
                 │ ├─ 6944 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/99e0fbfa76ad0141bce359555fa343380a0c27b8a441609b9fe41beed954eda4 -address /run/contain
                 │ ├─ 7031 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/599b533be6646195bc24f5d32bf2551a131a207fd469522608fe7916b187c7cc -address /run/contain
                 │ ├─ 7156 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/0a5529d9b0fcb544630ea2722c8a82feaa8c3d2efd7ea4118bc5713ffa604437 -address /run/contain
                 │ ├─ 7320 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/52eeb71ffa22cd8020a6214fa1a556c2e22c3012858a75aa5799b021502916e1 -address /run/contain
                 │ ├─ 7342 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/08bcf4df1a2072dc69f825517c6c1ace3ed81886d420fe974fc0683ae61aa7fb -address /run/contain
                 │ ├─ 8087 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/c3d3530cf2f5dddff0d1a37c5cd6791ffb15cf21d5e1096d96ca36269e077136 -address /run/contain
                 │ ├─19039 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/63ee2df4c255110248842e885fb0b9dafca9791dda6a00499bbc3fc99e153743 -address /run/contain
                 │ ├─19338 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94 -address /run/contain
                 │ └─19407 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a -address /run/contain
                 ├─nkucsd.service
                 │ └─1042 nkucsd
                 ├─sshd.service
                 │ └─1025 /usr/sbin/sshd -D
                 ├─postfix.service
                 │ ├─1272 /usr/libexec/postfix/master -w
                 │ ├─1274 qmgr -l -t unix -u
                 │ └─5409 pickup -l -t unix -u
                 ├─tuned.service
                 │ └─1023 /usr/bin/python -Es /usr/sbin/tuned -l -P
                 ├─crond.service
                 │ └─731 /usr/sbin/crond -n
                 ├─NetworkManager.service
                 │ └─717 /usr/sbin/NetworkManager --no-daemon
                 ├─vmtoolsd.service
                 │ └─716 /usr/bin/vmtoolsd
                 ├─vgauthd.service
                 │ └─715 /usr/bin/VGAuthService -s
                 ├─rsyslog.service
                 │ └─710 /usr/sbin/rsyslogd -n
                 ├─gssproxy.service
                 │ └─719 /usr/sbin/gssproxy -D
                 ├─polkit.service
                 │ └─707 /usr/lib/polkit-1/polkitd --no-debug
                 ├─chronyd.service
                 │ └─713 /usr/sbin/chronyd
                 ├─dbus.service
                 │ └─700 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
                 ├─irqbalance.service
                 │ └─699 /usr/sbin/irqbalance --foreground
                 ├─systemd-logind.service
                 │ └─697 /usr/lib/systemd/systemd-logind
                 ├─rpcbind.service
                 │ └─703 /sbin/rpcbind -w
                 ├─auditd.service
                 │ └─673 /sbin/auditd
                 ├─systemd-udevd.service
                 │ └─541 /usr/lib/systemd/systemd-udevd
                 ├─lvm2-lvmetad.service
                 │ └─531 /usr/sbin/lvmetad -f
                 └─systemd-journald.service
                   └─513 /usr/lib/systemd/systemd-journald
    

    2、从目录里看 cgroup

    # ll /sys/fs/cgroup
    总用量 0
    drwxr-xr-x 6 root root  0 4月  25 2019 blkio
    lrwxrwxrwx 1 root root 11 4月  25 2019 cpu -> cpu,cpuacct
    lrwxrwxrwx 1 root root 11 4月  25 2019 cpuacct -> cpu,cpuacct
    drwxr-xr-x 6 root root  0 4月  25 2019 cpu,cpuacct
    drwxr-xr-x 4 root root  0 4月  25 2019 cpuset
    drwxr-xr-x 6 root root  0 4月  25 2019 devices
    drwxr-xr-x 4 root root  0 4月  25 2019 freezer
    drwxr-xr-x 4 root root  0 4月  25 2019 hugetlb
    drwxr-xr-x 6 root root  0 4月  25 2019 memory
    lrwxrwxrwx 1 root root 16 4月  25 2019 net_cls -> net_cls,net_prio
    drwxr-xr-x 4 root root  0 4月  25 2019 net_cls,net_prio
    lrwxrwxrwx 1 root root 16 4月  25 2019 net_prio -> net_cls,net_prio
    drwxr-xr-x 4 root root  0 4月  25 2019 perf_event
    drwxr-xr-x 4 root root  0 4月  25 2019 pids
    drwxr-xr-x 6 root root  0 4月  25 2019 systemd
    
    ## 在 /sys/fs/cgroup/systemd 这个目录就是 systemd-cgls 展示的根。
    
    

    3、只看我这一个pod

    我起了一个 pod 里边有一个nginx和一个redis,还有一个pause。

       CGroup: /
               ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
               ├─kubepods      ### pod的根cgroup
               │ └─burstable     ### pod根据request和limit分为3个保证稳定性的QoS服务质量级别:BestEffort,Burstable,Guaranteed;参考:https://blog.csdn.net/horsefoot/article/details/52091077
               │   ├─podf5f16f15-af9e-11ea-8af4-0050569e47b9          ### 对应于 /var/lib/kubelet/pods/xxxx ,其下的目录: containers  etc-hosts  plugins  volumes
               │   │ ├─d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a      ### nginx 容器的id
               │   │ │ ├─19431 nginx: master process nginx -g daemon off
               │   │ │ ├─19453 nginx: worker proces
               │   │ │ ├─19454 nginx: worker proces
               │   │ │ ├─19455 nginx: worker proces
               │   │ │ ├─19456 nginx: worker proces
               │   │ │ ├─19457 nginx: worker proces
               │   │ │ ├─19458 nginx: worker proces
               │   │ │ ├─19459 nginx: worker proces
               │   │ │ └─19460 nginx: worker proces
               │   │ ├─9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94    ### redis 容器的id
               │   │ │ └─19356 redis-server
               │   │ └─63ee2df4c255110248842e885fb0b9dafca9791dda6a00499bbc3fc99e153743    ### pause 容器的id
               │   │   └─19057 /pause
    
    
    # cat /proc/`pidof nginx`/cgroup
    11:memory:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    10:cpuset:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    9:devices:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    8:blkio:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    7:net_prio,net_cls:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    6:perf_event:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    5:pids:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    4:cpuacct,cpu:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    3:hugetlb:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    2:freezer:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    1:name=systemd:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/d62b4a22abd21d47636a1c84e970ad7e76d8fe633232715f74606ee93c71291a
    
    # cat /proc/`pidof redis-server`/cgroup
    # cat /proc/19356/cgroup
    11:memory:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    10:cpuset:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    9:devices:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    8:blkio:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    7:net_prio,net_cls:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    6:perf_event:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    5:pids:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    4:cpuacct,cpu:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    3:hugetlb:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    2:freezer:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    1:name=systemd:/kubepods/burstable/podf5f16f15-af9e-11ea-8af4-0050569e47b9/9934ac36efade11bde691c12729a1dfa7483b8864ae4ded7a77a03f3b6e84d94
    

    三、 pod和容器,namespace

    就是pause和容器,查看pause进程和容器进程的namespace关系
    首先要从容器 id 获得其进程在宿主机上的进程号:

    1、查看pause容器的进程号: 19057

    # docker top  63ee2df4
    
    UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
    root                19057            19039               0                   Jun16               ?                   00:00:00            /pause
    

    2、 查看 redis容器的进程号:19356

    # docker top 9934ac36
    UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
    100                 19356            19338               0                   Jun16               ?                   00:03:21            redis-server
    
    
    

    3、 查看 nginx容器的进程号:19431

    # docker top d62b4a2
    UID                 PID                   PPID                C                   STIME               TTY                 TIME                CMD
    root                19431               19407               0                   Jun16               ?                   00:00:00            nginx: master process nginx -g daemon off;
    100                 19453               19431               0                   Jun16               ?                   00:00:00            nginx: worker process
    100                 19454               19431               0                   Jun16               ?                   00:00:00            nginx: worker process
    100                 19455               19431               0                   Jun16               ?                   00:00:00            nginx: worker process
    100                 19456               19431               0                   Jun16               ?                   00:00:00            nginx: worker process
    100                 19457               19431               0                   Jun16               ?                   00:00:00            nginx: worker process
    100                 19458               19431               0                   Jun16               ?                   00:00:00            nginx: worker process
    100                 19459               19431               0                   Jun16               ?                   00:00:00            nginx: worker process
    100                 19460               19431               0                   Jun16               ?                   00:00:00            nginx: worker process
    

    4、 查看 pod里进程们到底共享什么namespace

    ## 查看 pause进程的 namespace信息
    #  ll /proc/19057/ns
    总用量 0
    lrwxrwxrwx 1 root root 0 6月  16 14:59 ipc -> ipc:[4026532659]  ## same ;ipc namespace
    lrwxrwxrwx 1 root root 0 6月  17 10:28 mnt -> mnt:[4026532657] 
    lrwxrwxrwx 1 root root 0 6月  16 14:59 net -> net:[4026532662] ## same ;net namespace
    lrwxrwxrwx 1 root root 0 6月  17 10:28 pid -> pid:[4026532660]
    lrwxrwxrwx 1 root root 0 6月  17 10:28 user -> user:[4026531837] ## same ;user namespace
    lrwxrwxrwx 1 root root 0 6月  17 10:28 uts -> uts:[4026532658]
    
    ## 查看 redis进程的 namespace信息
    # ll /proc/19356/ns
    总用量 0
    lrwxrwxrwx 1 100 101 0 6月  16 15:13 ipc -> ipc:[4026532659]  ## same
    lrwxrwxrwx 1 100 101 0 6月  16 15:13 mnt -> mnt:[4026532654]
    lrwxrwxrwx 1 100 101 0 6月  16 15:13 net -> net:[4026532662]  ## same
    lrwxrwxrwx 1 100 101 0 6月  16 15:13 pid -> pid:[4026532656]
    lrwxrwxrwx 1 100 101 0 6月  16 15:13 user -> user:[4026531837]  ## same
    lrwxrwxrwx 1 100 101 0 6月  16 15:13 uts -> uts:[4026532655]
    
    ## 查看 nginx进程的 namespace信息
    # ll /proc/19431/ns
    总用量 0
    lrwxrwxrwx 1 root root 0 6月  16 15:13 ipc -> ipc:[4026532659]  ## same
    lrwxrwxrwx 1 root root 0 6月  16 15:13 mnt -> mnt:[4026532849]
    lrwxrwxrwx 1 root root 0 6月  16 15:13 net -> net:[4026532662]  ## same
    lrwxrwxrwx 1 root root 0 6月  16 15:13 pid -> pid:[4026532851]
    lrwxrwxrwx 1 root root 0 6月  16 15:13 user -> user:[4026531837]  ## same
    lrwxrwxrwx 1 root root 0 6月  16 15:13 uts -> uts:[4026532850]
    

    四、总结pod和容器的关系

    pod是k8s抽象出来的资源类型,是k8s调度的最小单位。这是事实,但是为什么会有pod呢?直接用容器不好吗?
    -- 不好!首先容器里只启动一个进程这基本是共识了,那联系紧密的几个进程怎么办,pod维持多个容器紧密联系,他们共享ipc,net和user namespace,他们属于同一组 cgroup,作为一个整体来参与调度;
    -- 二、容器技术不只是containerd 这一种引擎,还有 rkt,cri-o等,k8s需要pod这一层更高级的抽象。

  • 相关阅读:
    LeetCode 230. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)
    LeetCode 216. 组合总和 III(Combination Sum III)
    LeetCode 179. 最大数(Largest Number)
    LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
    LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
    LeetCode 106. 从中序与后序遍历序列构造二叉树(Construct Binary Tree from Inorder and Postorder Traversal)
    指针变量、普通变量、内存和地址的全面对比
    MiZ702学习笔记8——让MiZ702变身PC的方法
    你可能不知道的,定义,声明,初始化
    原创zynq文章整理(MiZ702教程+例程)
  • 原文地址:https://www.cnblogs.com/leaderjs/p/13151042.html
Copyright © 2011-2022 走看看