亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

系統管理員必讀的容器入門指南

發布時間:2020-07-06 23:40:30 來源:網絡 閱讀:291 作者:RancherLabs 欄目:云計算

“容器”無疑是近年IT業界的buzzword,不過,在不同語境下,它對不同的人有不同的含義。在本文中,我將從Linux容器、容器鏡像、寫時復制等方面來闡釋容器的具體含義。


Linux容器

傳統意義上的Linux容器實際上只是Linux系統上的普通進程。這些進程組使用資源約束(控制組,即[cgroups])、Linux安全約束(Unix權限、功能、SELinux、AppArmor、seccomp等)和命名空間(PID、網絡、掛載等)與其他進程組隔離開來。

如果你啟動一個Linux系統并且查看使用cat /proc/PID/cgroup的任意進程,你將看到在cgroup中的某一進程。如果你查看?/proc/PID/status,則會看到其功能。如果你查看/ proc / self / attr / current,你將會獲取SELinux的標簽們。如果你查看/proc/PID/ns,你會在其中看到一系列命名空間的進程。

所以,如果你將容器定義為具有資源限制、Linux安全約束以及命名空間的進程,那么根據這一定義,Linux系統上的每個進程都運行在容器中。這就是為什么有人說“Linux即容器,容器即Linux”。而容器運行時則是修改這些資源限制、安全約束以及命名空間,并且可以啟動容器的程序。

容器鏡像

Docker引入了容器鏡像的概念,這是一個標準的TAR文件,它包含了:

  • Rootfs (容器根文件系統):在操作系統上帶有根目錄(/)標識的目錄,例如:/usr 、/var 、 /home 等等。

  • JSON文件(容器配置):JSON文件會來規定如何運行rootfs,例如:當容器啟動時應該在rootfs中運行什么指令或entrypoint,應該為容器設置什么樣的環境變量,容器的工作目錄是什么等等。

Docker基礎鏡像由根文件系統和JSON文件組成,可以通過在基礎鏡像的根文件系統中安裝所需的內容,以更新JSON文件,并且新建一個鏡像層,通過這種方式可以制作一個新的鏡像。

容器鏡像的定義最終由Open Container Initiative(OCI)標準化為OCI鏡像規范。

用于構建容器鏡像的工具被稱為容器鏡像構建器(如Dockerfile),有時容器引擎也能夠完成構建容器鏡像的工作,當然也可以使用一些可以構建容器鏡像的獨立工具。

Docker獲取了這些容器鏡像(tarballs)然后將他們上傳到一個web服務中,你可以從中拉取他們。然后Docker會開發一個協議以便你順利拉取這些鏡像,而這一web服務便被稱為容器鏡像倉庫。

容器引擎可以從容器鏡像倉庫中拉取鏡像,然后將其重組到容器存儲上。此外,容器引擎也能啟動容器運行時(如下圖)。


系統管理員必讀的容器入門指南


Linux容器內部機制


Copy?On?Write(COW)

容器存儲通常是一個寫時復制(COW)分層文件系統。當你從鏡像倉庫中拉取一個鏡像時,首先,你要從鏡像中提取rootfs并且將其放到磁盤上。如果你的鏡像由多層組成,那么在COW文件系統中需要將下載的每一層鏡像文件儲存在不同的層中。COW文件系統允許每一層分開存儲,這將分層鏡像的共享最大化了。容器引擎通常支持不同類型的容器存儲,如overlay、devicemapper、?btrfs、?aufs和?zfs等。

容器運行時

容器引擎將容器鏡像下載到容器存儲中后,它需要創建一個容器運行時的配置文件。這一配置文件結合了來自調用程序/用戶的輸入以及容器鏡像規范的內容。舉個例子,調用程序可能想要對正在運行的容器進行指定的安全性修改、添加環境變量或者將volumes掛載到容器上,這些都是調用程序輸入的內容。

容器運行時配置和分解的rootfs同樣也被OCI標準化為OCI運行時規范。

最后,容器引擎啟動讀取運行時規范的容器運行時,修改Linux cgroup、Linux安全約束以及命名空間,并且啟動容器命令以創建PID1(Process ID1)。此時,容器引擎可以將stdin / stdout傳回調用程序并控制容器(如,停止、啟動、附加等)。

請注意,許多新的容器運行時正在讓Linux的不同部分來隔離容器。人們先可以使用KVM分離(如迷你虛擬機)運行容器,或者可以使用其他hypervisor策略(例如,攔截容器進程中的所有系統調用)。既然我們已經擁有一個標準的運行時規范,那么就能夠通過相同的容器引擎啟動這些工具。甚至Windows也可以使用OCI運行時規范來啟動Windows容器。

容器編排引擎

容器編排引擎,相比其他容器工具而言,則處于更高的級別。容器編排是用于協調多個不同節點上的容器執行工具。容器編排引擎可以通過與容器引擎通信以管理容器,如啟動容器并且將其網絡連接在一起。它還能夠監控容器以及在負載增加時啟動其他容器。

Kubernetes是目前使用最為廣泛的容器編排引擎,被大量的中小型企業用戶用于開發或生產環境,并且已經成為業界公認的容器編排管理的標準框架。但是原生的Kubernetes因其學習曲線陡峭對于大多數開發人員而言很難直接上手使用。Rancher作為一個開源的企業級Kubernetes容器管理平臺,其簡潔直觀的界面風格和操作體驗可以極大程度地解決這一問題。并且Rancher實現了Kubernetes集群在混合云+本地數據中心的集中部署與管理,能統一納管位于不同基礎架構上的Kubernetes集群。此外,Rancher也將用戶的安全問題放在首位。Kubernetes于8月6日發布新的補丁版本之后,Rancher反應迅速,在1天之后發布了全新版本Rancher 2.2.7,修復了新近的CVE并支持Kubernetes新版本。

訪問Rancher Github主頁,了解更多新版本信息:

https://github.com/rancher/rancher/releases


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扶余县| 和顺县| 温泉县| 四会市| 宁陵县| 汤原县| 金沙县| 祥云县| 兖州市| 连江县| 荃湾区| 郸城县| 玛多县| 淮阳县| 延长县| 南皮县| 都江堰市| 灵寿县| 广元市| 错那县| 阿荣旗| 赣州市| 临邑县| 宜阳县| 黄梅县| 天等县| 武汉市| 永安市| 绥棱县| 清涧县| 盐边县| 巴彦县| 曲阳县| 沐川县| 浮梁县| 长子县| 五家渠市| 康马县| 牙克石市| 台南市| 汶上县|