攜程Docker實踐

從去年底開始,攜程開始計劃把Docker引入到攜程的雲平臺,這是系統研發部一部分的工作任務,攜程系統研發部的架構師李任現在就在協同研發部從事Docker引入的工作。

攜程的Docker實踐是怎樣的?以下正文給你答案:

容器對攜程的價值

爲什麼要在攜程內部推容器?肯定是想獲得容器帶來的好處。公共的好處大家都會知道,但有一個可能是攜程特有的痛點,因爲攜程有大量的應用是部署在Windows上,因此攜程也很希望將來Windows的容器會給它們帶來一些提高和幫助。

目前攜程爲容器在內部的推動制訂了一些路線圖。攜程希望儘量以虛擬機的方式來運行容器,這主要是考慮到它帶來的優點是對現有的應用和體系的影響小,攜程希望儘量以平滑的方式過度到容器中。但是,目前在推廣上會有一個困難,大家會在你推銷它的時候質疑,因爲改變很小意味着帶來容器特殊的優勢很少。而這個確實是它的缺點。另外目前在攜程內部主要是通過 OpenStack來管理雲架構的基礎設施。

攜程部署Docker的架構

圖片描述


圖一


圖一是攜程目前第一階段部署容器的架構,它選擇了一個比較簡單的切入點,通過Nova Docker Driver做一些改造來管理容器的生命週期。本身容器的調度、管理和在OpenStack上用管理虛擬機是一樣的。圖一最上面的Remedy是攜程內部的流程管理系統,它會通過一些接口去訪問OpenStack 的整個controller的API。

因爲攜程早期是Windows,所以有很多VMWare的虛擬機,它們有專門針對EXSi的nova compute節點,圖一右邊是KVM的計算節點。引入Docker實際上是在這個架構裏面增加了一個新的節點類型,即專門跑容器的Docker的一個節點。

圖片描述


圖二


除了容器本身生命週期之外,網絡的架構複用了現在OpenStack管理網絡的方式。前面是計算資源的架構,同時也用OpenStack對網絡進行管理。基本上容器的網絡使用方式和虛擬機在OpenStack裏使用網絡的方式是很一致的。

圖二是一個容器的網絡圖,可以看到一個Docker容器有一對veth的設備。一個在它自己的namespace裏面,一個加入到OVS bridge裏面,如果這等同於虛擬機的話,下面就是虛擬機的tap設備,之後就和虛擬機網絡的PaaS是一樣的。通過這個bridge 連到internal 的bridge,右邊是出口的 bridge ,中間會做vlanid轉換,這樣可以接到系統的二層網絡裏面去。這個是經典的VLAN模型。

Docker容器運行

攜程Docker的容器的運行爲了儘可能的討好用戶,更容易讓他們接受,現在是以虛擬機的模式進行。在應用部署方面跟現在虛擬機部署一樣,拿到一個容器之後通過現在的發佈系統部署進去。因爲是高度接近虛擬機的環境,所以對於應用的發佈系統,用戶基本上感知不到。

現在攜程內部虛擬機的發行版,主要以CentOS6.4爲主,但是他們也開始遷移到CentOS7.1,所以攜程在Docker容器上支持這兩個發行版。以前的虛擬機的方式會導致運維的人上去可能要做很多運維的工作,所以要考慮到權限問題。但有些權限很危險不能給他們,否則會造成很多問題。比如sys_boot,它在裏面可以將宿主機重啓,如果你把sys_boot給出去的話,這個是很可怕的。

鏡像有很多種方式,而攜程現在選的方式是有一定歷史原因的。因爲攜程OPS有一套基礎的環境規範。爲了讓ops原有的設施能繼續工作,這個環境要儘可能演示。但悲劇的是,它沒有一個很精確的代碼能去描述環境是怎麼樣的,而只能用一個做好的自動安裝的光環去抓取到環境。所以當時攜程選擇直接把自己的虛擬機的鏡像拉過來,然後從虛擬機QCOW2的鏡像去踩點至Docker的鏡像。

攜程以虛擬機的方式運行,它運行起來不是很正統的只有一個進程的容器的方式。攜程在一個容器裏面起了很多進程,而進程像虛擬機一樣需要有個初始的守護進程,所以攜程也需要這樣的守護進程。守護進程很多,而守護進程該如何選擇?如果大家看過相關文章的話,有很多的討論。除了目前已有的守護進程外也涌現着很多新的守護進程。但是比較悲劇的一點,攜程還有一個運用規範,運用規範規定了啓動服務,在CentOS7.1下一下子很難撼動他們的地位,只能向他們靠攏。

另外,如果容器裏面Cgroup這個文件系統是可讀的,這也意味着在容器裏面,分到的CPU內存資源可以隨意改變,這個可能在公有云計算是不可接受的事情,但是私有云裏面目前只能這樣。

還有很重要的一點是網絡。前面說到攜程網絡是和OpenStack的那套網絡管理一樣的方案,其實它有很多手段來實現這些。目前因爲攜程用novadocker,順便說一下novadocker 常不靠譜,沒法用。攜程以前與京東交流,他們給攜程出的建議第一句話就是不要用novadocker。novadocker採用的方式,其實和pipework是很類似的,也就是它把容器運行起來,然後進去,通過執行一些命令,再配上網絡。但它有一個問題,其實容器在啓動到配上虛擬的網卡,這個過程其實是有一段時間的。

攜程用systemd,而它啓動是很快的,這就意味着,有一些服務起來的時候,後面需要配套網絡,如果你的應用對於這個是有依賴的就會問題。另外,這個網絡的配置信息Docker是不可見的,這意味着Docker不知道這段網絡配置。如果Docker daemon把容器重啓的話,它是沒辦法恢復網絡配置的,這個是很嚴重的一個問題。比如到了1.9之後,支持libnetwork做網絡的配置。這樣就不會有前面丟失網絡信息的問題。攜程現在還是用novadocker 的方式,本來打算用libnetwork,但是很悲摧的是,上線之前,攜程一直使用Ubuntu,後來臨上線,到生產的時候,運維說,他們希望統一宿主機版本全部用CentOS。最後沒辦法,只能把Netron agent這些東西全放到容器裏面跑,再跑 novadocker等。

Docker監控

前面部署其實只是解決了實例運行的一些問題。運維的人的支撐對於一個真的能運營的產品很重要,所以對於Docker來說,假如真正要上業務,監控是很重要的一個話題。

攜程一般在Linux上監控數據,大多數是來自proc文件系統,proc文件系統在Docker容器裏面,我們知道Docker容器做隔離其實提供namespace ,對於PID做得很好的namespace ,這個沒有問題,網絡統計也是很準確的。但是很多很關鍵的CPU、內存使用這些在proc系統裏是看宿主機。還有一些監控的系統比如sysinfo sysconf這些是沒有任何的祕密空間提供的。所以這些數據來源是很成問題的。

對於Docker來說,我們監控該怎麼辦?其實現在有一些方式,比如說在宿主上監控所跑的容器現在也有方案,比如說Docker很早就提供了stats命令,可以看到每一個容器的讀數,包括跨設備網絡。還有一些比如像cAdvisor方案。爲什麼會看這個?因爲在攜程用的方式是zabbix,每個虛擬機裏面都跑zabbix。這種方式是在宿主機上。但是下面每個虛擬機的監控數據對於攜程來說,其實與現有的監控的方案不是非常的匹配,因爲他們希望能夠看到每個虛擬機單個作爲一個的對象,能看到它的監控數據,而不是在宿主機上看到下面那些掛的。包括監控、告警這些都是有關聯的。所以這些方式其實跟現有的監控的方案是有整合的成本在裏面的。

如果想盡量減少修改,還有一種是容器內部監控它。之前聽蘑菇街的分享,他們直接把監控工具改掉。還有一個是很多人很關心的一個項目,它基本的原理用了files文件系統,實現了對proc文件系統的代理,它幫你代理、修改proc文件系統的訪問,把數字計算一下獲得一個正確的。正確的數據其實都是從cgroup裏面讀出來的。

這個方式解決了這個問題之後。我們可以在容器內部獲得正確的監控數據,包括啓動時間,上線後怎麼登進去了,怎麼看到這個容器給它分配的資源是多少。一看宿主機48,怎麼分了這麼多給它?但是還是有一些問題,比如前面改內核者或者改工具,維護這些改動的成本在裏面,還有一些部署。所以也有一些問題。

後來攜程想到另外一種折中的方式。這個方式是說,它們通過用Linux的Id prelod的機制,劫持對proc文件的訪問,真正需要獲得的數據是參考IXCFS的實現,重新計算一下,也是通過從cgroup裏面計算你分配了多少內存,使用了多少,CPU是怎樣的,去計算的一個資源。當然CPU load挺麻煩的,需要額外支持。

圖片描述


圖三


圖三中有個例子。可以看到,這個容器裏面,用了劫持的方案計算了之後,可以看到大概分了兩個G的內存。把環境變量去掉之後,看這個宿主機,大概一百多個G的內存。它的工作方式,比如說,如果是free,就是命令,它真正在運行的時候,會有Id so init去加載二進制文件的時候,會先加載我們的so 文件,它會把真正的open庫的實現給劫持掉。到這裏是一個標準的劫持的過程。

之後free讀文件的內存信息的時候,它其實讀的是/proc/meminfo文件,劫持過來的時候,真正的邏輯到so文件裏面,它讀這個文件知道是幹什麼。實際上它讀cgroup和lxcfs是一樣的,計算然後把它保存到一個臨時文件裏面去。最後返回的是這個臨時文件fd,Free會讀這個臨時文件。原理就是這樣的。

其實攜程在容器上還有很多事情要做。比如說,不光是爲交付給用戶的計算環境提供容器,其實想把自己的一些很多東西都放到容器上去。比如攜程的OpenStack平臺也想跑到Docker裏面去,因爲OpenStack很複雜,部署起來也是件很頭疼的事情。

現在攜程是用虛擬機的方式跑容器,其實是很重的。所以也想直接基於鏡像的方式來應用持續交付。這就牽涉到很多東西,包括調度,打包,各種系統,包括進項的版本管理等。

將來的微軟的windows Container也是對攜程影響很大的一個技術。另外如何進一步獲得更高的的資源調動,如何動態的調度這些資源也是攜程需要關注的地方,所以接下來攜程還會有很多事情要做。

本文是攜程系統研發部的架構師李任日前在「七牛雲主辦的架構師實踐日——容器核心技術與最佳實踐」的演講內容整理。PPT、速記和現場演講視頻等參見“七牛架構師實踐日”官網

七牛架構師實踐日是由七牛雲發起的線下技術沙龍活動,聯合業內資深技術大牛以及各大巨頭公司和創業品牌的優秀架構師,致力於爲業內開發者、架構師和決策者提供最前沿、最有深度的技術交流平臺,幫助大家知悉技術動態,學習經驗成果。

原文鏈接:

http://www.sdsxez.cn/Public/css/20160510/2000.html

http://www.sdsxez.cn/Public/css/20160510/2001.html

http://www.sdsxez.cn/Public/css/20160510/2002.html

http://www.sdsxez.cn/Public/css/20160510/2003.html

http://www.sdsxez.cn/Public/css/20160510/2004.html

http://www.sdsxez.cn/Public/css/20160510/2005.html

http://www.sdsxez.cn/Public/css/20160510/2006.html

http://www.sdsxez.cn/Public/css/20160510/2007.html

http://www.sdsxez.cn/Public/css/20160510/2008.html

http://www.sdsxez.cn/Public/css/20160510/2009.html

http://www.sdsxez.cn/Public/css/20160510/2010.html

http://www.sdsxez.cn/Public/css/20160510/2011.html

http://www.sdsxez.cn/Public/css/20160510/2012.html

http://www.sdsxez.cn/Public/css/20160510/2013.html

http://www.sdsxez.cn/Public/css/20160510/2014.html

http://www.sdsxez.cn/Public/css/20160510/2015.html

http://www.sdsxez.cn/Public/css/20160510/2016.html

http://www.sdsxez.cn/Public/css/20160510/2017.html

http://www.sdsxez.cn/Public/css/20160510/2018.html

http://www.sdsxez.cn/Public/css/20160510/2019.html

http://www.sdsxez.cn/Public/css/20160510/2020.html

http://www.sdsxez.cn/Public/css/20160510/2021.html

http://www.sdsxez.cn/Public/css/20160510/2022.html

http://www.sdsxez.cn/Public/css/20160510/2023.html

http://www.sdsxez.cn/Public/css/20160510/2024.html

http://www.sdsxez.cn/Public/css/20160510/2025.html

http://www.sdsxez.cn/Public/css/20160510/2026.html

http://www.sdsxez.cn/Public/css/20160510/2027.html

http://www.sdsxez.cn/Public/css/20160510/2028.html

http://www.sdsxez.cn/Public/css/20160510/2029.html

http://www.sdsxez.cn/Public/css/20160510/2030.html

http://www.sdsxez.cn/Public/css/20160510/2031.html

http://www.sdsxez.cn/Public/css/20160510/2032.html

http://www.sdsxez.cn/Public/css/20160510/2033.html

http://www.sdsxez.cn/Public/css/20160510/2034.html

http://www.sdsxez.cn/Public/css/20160510/2035.html

http://www.sdsxez.cn/Public/css/20160510/2036.html

http://www.sdsxez.cn/Public/css/20160510/2037.html

http://www.sdsxez.cn/Public/css/20160510/2038.html

http://www.sdsxez.cn/Public/css/20160510/2039.html

http://www.sdsxez.cn/Public/css/20160510/2040.html

http://www.sdsxez.cn/Public/css/20160510/2041.html

http://www.sdsxez.cn/Public/css/20160510/2042.html

http://www.sdsxez.cn/Public/css/20160510/2043.html

http://www.sdsxez.cn/Public/css/20160510/2044.html

http://www.sdsxez.cn/Public/css/20160510/2045.html

http://www.sdsxez.cn/Public/css/20160510/2046.html

http://www.sdsxez.cn/Public/css/20160510/2047.html

http://www.sdsxez.cn/Public/css/20160510/2048.html

http://www.sdsxez.cn/Public/css/20160510/2049.html

http://www.sdsxez.cn/Public/css/20160510/2050.html

http://www.sdsxez.cn/Public/css/20160510/2051.html

http://www.sdsxez.cn/Public/css/20160510/2052.html

http://www.sdsxez.cn/Public/css/20160510/2053.html

http://www.sdsxez.cn/Public/css/20160510/2054.html

http://www.sdsxez.cn/Public/css/20160510/2055.html

http://www.sdsxez.cn/Public/css/20160510/2056.html

http://www.sdsxez.cn/Public/css/20160510/2057.html

http://www.sdsxez.cn/Public/css/20160510/2058.html

http://www.sdsxez.cn/Public/css/20160510/2059.html

http://www.sdsxez.cn/Public/css/20160510/2060.html

http://www.sdsxez.cn/Public/css/20160510/2061.html

http://www.sdsxez.cn/Public/css/20160510/2062.html

http://www.sdsxez.cn/Public/css/20160510/2063.html

http://www.sdsxez.cn/Public/css/20160510/2064.html

http://www.sdsxez.cn/Public/css/20160510/2065.html

http://www.sdsxez.cn/Public/css/20160510/2066.html

http://www.sdsxez.cn/Public/css/20160510/2067.html

http://www.sdsxez.cn/Public/css/20160510/2068.html

http://www.sdsxez.cn/Public/css/20160510/2069.html

http://www.sdsxez.cn/Public/css/20160510/2070.html

http://www.sdsxez.cn/Public/css/20160510/2071.html

http://www.sdsxez.cn/Public/css/20160510/2072.html

http://www.sdsxez.cn/Public/css/20160510/2073.html

http://www.sdsxez.cn/Public/css/20160510/2074.html

http://www.sdsxez.cn/Public/css/20160510/2075.html

http://www.sdsxez.cn/Public/css/20160510/2076.html

http://www.sdsxez.cn/Public/css/20160510/2077.html

http://www.sdsxez.cn/Public/css/20160510/2078.html

http://www.sdsxez.cn/Public/css/20160510/2079.html

http://www.sdsxez.cn/Public/css/20160510/2080.html

http://www.sdsxez.cn/Public/css/20160510/2081.html

http://www.sdsxez.cn/Public/css/20160510/2082.html

http://www.sdsxez.cn/Public/css/20160510/2083.html

http://www.sdsxez.cn/Public/css/20160510/2084.html

http://www.sdsxez.cn/Public/css/20160510/2085.html

http://www.sdsxez.cn/Public/css/20160510/2086.html

http://www.sdsxez.cn/Public/css/20160510/2087.html

http://www.sdsxez.cn/Public/css/20160510/2088.html

http://www.sdsxez.cn/Public/css/20160510/2089.html

http://www.sdsxez.cn/Public/css/20160510/2090.html

http://www.sdsxez.cn/Public/css/20160510/2091.html

http://www.sdsxez.cn/Public/css/20160510/2092.html

http://www.sdsxez.cn/Public/css/20160510/2093.html

http://www.sdsxez.cn/Public/css/20160510/2094.html

http://www.sdsxez.cn/Public/css/20160510/2095.html

http://www.sdsxez.cn/Public/css/20160510/2096.html

http://www.sdsxez.cn/Public/css/20160510/2097.html

http://www.sdsxez.cn/Public/css/20160510/2098.html

http://www.sdsxez.cn/Public/css/20160510/2099.html

http://www.sdsxez.cn/Public/css/20160510/2100.html

http://www.sdsxez.cn/Public/css/20160510/2101.html

http://www.sdsxez.cn/Public/css/20160510/2102.html

http://www.sdsxez.cn/Public/css/20160510/2103.html

http://www.sdsxez.cn/Public/css/20160510/2104.html

http://www.sdsxez.cn/Public/css/20160510/2105.html

http://www.sdsxez.cn/Public/css/20160510/2106.html

http://www.sdsxez.cn/Public/css/20160510/2107.html

http://www.sdsxez.cn/Public/css/20160510/2108.html

http://www.sdsxez.cn/Public/css/20160510/2109.html

http://www.sdsxez.cn/Public/css/20160510/2110.html

http://www.sdsxez.cn/Public/css/20160510/2111.html

http://www.sdsxez.cn/Public/css/20160510/2112.html

http://www.sdsxez.cn/Public/css/20160510/2113.html

http://www.sdsxez.cn/Public/css/20160510/2114.html

http://www.sdsxez.cn/Public/css/20160510/2115.html

http://www.sdsxez.cn/Public/css/20160510/2116.html

http://www.sdsxez.cn/Public/css/20160510/2117.html

http://www.sdsxez.cn/Public/css/20160510/2118.html

http://www.sdsxez.cn/Public/css/20160510/2119.html

http://www.sdsxez.cn/Public/css/20160510/2120.html

http://www.sdsxez.cn/Public/css/20160510/2121.html

http://www.sdsxez.cn/Public/css/20160510/2122.html

http://www.sdsxez.cn/Public/css/20160510/2123.html

http://www.sdsxez.cn/Public/css/20160510/2124.html

http://www.sdsxez.cn/Public/css/20160510/2125.html

http://www.sdsxez.cn/Public/css/20160510/2126.html

http://www.sdsxez.cn/Public/css/20160510/2127.html

http://www.sdsxez.cn/Public/css/20160510/2128.html

http://www.sdsxez.cn/Public/css/20160510/2129.html

http://www.sdsxez.cn/Public/css/20160510/2130.html

http://www.sdsxez.cn/Public/css/20160510/2131.html

http://www.sdsxez.cn/Public/css/20160510/2132.html

http://www.sdsxez.cn/Public/css/20160510/2133.html

http://www.sdsxez.cn/Public/css/20160510/2134.html

http://www.sdsxez.cn/Public/css/20160510/2135.html

http://www.sdsxez.cn/Public/css/20160510/2136.html

http://www.sdsxez.cn/Public/css/20160510/2137.html

http://www.sdsxez.cn/Public/css/20160510/2138.html

http://www.sdsxez.cn/Public/css/20160510/2139.html

http://www.sdsxez.cn/Public/css/20160510/2140.html

http://www.sdsxez.cn/Public/css/20160510/2141.html

http://www.sdsxez.cn/Public/css/20160510/2142.html

http://www.sdsxez.cn/Public/css/20160510/2143.html

http://www.sdsxez.cn/Public/css/20160510/2144.html

http://www.sdsxez.cn/Public/css/20160510/2145.html

http://www.sdsxez.cn/Public/css/20160510/2146.html

http://www.sdsxez.cn/Public/css/20160510/2147.html

http://www.sdsxez.cn/Public/css/20160510/2148.html

http://www.sdsxez.cn/Public/css/20160510/2149.html

http://www.sdsxez.cn/Public/css/20160510/2150.html

http://www.sdsxez.cn/Public/css/20160510/2151.html

http://www.sdsxez.cn/Public/css/20160510/2152.html

http://www.sdsxez.cn/Public/css/20160510/2153.html

http://www.sdsxez.cn/Public/css/20160510/2154.html

http://www.sdsxez.cn/Public/css/20160510/2155.html

http://www.sdsxez.cn/Public/css/20160510/2156.html

http://www.sdsxez.cn/Public/css/20160510/2157.html

http://www.sdsxez.cn/Public/css/20160510/2158.html

http://www.sdsxez.cn/Public/css/20160510/2159.html

http://www.sdsxez.cn/Public/css/20160510/2160.html

http://www.sdsxez.cn/Public/css/20160510/2161.html

http://www.sdsxez.cn/Public/css/20160510/2162.html

http://www.sdsxez.cn/Public/css/20160510/2163.html

http://www.sdsxez.cn/Public/css/20160510/2164.html

http://www.sdsxez.cn/Public/css/20160510/2165.html

http://www.sdsxez.cn/Public/css/20160510/2166.html

http://www.sdsxez.cn/Public/css/20160510/2167.html

http://www.sdsxez.cn/Public/css/20160510/2168.html

http://www.sdsxez.cn/Public/css/20160510/2169.html

http://www.sdsxez.cn/Public/css/20160510/2170.html

http://www.sdsxez.cn/Public/css/20160510/2171.html

http://www.sdsxez.cn/Public/css/20160510/2172.html

http://www.sdsxez.cn/Public/css/20160510/2173.html

http://www.sdsxez.cn/Public/css/20160510/2174.html

http://www.sdsxez.cn/Public/css/20160510/2175.html

http://www.sdsxez.cn/Public/css/20160510/2176.html

http://www.sdsxez.cn/Public/css/20160510/2177.html

http://www.sdsxez.cn/Public/css/20160510/2178.html

http://www.sdsxez.cn/Public/css/20160510/2179.html

http://www.sdsxez.cn/Public/css/20160510/2180.html

http://www.sdsxez.cn/Public/css/20160510/2181.html

http://www.sdsxez.cn/Public/css/20160510/2182.html

http://www.sdsxez.cn/Public/css/20160510/2183.html

http://www.sdsxez.cn/Public/css/20160510/2184.html

http://www.sdsxez.cn/Public/css/20160510/2185.html

http://www.sdsxez.cn/Public/css/20160510/2186.html

http://www.sdsxez.cn/Public/css/20160510/2187.html

http://www.sdsxez.cn/Public/css/20160510/2188.html

http://www.sdsxez.cn/Public/css/20160510/2189.html

http://www.sdsxez.cn/Public/css/20160510/2190.html

http://www.sdsxez.cn/Public/css/20160510/2191.html

http://www.sdsxez.cn/Public/css/20160510/2192.html

http://www.sdsxez.cn/Public/css/20160510/2193.html

http://www.sdsxez.cn/Public/css/20160510/2194.html

http://www.sdsxez.cn/Public/css/20160510/2195.html

http://www.sdsxez.cn/Public/css/20160510/2196.html

http://www.sdsxez.cn/Public/css/20160510/2197.html

http://www.sdsxez.cn/Public/css/20160510/2198.html

http://www.sdsxez.cn/Public/css/20160510/2199.html

http://www.sdsxez.cn/Public/css/20160510/2200.html

http://www.sdsxez.cn/Public/css/20160510/2201.html

http://www.sdsxez.cn/Public/css/20160510/2202.html

http://www.sdsxez.cn/Public/css/20160510/2203.html

http://www.sdsxez.cn/Public/css/20160510/2204.html

http://www.sdsxez.cn/Public/css/20160510/2205.html

http://www.sdsxez.cn/Public/css/20160510/2206.html

http://www.sdsxez.cn/Public/css/20160510/2207.html

http://www.sdsxez.cn/Public/css/20160510/2208.html

http://www.sdsxez.cn/Public/css/20160510/2209.html

http://www.sdsxez.cn/Public/css/20160510/2210.html

http://www.sdsxez.cn/Public/css/20160510/2211.html

http://www.sdsxez.cn/Public/css/20160510/2212.html

http://www.sdsxez.cn/Public/css/20160510/2213.html

http://www.sdsxez.cn/Public/css/20160510/2214.html

http://www.sdsxez.cn/Public/css/20160510/2215.html

http://www.sdsxez.cn/Public/css/20160510/2216.html

http://www.sdsxez.cn/Public/css/20160510/2217.html

http://www.sdsxez.cn/Public/css/20160510/2218.html

http://www.sdsxez.cn/Public/css/20160510/2219.html

http://www.sdsxez.cn/Public/css/20160510/2220.html

http://www.sdsxez.cn/Public/css/20160510/2221.html

http://www.sdsxez.cn/Public/css/20160510/2222.html

http://www.sdsxez.cn/Public/css/20160510/2223.html

http://www.sdsxez.cn/Public/css/20160510/2224.html

http://www.sdsxez.cn/Public/css/20160510/2225.html

http://www.sdsxez.cn/Public/css/20160510/2226.html

http://www.sdsxez.cn/Public/css/20160510/2227.html

http://www.sdsxez.cn/Public/css/20160510/2228.html

http://www.sdsxez.cn/Public/css/20160510/2229.html

http://www.sdsxez.cn/Public/css/20160510/2230.html

http://www.sdsxez.cn/Public/css/20160510/2231.html

http://www.sdsxez.cn/Public/css/20160510/2232.html

http://www.sdsxez.cn/Public/css/20160510/2233.html

http://www.sdsxez.cn/Public/css/20160510/2234.html

http://www.sdsxez.cn/Public/css/20160510/2235.html

http://www.sdsxez.cn/Public/css/20160510/2236.html

http://www.sdsxez.cn/Public/css/20160510/2237.html

http://www.sdsxez.cn/Public/css/20160510/2238.html

http://www.sdsxez.cn/Public/css/20160510/2239.html

http://www.sdsxez.cn/Public/css/20160510/2240.html

http://www.sdsxez.cn/Public/css/20160510/2241.html

http://www.sdsxez.cn/Public/css/20160510/2242.html

http://www.sdsxez.cn/Public/css/20160510/2243.html

http://www.sdsxez.cn/Public/css/20160510/2244.html

http://www.sdsxez.cn/Public/css/20160510/2245.html

http://www.sdsxez.cn/Public/css/20160510/2246.html

http://www.sdsxez.cn/Public/css/20160510/2247.html

http://www.sdsxez.cn/Public/css/20160510/2248.html

http://www.sdsxez.cn/Public/css/20160510/2249.html

http://www.sdsxez.cn/Public/css/20160510/2250.html

http://www.sdsxez.cn/Public/css/20160510/2251.html

http://www.sdsxez.cn/Public/css/20160510/2252.html

http://www.sdsxez.cn/Public/css/20160510/2253.html

http://www.sdsxez.cn/Public/css/20160510/2254.html

http://www.sdsxez.cn/Public/css/20160510/2255.html

http://www.sdsxez.cn/Public/css/20160510/2256.html

http://www.sdsxez.cn/Public/css/20160510/2257.html

http://www.sdsxez.cn/Public/css/20160510/2258.html

http://www.sdsxez.cn/Public/css/20160510/2259.html

http://www.sdsxez.cn/Public/css/20160510/2260.html

http://www.sdsxez.cn/Public/css/20160510/2261.html

http://www.sdsxez.cn/Public/css/20160510/2262.html

http://www.sdsxez.cn/Public/css/20160510/2263.html

http://www.sdsxez.cn/Public/css/20160510/2264.html

http://www.sdsxez.cn/Public/css/20160510/2265.html

http://www.sdsxez.cn/Public/css/20160510/2266.html

http://www.sdsxez.cn/Public/css/20160510/2267.html

http://www.sdsxez.cn/Public/css/20160510/2268.html

http://www.sdsxez.cn/Public/css/20160510/2269.html

http://www.sdsxez.cn/Public/css/20160510/2270.html

http://www.sdsxez.cn/Public/css/20160510/2271.html

http://www.sdsxez.cn/Public/css/20160510/2272.html

http://www.sdsxez.cn/Public/css/20160510/2273.html

http://www.sdsxez.cn/Public/css/20160510/2274.html

http://www.sdsxez.cn/Public/css/20160510/2275.html

http://www.sdsxez.cn/Public/css/20160510/2276.html

http://www.sdsxez.cn/Public/css/20160510/2277.html

http://www.sdsxez.cn/Public/css/20160510/2278.html

http://www.sdsxez.cn/Public/css/20160510/2279.html

http://www.sdsxez.cn/Public/css/20160510/2280.html

http://www.sdsxez.cn/Public/css/20160510/2281.html

http://www.sdsxez.cn/Public/css/20160510/2282.html

http://www.sdsxez.cn/Public/css/20160510/2283.html

http://www.sdsxez.cn/Public/css/20160510/2284.html

http://www.sdsxez.cn/Public/css/20160510/2285.html

http://www.sdsxez.cn/Public/css/20160510/2286.html

http://www.sdsxez.cn/Public/css/20160510/2287.html

http://www.sdsxez.cn/Public/css/20160510/2288.html

http://www.sdsxez.cn/Public/css/20160510/2289.html

http://www.sdsxez.cn/Public/css/20160510/2290.html

http://www.sdsxez.cn/Public/css/20160510/2291.html

http://www.sdsxez.cn/Public/css/20160510/2292.html

http://www.sdsxez.cn/Public/css/20160510/2293.html

http://www.sdsxez.cn/Public/css/20160510/2294.html

http://www.sdsxez.cn/Public/css/20160510/2295.html

http://www.sdsxez.cn/Public/css/20160510/2296.html

http://www.sdsxez.cn/Public/css/20160510/2297.html

http://www.sdsxez.cn/Public/css/20160510/2298.html

http://www.sdsxez.cn/Public/css/20160510/2299.html

http://www.sdsxez.cn/Public/css/20160510/2300.html

http://www.sdsxez.cn/Public/css/20160510/2301.html

http://www.sdsxez.cn/Public/css/20160510/2302.html

http://www.sdsxez.cn/Public/css/20160510/2303.html

http://www.sdsxez.cn/Public/css/20160510/2304.html

http://www.sdsxez.cn/Public/css/20160510/2305.html

http://www.sdsxez.cn/Public/css/20160510/2306.html

http://www.sdsxez.cn/Public/css/20160510/2307.html

http://www.sdsxez.cn/Public/css/20160510/2308.html

http://www.sdsxez.cn/Public/css/20160510/2309.html

http://www.sdsxez.cn/Public/css/20160510/2310.html

http://www.sdsxez.cn/Public/css/20160510/2311.html

http://www.sdsxez.cn/Public/css/20160510/2312.html

http://www.sdsxez.cn/Public/css/20160510/2313.html

http://www.sdsxez.cn/Public/css/20160510/2314.html

http://www.sdsxez.cn/Public/css/20160510/2315.html

http://www.sdsxez.cn/Public/css/20160510/2316.html

http://www.sdsxez.cn/Public/css/20160510/2317.html

http://www.sdsxez.cn/Public/css/20160510/2318.html

http://www.sdsxez.cn/Public/css/20160510/2319.html

http://www.sdsxez.cn/Public/css/20160510/2320.html

http://www.sdsxez.cn/Public/css/20160510/2321.html

http://www.sdsxez.cn/Public/css/20160510/2322.html

http://www.sdsxez.cn/Public/css/20160510/2323.html

http://www.sdsxez.cn/Public/css/20160510/2324.html

http://www.sdsxez.cn/Public/css/20160510/2325.html

http://www.sdsxez.cn/Public/css/20160510/2326.html

http://www.sdsxez.cn/Public/css/20160510/2327.html

http://www.sdsxez.cn/Public/css/20160510/2328.html

http://www.sdsxez.cn/Public/css/20160510/2329.html

http://www.sdsxez.cn/Public/css/20160510/2330.html

http://www.sdsxez.cn/Public/css/20160510/2331.html

http://www.sdsxez.cn/Public/css/20160510/2332.html

http://www.sdsxez.cn/Public/css/20160510/2333.html

http://www.sdsxez.cn/Public/css/20160510/2334.html

http://www.sdsxez.cn/Public/css/20160510/2335.html

http://www.sdsxez.cn/Public/css/20160510/2336.html

http://www.sdsxez.cn/Public/css/20160510/2337.html

http://www.sdsxez.cn/Public/css/20160510/2338.html

http://www.sdsxez.cn/Public/css/20160510/2339.html

http://www.sdsxez.cn/Public/css/20160510/2340.html

http://www.sdsxez.cn/Public/css/20160510/2341.html

http://www.sdsxez.cn/Public/css/20160510/2342.html

http://www.sdsxez.cn/Public/css/20160510/2343.html

http://www.sdsxez.cn/Public/css/20160510/2344.html

http://www.sdsxez.cn/Public/css/20160510/2345.html

http://www.sdsxez.cn/Public/css/20160510/2346.html

http://www.sdsxez.cn/Public/css/20160510/2347.html

http://www.sdsxez.cn/Public/css/20160510/2348.html

http://www.sdsxez.cn/Public/css/20160510/2349.html

http://www.sdsxez.cn/Public/css/20160510/2350.html

http://www.sdsxez.cn/Public/css/20160510/2351.html

http://www.sdsxez.cn/Public/css/20160510/2352.html

http://www.sdsxez.cn/Public/css/20160510/2353.html

http://www.sdsxez.cn/Public/css/20160510/2354.html

http://www.sdsxez.cn/Public/css/20160510/2355.html

http://www.sdsxez.cn/Public/css/20160510/2356.html

http://www.sdsxez.cn/Public/css/20160510/2357.html

http://www.sdsxez.cn/Public/css/20160510/2358.html

http://www.sdsxez.cn/Public/css/20160510/2359.html

http://www.sdsxez.cn/Public/css/20160510/2360.html

http://www.sdsxez.cn/Public/css/20160510/2361.html

http://www.sdsxez.cn/Public/css/20160510/2362.html

http://www.sdsxez.cn/Public/css/20160510/2363.html

http://www.sdsxez.cn/Public/css/20160510/2364.html

http://www.sdsxez.cn/Public/css/20160510/2365.html

http://www.sdsxez.cn/Public/css/20160510/2366.html

http://www.sdsxez.cn/Public/css/20160510/2367.html

http://www.sdsxez.cn/Public/css/20160510/2368.html

http://www.sdsxez.cn/Public/css/20160510/2369.html

http://www.sdsxez.cn/Public/css/20160510/2370.html

http://www.sdsxez.cn/Public/css/20160510/2371.html

http://www.sdsxez.cn/Public/css/20160510/2372.html

http://www.sdsxez.cn/Public/css/20160510/2373.html

http://www.sdsxez.cn/Public/css/20160510/2374.html

http://www.sdsxez.cn/Public/css/20160510/2375.html

http://www.sdsxez.cn/Public/css/20160510/2376.html

http://www.sdsxez.cn/Public/css/20160510/2377.html

http://www.sdsxez.cn/Public/css/20160510/2378.html

http://www.sdsxez.cn/Public/css/20160510/2379.html

http://www.sdsxez.cn/Public/css/20160510/2380.html

http://www.sdsxez.cn/Public/css/20160510/2381.html

http://www.sdsxez.cn/Public/css/20160510/2382.html

http://www.sdsxez.cn/Public/css/20160510/2383.html

http://www.sdsxez.cn/Public/css/20160510/2384.html

http://www.sdsxez.cn/Public/css/20160510/2385.html

http://www.sdsxez.cn/Public/css/20160510/2386.html

http://www.sdsxez.cn/Public/css/20160510/2387.html

http://www.sdsxez.cn/Public/css/20160510/2388.html

http://www.sdsxez.cn/Public/css/20160510/2389.html

http://www.sdsxez.cn/Public/css/20160510/2390.html

http://www.sdsxez.cn/Public/css/20160510/2391.html

http://www.sdsxez.cn/Public/css/20160510/2392.html

http://www.sdsxez.cn/Public/css/20160510/2393.html

http://www.sdsxez.cn/Public/css/20160510/2394.html

http://www.sdsxez.cn/Public/css/20160510/2395.html

http://www.sdsxez.cn/Public/css/20160510/2396.html

http://www.sdsxez.cn/Public/css/20160510/2397.html

http://www.sdsxez.cn/Public/css/20160510/2398.html

http://www.sdsxez.cn/Public/css/20160510/2399.html

http://www.sdsxez.cn/Public/css/20160510/2400.html

http://www.sdsxez.cn/Public/css/20160510/2401.html

http://www.sdsxez.cn/Public/css/20160510/2402.html

http://www.sdsxez.cn/Public/css/20160510/2403.html

http://www.sdsxez.cn/Public/css/20160510/2404.html

http://www.sdsxez.cn/Public/css/20160510/2405.html

http://www.sdsxez.cn/Public/css/20160510/2406.html

http://www.sdsxez.cn/Public/css/20160510/2407.html

http://www.sdsxez.cn/Public/css/20160510/2408.html

http://www.sdsxez.cn/Public/css/20160510/2409.html

http://www.sdsxez.cn/Public/css/20160510/2410.html

http://www.sdsxez.cn/Public/css/20160510/2411.html

http://www.sdsxez.cn/Public/css/20160510/2412.html

http://www.sdsxez.cn/Public/css/20160510/2413.html

http://www.sdsxez.cn/Public/css/20160510/2414.html

http://www.sdsxez.cn/Public/css/20160510/2415.html

http://www.sdsxez.cn/Public/css/20160510/2416.html

http://www.sdsxez.cn/Public/css/20160510/2417.html

http://www.sdsxez.cn/Public/css/20160510/2418.html

http://www.sdsxez.cn/Public/css/20160510/2419.html

http://www.sdsxez.cn/Public/css/20160510/2420.html

http://www.sdsxez.cn/Public/css/20160510/2421.html

http://www.sdsxez.cn/Public/css/20160510/2422.html

http://www.sdsxez.cn/Public/css/20160510/2423.html

http://www.sdsxez.cn/Public/css/20160510/2424.html

http://www.sdsxez.cn/Public/css/20160510/2425.html

http://www.sdsxez.cn/Public/css/20160510/2426.html

http://www.sdsxez.cn/Public/css/20160510/2427.html

http://www.sdsxez.cn/Public/css/20160510/2428.html

http://www.sdsxez.cn/Public/css/20160510/2429.html

http://www.sdsxez.cn/Public/css/20160510/2430.html

http://www.sdsxez.cn/Public/css/20160510/2431.html

http://www.sdsxez.cn/Public/css/20160510/2432.html

http://www.sdsxez.cn/Public/css/20160510/2433.html

http://www.sdsxez.cn/Public/css/20160510/2434.html

http://www.sdsxez.cn/Public/css/20160510/2435.html

http://www.sdsxez.cn/Public/css/20160510/2436.html

http://www.sdsxez.cn/Public/css/20160510/2437.html

http://www.sdsxez.cn/Public/css/20160510/2438.html

http://www.sdsxez.cn/Public/css/20160510/2439.html

http://www.sdsxez.cn/Public/css/20160510/2440.html

http://www.sdsxez.cn/Public/css/20160510/2441.html

http://www.sdsxez.cn/Public/css/20160510/2442.html

http://www.sdsxez.cn/Public/css/20160510/2443.html

http://www.sdsxez.cn/Public/css/20160510/2444.html

http://www.sdsxez.cn/Public/css/20160510/2445.html

http://www.sdsxez.cn/Public/css/20160510/2446.html

http://www.sdsxez.cn/Public/css/20160510/2447.html

http://www.sdsxez.cn/Public/css/20160510/2448.html

http://www.sdsxez.cn/Public/css/20160510/2449.html

http://www.sdsxez.cn/Public/css/20160510/2450.html

http://www.sdsxez.cn/Public/css/20160510/2451.html

http://www.sdsxez.cn/Public/css/20160510/2452.html

http://www.sdsxez.cn/Public/css/20160510/2453.html

http://www.sdsxez.cn/Public/css/20160510/2454.html

http://www.sdsxez.cn/Public/css/20160510/2455.html

http://www.sdsxez.cn/Public/css/20160510/2456.html

http://www.sdsxez.cn/Public/css/20160510/2457.html

http://www.sdsxez.cn/Public/css/20160510/2458.html

http://www.sdsxez.cn/Public/css/20160510/2459.html

http://www.sdsxez.cn/Public/css/20160510/2460.html

http://www.sdsxez.cn/Public/css/20160510/2461.html

http://www.sdsxez.cn/Public/css/20160510/2462.html

http://www.sdsxez.cn/Public/css/20160510/2463.html

http://www.sdsxez.cn/Public/css/20160510/2464.html

http://www.sdsxez.cn/Public/css/20160510/2465.html

http://www.sdsxez.cn/Public/css/20160510/2466.html

http://www.sdsxez.cn/Public/css/20160510/2467.html

http://www.sdsxez.cn/Public/css/20160510/2468.html

http://www.sdsxez.cn/Public/css/20160510/2469.html

http://www.sdsxez.cn/Public/css/20160510/2470.html

http://www.sdsxez.cn/Public/css/20160510/2471.html

http://www.sdsxez.cn/Public/css/20160510/2472.html

http://www.sdsxez.cn/Public/css/20160510/2473.html

http://www.sdsxez.cn/Public/css/20160510/2474.html

http://www.sdsxez.cn/Public/css/20160510/2475.html

http://www.sdsxez.cn/Public/css/20160510/2476.html

http://www.sdsxez.cn/Public/css/20160510/2477.html

http://www.sdsxez.cn/Public/css/20160510/2478.html

http://www.sdsxez.cn/Public/css/20160510/2479.html

http://www.sdsxez.cn/Public/css/20160510/2480.html

http://www.sdsxez.cn/Public/css/20160510/2481.html

http://www.sdsxez.cn/Public/css/20160510/2482.html

http://www.sdsxez.cn/Public/css/20160510/2483.html

http://www.sdsxez.cn/Public/css/20160510/2484.html

http://www.sdsxez.cn/Public/css/20160510/2485.html

http://www.sdsxez.cn/Public/css/20160510/2486.html

http://www.sdsxez.cn/Public/css/20160510/2487.html

http://www.sdsxez.cn/Public/css/20160510/2488.html

http://www.sdsxez.cn/Public/css/20160510/2489.html

http://www.sdsxez.cn/Public/css/20160510/2490.html

http://www.sdsxez.cn/Public/css/20160510/2491.html

http://www.sdsxez.cn/Public/css/20160510/2492.html

http://www.sdsxez.cn/Public/css/20160510/2493.html

http://www.sdsxez.cn/Public/css/20160510/2494.html

http://www.sdsxez.cn/Public/css/20160510/2495.html

http://www.sdsxez.cn/Public/css/20160510/2496.html

http://www.sdsxez.cn/Public/css/20160510/2497.html

http://www.sdsxez.cn/Public/css/20160510/2498.html

http://www.sdsxez.cn/Public/css/20160510/2499.html

http://www.sdsxez.cn/sitemap.txt



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章