CoreOS Architecture Learning

目錄html

1. CoreOS簡介
2. CoreOS部署、安裝、使用
3. CoreOS命令使用

 

1. CoreOS簡介java

0x1: CoreOS和Docker的關係算法

咱們先來看一張Docker的架構圖docker

Docker是一種基於"Host OS"操做系統的虛擬化技術,部署Docker的前提是須要底層有一個運行Docker Container的操做系統,從理論上來講,RHEL、ubuntu、debain等系統,而CoreOS就是一款專門爲了Docker虛擬化而設計的操做系統ubuntu

0x2: CoreOS產生安全

CoreOS是一個基於Docker的輕量級容器化Linux發行版,專爲大型數據中心而設計,旨在經過輕量的系統架構和靈活的應用程序部署能力簡化數據中心的維護成本和複雜度服務器

0x3: CoreOS的特色
網絡

1. CoreOS 沒有提供包管理工具,而是經過容器化 (containerized) 的運算環境嚮應用程序提供運算資源。應用程序之間共享系統內核和資源,可是彼此之間又互不可見。這樣就意味着應用程序將不會再被直接安裝到操做系統中,而是經過 Docker 運行在容器中。這種方式使得操做系統、應用程序及運行環境之間的耦合度大大下降

2. 相對於傳統的部署方式而言,在 CoreOS 集羣中部署應用程序更加靈活便捷,應用程序運行環境之間的干擾更少,並且操做系統自身的維護也更加容易。

3. CoreOS 採用雙系統分區 (dual root partition) 設計。兩個分區分別被設置成主動模式和被動模式並在系統運行期間各司其職
    1) 主動分區負責系統運行
    2) 被動分區負責系統升級
一旦新版本的操做系統被髮布,一個完整的系統文件將被下載至被動分區,並在系統下一次重啓時重新版本分區啓動,原來的被動分區將切換爲主動分區,而以前的主動分區則被切換爲被動分區,兩個分區扮演的角色將相互對調。同時在系統運行期間系統分區被設置成只讀狀態,這樣也確保了 CoreOS 的安全性。CoreOS 的升級過程在默認條件下將自動完成,而且經過 cgroup 對升級過程當中使用到的網絡和磁盤資源進行限制,將系統升級所帶來的影響降至最低 

4. CoreOS 使用 Systemd 取代 SysV 做爲系統和服務的管理工具。與 SysV 相比
    1) Systemd 不但能夠更好的追蹤系統進程,並且也具有優秀的並行化處理能力,加之按需啓動等特色,並結合 Docker 的快速啓動能力,在 CoreOS 集羣中大規模部署 Docker Containers 與使用其餘操做系統相比在性能上的優點將更加明顯
    2) Systemd 的另外一個特色是引入了 "target" 的概念,每一個 target 應用於一個特定的服務,而且能夠經過繼承一個已有的 target 擴展額外的功能,這樣使得操做系統對系統上運行的服務擁有更好的控制力 

5. 經過對系統結構的從新設計,CoreOS 剔除了任何沒必要要的軟件和服務。在必定程度上減輕了維護一個服務器集羣的複雜度,幫助用戶從繁瑣的系統及軟件維護工做中解脫出來。雖然CoreOS 最初源自於Google ChromeOS,可是從一開始就決定了 CoreOS 更加適合應用於一個集羣環境而不是一個傳統的服務器操做系統 

Relevant Link:架構

http://www.infoq.com/cn/articles/what-is-coreos
http://baike.baidu.com/view/10876826.htm?fr=aladdin
http://www.oschina.net/p/coreos
http://www.oschina.net/translate/coreos_and_docker_first_steps?cmp
http://www.infoq.com/cn/news/2014/07/etcd-cluster-discovery

0x4: CoreOS爲大規模雲計算、數據中心集羣而作的改造ssh

1. CoreOS針對Linux內核所作的改造
    1) 存在兩個ROOT分區,一個被用做啓動分區,一個被用做更新分區 
    2) 更新分區在更新完成後,自動從新啓動系統,當前機器不須要從負載集羣中移除,爲了保證其它應用程序不被打斷,會經過Linux cgroup限制更新過程當中的磁盤、網絡等IO使用。

2. 採用systemd取代傳統的SysV  
    1) 支持並行化任務 
    2) 同時採用 socket 式與 D-Bus 總線式激活服務 
    3) 按需啓動守護進程(daemon)
    4) 利用 Linux 的 cgroups 監視進程 
    5) 支持快照和系統恢復 
    6) 維護掛載點和自動掛載點 
    7) 各服務間基於依賴關係進行精密控制 

3. root分區被設計成只讀,用以保證數據的一致性和更新可用

4. CPU、IO等資源隔離
基於容器(Container)的架構實現資源隔離,CoreOS很明智使用Docker做爲容器管理器用以構建、發佈應用,從這個層面來看,一個應用其實就是一個容器 

5. etcd組件負責服務發現和配置共享,採用Raft分佈式一致性協議算法,承擔起,組件之間服務通訊使用。很天然的,容器(Container)之間應用、服務的伸縮,就顯得很簡單了

Relevant Link:

https://coreos.com/

 

2. CoreOS部署、安裝、使用

A new way to think about servers
CoreOS is Linux for massive server deployments

CoreOS is a new Linux distribution that has been rearchitected to provide features needed to run modern infrastructure stacks. The strategies and architectures that influence CoreOS allow companies like Google, Facebook and Twitter to run their services at scale with high resilience.

0x1: CoreOS Installation Based On VirtualBox

CoreOS是一種操做系統架構的產品,CoreOS的安裝須要基於必定的硬件/虛擬機環境上實現

http://www.blogjava.net/yongboy/archive/2013/08/26/403325.html

0x2: CoreOS Installation Based On VMware

1. Choosing a Channel
//This is a rough sketch that should work on OSX and Linux:
curl -LO http://alpha.release.core-os.net/amd64-usr/current/coreos_production_vmware_insecure.zip
unzip coreos_production_vmware_insecure.zip -d coreos_production_vmware_insecure
cd coreos_production_vmware_insecure
open coreos_production_vmware_insecure.vmx

2. To deploy on an ESXi/vSphere host, convert the VM to OVF
cd coreos_developer_vmware_insecure
mkdir coreos
ovftool coreos_production_vmware_insecure.vmx coreos/coreos.insecure.ovf

3. creates the following files in ../coreos/:
//解壓後的結果
coreos.insecure-disk1.vmdk
coreos.insecure.ovf
coreos.insecure.mf

4. use the vSphere Client to deploy the VM as follows:
    1) menu "File"..."Deploy OVF Template..."
    2) in the wizard, specify the location of the /coresos/ coreos.insecure.ovf created earlier
    3) name your VM
    4) choose "thin provision" for the disk format
    5) choose your network settings
    6) confirm the settings then click "Finish"

5. Cloud-Config

6. Logging in
cd coreos_developer_vmware_insecure
ssh -i insecure_ssh_key core@10.0.1.81

7. Replacing the key
cat ~/.ssh/id_rsa.pub | ssh core@10.0.1.81 -i insecure_ssh_key update-ssh-keys -a user
ssh core@10.0.1.81 update-ssh-keys -D oem

8. Using CoreOS

Relevant Link:

https://coreos.com/docs/running-coreos/platforms/vmware/
https://coreos.com/docs/

 

3. CoreOS命令使用

https://coreos.com/docs/quickstart/

 

Copyright (c) 2014 LittleHann All rights reserved

相關文章
相關標籤/搜索