天天看點

《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic建構和部署》——2.2 容器式Linux系統的Docker配置

本節書摘來自異步社群《docker容器:利用kubernetes、flannel、cockpit和atomic建構和部署》一書中的第2章,第2.2節,作者: 【美】christopher negus(克裡斯托弗•尼格斯)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

我們使應用程式容器化,不遺餘力地使其變小和變高效,但如果最終要将這些容器部署到緩慢、臃腫的作業系統中,那将使一切努力失去意義。在不斷演進的容器模型中,既然容器已包含運作應用程式所需的可執行檔案、庫以及其他元件,宿主作業系統完全可以簡化到隻保留運作容器所需的功能。

project atomic和coreos這兩個項目的目标是提供專為運作容器而優化的作業系統。這樣的作業系統既能夠直接運作在硬體上,也能運作在公有雲(如亞馬遜的ec2或者google compute engine)、(openstack、vmware和red hat engerprise virtualization提供的)私有虛拟化平台上或者(像linux kvm主控端這樣的)個人計算機上的虛拟機中。

同樣,安裝和配置project atomic和coreos作業系統的方法很多。project atomic提供了一個iso的安裝程式,這類似于fedora和rhel系統的安裝——跟随安裝步驟一路點選來配置網路、磁盤分區和添加使用者。而coreos提供的iso檔案隻是把整個鏡像複制到所選的分區上,然後幾分鐘内就可以啟動了。

當部署到雲環境中時,像cloud-config(coreos)和cloud-init(atomic和其他系統)這樣的工具,可以在需要時用來配置雲端鏡像。

2.2.1 atomic host的docker配置

atomic項目(www.projectatomic.io)是基于rpm的liunx發行版建構器,它是為部署和管理容器而專門設計的。fedora、red hat enterprise linux和centos都有可以作為atomic主控端運作的版本。

atomic host系統提供了多種形式,以友善在不同環境中應用。可以下載下傳atomic qcow2鏡像,并通過cloud-init注入配置資訊(使用者賬号、主機名、配置檔案等)的方式來配置它。對于centos atomic,有用于快速啟動centos atomic虛拟機的vagrant檔案可用。而rhel atomic和fedora atomic項目提供了用于安裝的iso,可以使用傳統的安裝程式一步一步地配置atomic系統。

通過如下連結可以找到并下載下傳不同atomic主控端版本的鏡像。

fedora atomic(<code>https://getfedora.org/cloud/download</code>):在下載下傳fedora cloud頁面中有一個atomic host images的标簽(點選進入)。選擇atomic host image來下載下傳鏡像,并使用通常的fedora安裝程式(anaconda)來安裝fedora atomic系統。這個頁面上還有其他形式的fedora atomic可供下載下傳,如qcow2格式(用于openstack)以及原始格式的atomic鏡像檔案,還可以通過vagrant在virtualbox和kvm(libvirt)環境中啟動atomic鏡像。最後,還有用于amazon ec2部署的atomic鏡像。

centos atomic(<code>http://buildlogs.centos.org/centos/7/isos/x86_64/</code>):該網站有qcow2格式的鏡像可用。同樣,如果系統已經安裝了vagrant(<code>https://www.vagrantup.com/</code>),這裡也有vagrant box,可以使用它們立即啟動centos atomic虛拟機。centos atomic的安裝過程與fedora和rhel的qcow2格式鏡像的部署過程類似。

rhel atomic(<code>https://access.redhat.com/downloads</code>):下載下傳rhel atomic鏡像需要red hat的訂閱(正式或評估)。在red hat下載下傳頁面,選擇red hat enterprise linux,然後在product variant部分,選擇red hat enterprise linux atomic host。針對不同平台(雲、red hat企業虛拟化、microsoft hyper-v和vmware vsphere),rhel atomic鏡像提供了多種不同格式(qcow2、ova、vhd和iso)

想了解更多project atomic發行版的擷取和安裝方法,請參考project atomic快速入門指南(www.projectatomic.io/docs/quickstart)。接下來的示例中,我使用fedora 22安裝程式搭建起一個fedora atomic host。相同的基本步驟可以用來指導通過atomic iso安裝檔案配置rhel。

1.fedora atomic host的docker配置

與coreos一樣,atomic host系統已為運作docker做好了配置。開始按這個過程搭建fedora atomic host前,先下載下傳fedora atomic iso安裝鏡像。可以将iso鏡像刻錄到一張cd或dvd盤上,而後可以将它直接安裝在計算機硬體上,或者在幾乎所有支援虛拟化的系統上使用。例如,在linux kvm這樣的系統中,通過virt-manager工具來使用。

(1)下載下傳fedora atomic iso鏡像。下載下傳最新的fedora atomic安裝鏡像。查找官方的fedora 22或更新版本。我使用下列鏡像檔案:

(2)啟動fedora atomic iso鏡像。要麼從刻錄到CD光牒上的鏡像直接啟動安裝程式,要麼使用虛拟機管理工具(如virt-manager、openstack或其他工具)作為虛拟機啟動。我建議準備至少10 gb的磁盤分區給fedora atomic,試試看。

(3)做出安裝選擇。跟随安裝界面一步一步地進行設定,這些安裝界面提供了如何配置系統的資訊。多數特性的配置是通過installation summary(安裝摘要)界面完成的,如圖2-1所示。在installation summary界面上,完成如下設定。

《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic建構和部署》——2.2 容器式Linux系統的Docker配置

圖2-1 通過installation summary界面确定磁盤分區和網絡設定

keyboard(鍵盤):根據語言與地區選擇鍵盤。

time &amp; date(時間和日期):設定日期、時間和時區。預設選擇的是network time(網絡時間),系統會和ntp時間伺服器同步時間。

installation destination(安裝位置):對于該配置項,要麼采用自動配置設定的磁盤分區,要麼自己選擇一個分區。

language support(語言支援):選擇語言。

network &amp; host name(網絡與主機名):網絡是自動打開的(嘗試使用dhcp擷取位址資訊)。如果要關閉網絡或者設定自己的主機名,選擇該配置項。完成後點選done(完成)。

(4)選擇begin installation(開始安裝)。到目前為止,還沒有任何設定作用到你的磁盤分區。如果所有設定都已經完成,選擇begin installation。

(5)設定root密碼和使用者。随着安裝進行,選擇root password并設定root密碼。之後,選擇user creation并添加使用者賬号(同時為該使用者設定密碼)。可以設定該使用者是否擁有sudo權限(選擇make this user administrator)。選擇done,傳回配置界面并等待安裝完成。

(6)重新開機。安裝完成後,選擇重新開機系統,現在就可以開始使用fedora atomic host了。

2.檢查fedora atomic host

使用者無需安裝任何軟體就可以開始使用docker。實際上,根本無法通過傳統的rpm和yum軟體包工具來為atomic host添加軟體。如果要向系統添加軟體,要麼添加普通容器(來運作應用程式),要麼添加擁有超級特權的容器(來添加直接通路主控端系統的工具)。

重新開機fedora atomic host後,就可以立即使用docker。docker軟體包應該已經安裝,而且docker服務已經啟動并啟用了。

通過自動更新來更新fedora atomic系統,而自動更新要使用atomic指令。我建議運作下面的指令來確定你的系統安裝了最新版的docker以及相關軟體:

<code># atomic host upgrade</code>

軟體更新後,通過重新開機使最新的atomic生效。現在,可以按第3章所描述的搭建docker registry,或者開始使用docker指令——第4章涉及這一方面。

2.2.2 coreos的docker配置

coreos提供了幾種方式來運作coreos系統。這個例子使用了coreos的live鏡像。這個鏡像檔案可以刻錄到cd中并直接從硬體啟動,或者加載到能夠安裝虛拟機的工具中(例如,許多linux系統都有的virtual machine manager工具)。

接下來描述了如何使用coreos的iso live鏡像來啟動coreos的live系統,以及如何将coreos安裝到硬碟并從硬碟啟動系統,這樣就可以開始使用docker了。

通過以下步驟來擷取coreos的iso live鏡像檔案,并從該鏡像檔案啟動和安裝coreos。

(1)擷取coreos。 通路下面的連結,然後選擇download stable iso來擷取coreos的安裝媒介:

<code>https://coreos.com/docs/running-coreos/platforms/iso/</code>

(2)準備安裝媒介。使coreos的live安裝媒介可以将coreos安裝到硬碟上。可以将它刻錄到cd上,也可以通過vm安裝應用程式指向它(如linux的virtual machine manager),或者将它複制到pxe伺服器上并通過網絡來啟動它。

(3)啟動安裝媒介。如果是安裝到本地虛拟機上或者是雲環境中,要确定為新coreos系統保留多少磁盤空間。當coreos啟動時,磁盤将映射為/dev/sda或/dev/sdb這樣的裝置。

(4)使用live coreos。coreos會直接啟動到core使用者(該使用者有sudo權限)的shell提示符下。coreos預設配置了兩個使用者:root和core。目前coreos系統運作在live模式下(還沒安裝)。接下來為安裝做準備。

(5)建立加密密碼。 為core使用者建立加密密碼。例如,可以使用openssl指令建立一個md5crypt密碼(coreos自帶這個工具)。提示符出現後,輸入要加密的密碼(兩次):

(6)建立cloud-config檔案。建立cloud-config檔案,并通過該檔案為coreos添加使用者密碼和其他配置資訊。參考“使用cloud-config”(<code>https://github.com/coreos/coreos-cloudinit/ blob/master/documentation/ cloud-config.md</code>)了解cloud-config檔案内容的詳細資訊。在這個例子中,建立名為cloud-config.yaml的檔案,其檔案内容如下(将passwd的字元串替換為上一步生成的字元串):

(7)運作coreos-install腳本。運作下面的指令,将coreos鏡像安裝到之前標明的磁盤裝置上(這裡使用的是/dev/sda):

(8)重新開機。鏡像安裝完成後,重新開機系統:

<code>$ sudo reboot</code>

(9)登入。coreos重新開機後,使用core使用者以及之前為該使用者配置設定的加密密碼登入系統。

至此,你就可以搭建docker registry(第3章),或者開始使用docker指令(第4章)。

繼續閱讀