阿里雲上的容器技術實踐總結

2021-08-19 12:28:53 字數 2684 閱讀 5224

首先簡單說下我們要做什麼,不談理念,不談哲學,我們要做一款基於微服務架構,可以同時執行在公有雲和私有雲上的容器雲平台,以devops為目標,提公升協作效率,快速交付。

現在的公有雲如雨後春筍,國外如aws、azure、bluemix,國內如bat、daocloud、goodrain,都可以給大家提供豐富的雲基礎設施和上層服務,那為什麼選擇阿里雲呢?主要有三點想法:

1. 我們使用阿里雲的服務已經有5年了,從企業級paas平台合作開始,再到幫助我們的一些客戶逐步遷雲,對阿里雲的能力還是比較熟悉的。

2. 因為要做的是容器,國外aws,azure雖然有,但aws在中國一直沒「正規」資料中心(唯一的乙個前幾天還被查了),azure是微軟體系(也許是心裡作祟,總感覺不對口…);而國內雖然一些公有雲有容器能力,但規模普遍偏小;再者,阿里雲反正也開始做容器了,說明人家底層還是有支援能力的。

3. 當然,還有乙個做法,自建資料中心或租賃idc,不過做事情還是的慢慢來(我們又不是暴發戶…),不到一定規模,這個前期投入還是有點大的。

有人問,在it領域,現在跟10年前比,對技術人員或架構師要求有什麼不同?

我是這麼來看的,以前大多數是做加法 —— 每個領域就那幾個產品或框架,需要的更多是整合能力;現在是要做減法,因為技術棧太多了(全棧工程師不好當呀…),到底選哪些,這往往是最考驗能力的。

我們最終選擇了kubernetes+coreos+docker的組合,當然少不了輔助的etcd、flannel…,大家可能會問,為什麼不用ubuntu、ranchar啊,為什麼不用ovs啊,其實我們都是有理由的,這篇文章裡不是重點,私下交流。

那緊接著要做什麼也就明了了,在阿里雲的ecs上先跑coreos(docker反正自帶了),然後去部署kubernetes那一整套,驗證驗證技術可行性吧,可以的話,再做分布式儲存,然後支援devops,自動化運維,先後順序也很好選。

大家可以到阿里雲官網上去搜下docker,或者kvm類似的,映入眼簾的是這個:

千萬別氣餒,因為都有coreos映象了,不支援docker誰信(其實阿里雲還是蠻務實的,沒有經過嚴格測試不敢說支援),好歹也得試一試,於是就先買了幾台coreos機器,接下來做的一些事情就不那麼順利了:

1. 先做系統公升級(預設版本比較低了,681.2.0 64位),那大家都知道外網流量很貴,所以最好搭個內部公升級伺服器,在公升級後發現網路有問題,進不去,內部進入發現原因是網路沒起來,這工作只有先手工做了(systemctlrestart systemd-networkd.service)

2. 公升級完了,最好的習慣是去打快照(當然,這個服務過些天就要收錢了,還挺貴的…),發現沒打出來,這個問題排了好久,最後的原因是自作孽啊,刪了個自認為沒用的yunservice,後來想想也覺得自己幼稚了,都叫yun了,肯定是阿里雲留下做事情的呀

3. kubernetes安裝,一般來說有三種安裝方式,命令型、服務型、容器型,技術成本考慮,最終我們先用了前兩種的混合態,然後setup-network-enviroment輔助驗證,還好沒遇到大問題,容器間網路很快通了(我們用了container模式,埠對映出去)

4. 因為在vpc環境,我們使用了eip,但ip資源實在是寶貴(20個),所以留了乙個做堡壘機,其他的大部分給了計算節點,由kubernetes的service public ip消費了,這點告訴我們,寶貴資源大家前期一定要做好規劃

5. 內部dns能力,用了skydns,乙個比較坑的問題,一定要用最新版本,之前哪怕是release版本都有問題,服務註冊後進不去出不來的,反正挺詭異的,一直也沒見說哪個版本修復的

6. 跑服務過程中遇到了棘手問題,大家都知道kubernetes的容器排程能力,會結合自身的一些分析,在執行時把pod做熱遷,放到他認為合適的機器上,這就使得容器用宿主機本地磁碟不現實了,持久化資料沒法遷移或共享呀(當然,有同學說可以通過label強制執行在某處,但好特性還是想用一用,不然什麼都規劃好,這和雲的宗旨就貌合神離了),這怎麼辦?分布式儲存是個好方案,但阿里的塊儲存服務還沒發布,雖然我們一直是決定的自己搭,但那也是下個版本的事情了,這邊先low了一下,只能先用nfs臨時解決

上面羅里吧嗦的說了過程中遇到的一些問題,當然還有,就不詳舉了,不然就變成了公有雲吐槽了!

這裡想簡單再分享下我們的技術棧和架構,希望對大家有用。

剛才已經把容器技術棧給說了,接著就是容器裡跑的微服務使用技術了:

1. springboot,讓微服務編碼、配置、部署、監控變得更簡單

2. react+redux,讓前端也可以微服務化

3. metacube(我們的產品),元資料,提供資源全圖、驅動運營

4. redmine,提供產品和服務管理

5. elasticsearch、influxdb,運維監控能力

6. bps(又是我們的產品),一體化的流程能力

其他還有好多,saltstack、gitlab、jenkins、autoconfig、oauth等等,不細說了。

平台是以devops為核心的,最終架構如下:

圍繞統一接入,自動化協作,運營反饋等,建設了完整的企業級雲平台,後面我會分模組一一介紹,大家先概覽一下就可以了。

包括高可靠、高效能、灰度發布、熔斷、apigateway、自動化、安全控制…,大家有興趣可以一起交流交流,共同進步。

如何在阿里雲容器服務上搭建Jenkins X

下面我們講介紹如何在阿里雲容器服務上快速安裝jenkins x。首先,需要在 阿里雲容器服務控制台 建立乙個香港集群,如果建立的集群只有乙個worker節點,建議新增一台配置不低於8c16g的ecs。進入集群管理頁面,找到 master 節點 ssh 連線位址 ssh登入master。安裝 git。...

華為雲技術分享 iSulad輕量化容器實踐解析

容器應用在2019年迎來新的一輪浪潮,全球整體容器市場規模以高達30 的速度高歌猛進,大多數企業開始全面擁抱容器化,容器的規模 密度愈加擴大。根據sysdig 2019年容器使用報告統計,在企業內部容器規模方面,9 的企業使用者容器規模已經達到5000以上 在容器密度方面,與2018年相比,每台主機...

阿里雲可持續交付認知與實踐總結

首先,感謝阿里雲張燎原和張裕兩位資深老師的耐心講解。從9月10號到9月27號經過半個多月七次課程的學習,我從中學到了很多理念,跟著老師一步一步的講解與實踐,對阿里雲效平台有乙個新的認識,包括對阿里雲 倉庫管理,流水線有新的認識與學習。從第一堂課程開始,老師每次都會留一些作業讓大家去練習,從開始的本地...