直播APP系統(tǒng)源碼,Linux容器采用的隔離技術效果如何
Linux是直播APP系統(tǒng)源碼常用的系統(tǒng),其為了實現(xiàn)隔離技術一般會采用namespace技術,簡單來說它給直播APP系統(tǒng)源碼加了限制,可以讓用戶看到指定的內(nèi)容,但并不影響主機對這些進程的把控。
?

一、namespace技術
它是Linux操作系統(tǒng)默認提供的API,包括 PID Namespace、Mount Namespace、IPC?Namespace、Network Namespace等等。
以 PID Namespace 為例,它的功能是可以讓我們在創(chuàng)建進程的時候,告訴Linux系統(tǒng),直播APP系統(tǒng)源碼要創(chuàng)建的進程需要一個新的獨立進程空間,也就是說,這個進程只看得到這個新進程空間里的東西,看不到外面宿主機環(huán)境里的東西,也看不到其它進程。
Network Namespace 的技術原理也類似,讓這個進程只能看到當前Namespace空間里的網(wǎng)絡設備,看不到宿主機真實情況。Namespace 技術其實就是修改了應用進程的視覺范圍,但應用進程的本質(zhì)卻沒有變化。
?

二、namespace技術的不足
1、多容器模式下仍然是由一個主機操作,這和CDN有些相似,當直播APP系統(tǒng)源碼某個節(jié)點出現(xiàn)故障時,可能會連帶整條傳輸線路無法運行,直到有節(jié)點接替該節(jié)點的工作為止。
2、linux內(nèi)核中存在資源和對象不能被namespace化,如果直播APP系統(tǒng)源碼中的長須使用系統(tǒng)調(diào)用修改了時間,則整個主機的時間都會被隨之修改,這顯然不符合用戶的預期,增加了平臺的維護時間。
3、增加了危險性,生產(chǎn)環(huán)境中,沒有人敢把運行在物理機上的Linux容器直接暴露到公網(wǎng)上。
4、限制容器,任何一個節(jié)點都有可能把主機的資源消耗光,這反而不利于平臺主機對資源的管理。
?

三、cgrougs技術
其功能就是限制直播APP系統(tǒng)源碼進程組所使用的最大資源(這些資源可以是 CPU、內(nèi)存、磁盤等等)。針對上述的問題,為了防止容器(進程)之間互相搶資源,甚至某個容器把宿主機資源全部用完導致其它容器也宕掉的情況發(fā)生。因此,必須采用 Cgroup 技術對容器的資源進行限制。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關法律責任