DockOne微信分享( 九十三)魅族雲Docker實踐

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
【編者的話】介紹魅族雲的情境需求,如何引入Docker,在網路、儲存、鏡像技術的選擇,如何落地的等等。主要內容:
  1. 魅族雲業務情境
  2. 魅族雲Docker化設計理念
  3. 網路、儲存、鏡像技術的選擇
  4. Docker化落地情況


1、魅族雲業務情境

魅族雲的需求情境可以分為以下幾大塊:

  • 鏡像需求:應用想上Docker就需要鏡像,我們跟業務營運一起定好鏡像的Dockerfile,push到鏡像倉庫,這個私人倉庫儲存了公司內部使用的所有鏡像。然後我們會在承載Docker的宿主機預熱這些鏡像,加快速度;
  • 機器申請:我們有使用KVM的曆史包袱的,所以在機器申請的時候就會走不同的通道,有KVM的和Docker的;
  • 業務發布:這是應用用得最多的情境,上了Docker就涉及到一個問題,如何屏蔽掉KVM和Docker機器的區別,我們有一套自研的發布系統,它會自動屏蔽掉兩者的區別,各自走各自的發布流程;
  • 監控:對容器生命週期的監控。


從這些情境或者需求裡面可以知道,在使用Docker之前,我們是有曆史包袱的,不僅來自KVM的使用,還有更多的是營運工具鏈/營運平台的搭建。

魅族營運體系

我們的營運體系已經很完整了,標準化、自動化、平台化、安全每一塊都已建設完畢。在這完善的體系下要引入Docker,就註定了我們不能照搬傳統Docker的實踐,這裡我們抽象出一些理念,這些理念也決定了我們到底怎麼玩Docker,如何完成Docker實踐。

2、Docker設計理念


  • Docker建立的Container需要長時間運行

    這個理念尤其重要,就是說我們的Docker Container一旦建立就會運行相當長的時間,表現出一台虛擬機器的特性。

    做這個特性的第一大歷史原因是我們有監控系統,需要把整個虛機的曆史狀態記錄下來,在出現問題的時候,我們需要對比這台機器,以IP為標識的這台機器,在一周內的整個行為舉止,記憶體、CPU、磁碟等等的狀況。如果Container很快被幹掉,發一次包, Container就變成了全新的,這是不可接受的,曆史監控資料全沒了。

  • Container擁有獨立、唯一的IP

    每個Container擁有終生的/唯一的代號,這個代號就是內網IP,這個IP從它建立到最終銷毀是不會改變的。

  • 主機間Container的通訊是通過大二層網路,並通過vlan進行隔離

  • 開啟ssh

    這個主要是考慮到用慣KVM的營運和開發,如果直接把ssh關閉,會被吐槽,最終我們是開啟了ssh,並通過Bastion Host進行許可權控制和審計。


這就是我們開始Docker實踐的幾個支撐理念,它讓我們的Container表現得像一台KVM虛擬機器一樣,以此來滿足業務的需求和適應現有的營運平台。

3、 技術選型

主要是我們在網路、儲存、鏡像技術的選擇。

網路:OVS & VLAN


網路我們是在大二層架構上做的,就是OVS加VLAN的方式。
  • 宿主機安裝OVS,在OVS上配置橋接器
  • Container的網卡跟OVS的橋關聯起來
  • vlan tag打在OVS的橋上,讓OVS進行封裝和解鎖裝
  • OVS跟物理網卡綁定,用bond主備模式連上物理交換器,保證高可用
  • 宿主機物理網卡跟交換器間配的是trunk模式
  • Container跟OVS的串連,用ovs internal port模式


儲存:Devicemapper+LVM

  • Docker的儲存系統我們選擇發展比較早也比較成熟穩定的DeviceMapper,並且DeviceMapper底層我們直接使用裸裝置作為pool,來提高IO效能
  • 資料盤儲存使用LVM,把磁碟劃分成多個邏輯卷,每個容器分配一個卷當作資料盤的儲存,這樣做除了能對容器使用的卷進行限額,還可以達到線上調整容器卷大小的目的


鏡像儲存與同步


  • 鏡像管理使用Distribution,前端設定LVS做負載平衡,保證Distribution的高可用
  • 鏡像儲存使用Ceph分布式儲存,為鏡像讀寫提供高效能,也保證了鏡像儲存的可靠性
  • 不同資料中心間鏡像的同步,則是通過Distribution的通知機制加後端的同步機制來完成的


監控

監控/警示可以說是營運體系最核心的功能之一,我們已經有一套很成熟的監控警示平台,而且營運和開發的同學都已經習慣了這套平台。重新開發一個監控警示平台會花費很多精力,而且意義也不大。

我們在每個容器內部運行一個Agent,從/proc下面擷取CPU/記憶體/網路IO等資訊,然後上報到監控警示平台。預設情況下,容器內部的proc顯示的是宿主機的資訊,我們通過擷取CGroup中的統計資訊來覆蓋掉這部分proc資訊。

4、 Docker實踐落地

鏡像建立


鏡像的建立我們通過平台來做的,當然直接用Dockerfile來build也沒問題,但是在可控性方面會比較弱,我們通過平台來做這件事情,降低了學習成本,也提高了鏡像的品質和安全,比如可以限制哪些包可以安裝,哪些連接埠不能開放等等。

容器建立


在我們的平台上容器的地位跟虛擬機器是一樣的,唯一的區別就是type類型,一個type是KVM,一個是Docker,其他的跟以前的玩法都是一樣的,營運和開發接入學習的成本非常低。

Auto Scaling

  • 可以對Container進行擴容和縮容,以提高資源的利用率,這裡注意縮容可能會導致服務不可用
  • 按照業務來水平擴容,一次交付多個容器給業務方


容器發布


容器的發布,我們跟KVM虛擬機器發布是一樣的,把一個war包放到Maven,虛擬機器再從Maven上把包拉下來,然後跑起來。

總結

  • 提供類似KVM虛擬機器的使用者體驗
  • 利用Docker進行高密度部署
  • 快速Auto Scaling


在Docker容器化引入的過程中,我們的理念在於想提供一個類似KVM一樣的虛擬機器使用者體驗,讓使用者可以無障礙使用容器,我們引入容器的目的在於它的輕量和低開銷,能夠高密度的部署,壓榨物理機資源,提高資源的利用率,從而節約成本,在彈性方面,利用容器的輕量/便捷,我們可以快速的建立/銷毀,滿足業務的彈性需求。

Q&A

Q:請問下負載平衡LVS是怎麼和容器結合的?

A:現階段我們的容器是當虛機來用,有固定IP,所以LVS按照傳統方式使用即可,在容器裡面配上VIP,如果是FullNAT方式則不需要。
Q:魅族雲的編排工具優選哪個,有混合雲的計劃嗎?

A:現階段我們是原來的平台上做適配。今天的內容我們講的都是對內的私人雲端,公用雲端正在開發測試階段。
Q:你們的縮容,具體是怎麼做的?

A:CPU、記憶體是修改CGroup配置,磁碟則通過LVM進行縮容。
Q:請問,日誌集中儲存與日誌查看怎麼實現的?

A:我們有基於ELK實現的統一日誌管理中心,日誌都發往日誌中心儲存,可在管理平台上進行查看。
Q:“預設情況下,容器內部的proc顯示的是宿主機的資訊,我們通過擷取CGroup中的統計資訊來覆蓋掉這部分proc資訊” 這個Agent是你們自研的? 方便說下細節嗎?謝謝!

A:簡單點說就是通過攔截系統和程式讀取proc目錄下cpuinfo、meminfo等資源檔,讓它去讀取我們通過CGroup算好的檔案,從而得到正確的容器資源使用方式。
Q:容器式虛擬機器和虛擬機器式容器之間,在業務上落地方案是怎麼樣的,傾向於哪個?

A:因為我們有虛擬機器的曆史包袱,所以落地方案上會選擇虛擬機器式容器, 如果沒有曆史包袱,直接可以上容器。
Q:容器有分有狀態和無狀態麼,容器如果是有狀態的容器分布式儲存是怎麼處理的呢?

A:有狀態的容器儲存有兩種方式:一種是將本地目錄掛載到容器,一種是在容器裡面掛載分布式儲存。
Q:請問一下容量系統主要用來監控哪些裝置?有沒有容量不足會提前預知的功能?

A:監控業務資源是使用方式。業務容量不足或者容量浪費都會有預警。
以上內容根據2016年10月25日晚群分享內容整理。分享人 林鐘洪,2014年加入魅族研發中心,任營運架構師,負責魅族雲平台虛擬化及魅族日誌平台研發,主要包括:KVM虛擬化,Docker容器化、分布式儲存、集中式日誌系統。 DockOne每周都會組織定向的技術分享,歡迎感興趣的同學加:liyingjiesz,進群參與,您有想聽的話題或者想分享的話題都可以給我們留言。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.