国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Kubernetes 落地案例|在線課程平臺 Descomplica 使用 Kubernetes 5

hzc / 3531人閱讀

摘要:使用這個工具是由的幾個人創建的。它最厲害的地方在于,在下,使用,這對于我們來說有利無弊。在我們的這個案例中,我們添加集群層面的日志記錄,攝取應用程序日志到,用和進行集群監控,基于的授權認證,以及一些其它的事情。

在過去一年內,Descomplica 計劃往核心組件服務化的方向發展,我們一開始使用 Elastic Beanstalk 將這些服務編排到 AWS。

那時候來說,這個決定是明智的。總體來說,Elastic Beanstalk 挺好用的,而且比較容易學習;所有小組為他們各自的項目使用,也不會花費太多時間。

早在幾個月之前,一切都還運行得好好的。但是在一些舊問題解決之后,新的問題接踵而至。

成本問題

在 Elastic Beanstalk,每個 EC2 實例只運行一個應用程序容器。這也就意味著,如果你遵循可靠性最佳實踐,一個應用程序就會有兩個或者多個實例(跨越部署在多個可用域)。除了生產環境,如果你還有其他環境的話(比如預生產環境),那么你可能就需要更多實例。

無論如何,你都要為每個服務根據不同的工作負載部署多個專用實例,并且大部分時間這些實例都很閑。

我們需要找到一個方法更加明智地使用我們的可用計算資源。

贏家

后來我們才發現,Kubernetes 就是我們一直在尋找的 ECS 的替代品。

Kubernetes 是一個容器編排工具,建立在谷歌 15 年運行產品的基礎之上,與最佳想法、社區實踐相結合。

雖然 Kubernetes 是一個功能豐富的項目,但是只有其中的幾個關鍵功能引起了我們的注意:命名空間,自動滾動升級和回滾,通過 DNS 的服務發現,基于資源使用的容器自動擴容,以及,允諾的自我修復系統。

Kubernetes 圍繞“容器應該如何被組織,如何通過網絡聯絡”的理念,但是如果你的服務是遵從 Twelve-Factor 實踐的,那么這個理念對你來說也不是什么問題。

我們的生產化之路

為了確保 Kubernetes 是個可行的選擇,我們做的第一件事就是做些可靠性測試來確保它能夠處理“不可用節點,Kubelet/Proxy/Docker daemons 終止,和可用區域運行中斷”這類的故障模式。

預測所有的故障,這是不太可能的,但是最后,我們還是被 Kubernetes 解決這些故障的能力深深折服。

那時候,我們用 kube-up 來創建我們的測試集群。雖然這個工具按照它的目標來服務,但不是每一次都符合預期;它暴露出了非常多的問題,比如說不合理的默認設置,隨機超時導致沒有完全創建成功的程序棧,以及在刪除集群時不確定的行為導致一些資源的遺留。

那時候我們一致同意要選擇用 Kubernetes,所以我們需要一個更加可靠的方法來創建或者刪除 Kubernetes 集群。

使用“kube-aws”

Kube-aws 這個工具是由 CoreOS 的幾個人創建的。它最厲害的地方在于,在 hoods 下,使用 CloudFormation,這對于我們來說有利無弊。

最顯著的優點就是,用這個工具創建或者刪除集群十分容易,而且刪除后還不會留下任何的遺留。

另一個功能在于,與 kube-up 不同,你可以在已經存在的 VPC 上創建集群,這樣所有運行在 Kubernetes 上的服務都可以立即訪問你的 AWS 資源(比如關系型數據庫)。

事實上,你可以同時在同一個 VPC 上運行多個集群。這樣就會帶來一個良性的副作用,就是你可以把每個集群都看成是不變的基礎設施,你不需要修改正在運行的集群——冒著破壞其中一些什么的風險,你只需要創建一個新的集群,然后用影響最小的方法慢慢地把流量從舊集群轉移到新集群。

最后一個功能(也可能是最有用的一個),你可以通過配置輕松定制集群的任何方面來滿足你的需求。在我們的這個案例中,我們添加集群層面的日志記錄,攝取應用程序日志到 Sumologic,用 InfluxDB 和 Grafana 進行集群監控,基于 ABAC 的授權認證,以及一些其它的事情。

第一個環境

在解決了集群創建,集群刪除問題之后,我們有信心開始著手遷移我們的預生產環境到 Kubernetes了。

為第一個 Deployment 手動創建 yaml 配置十分簡單,但是我們需要自動化地在應用鏡像被持續集成系統構建完畢之后立即進行部署。

為了證明這個概念,我們很快在 AWS Lambda(基于這篇文章)開辟了一個小的功能,這個功能可以在它收到一個測試通過了的合并通知,自動升級相應的部署單。

這個小 Lambda 功能現在涉及到我們的交付管道,也編排 deployments 到其它環境,包括生產環境。

有了這個,將預生產環境服務從 Beanstalk 遷移到 Kubernetes 就相當容易了。首先,我們為每個服務(一開始指的是在 Elastic Beanstalk 上遺留的部署)都創建了 DNS 記錄,確保所有的服務都是通過這個 DNS 互相訪問的。然后,就只要修改這些 DNS 記錄來指向相應的 Kubernetes 管理的負載均衡器。

為了確保管道的每個部分都按照預期的來運行,我們監控所有的預生產環境部署,尋找 bug,然后盡我們所能地修復它,完善功能。

測試得越多,學習到得越多

在部署我們的第一個產品服務到 Kubernetes 之前,我們做了一些壓力測試,來找到每個服務最佳的資源需求配置,也為了找出我們需要多少 pods 才可以支撐住目前的流量。

觀察你的 services 在負載下是如何工作的,以及他們需要多少計算量。

同樣,花些時間來理解 Kubernetes 的服務質量等級,這樣你就可以更好地控制哪一個 pod 在內存壓力下會被終止掉。如果你跟我們一樣,跟所有環境都分享了同一個集群,那么這一點對你來說至關重要。

提示:啟動 Cross-Zone Load Balabcing(AWS)

這一點在 Kubernetes1.4 中已經修改,但是現在,如果你通過 LoadBalancer type 來暴露你的服務,不要忘記為相應的 ELB 手動啟動 cross-zone load balancing;如果你沒有這么做,你應該會發現分布在不同的可用域當中的應用 pod 的負載不均衡。

提示: 多了解 kube-system

如果你曾經嘗試用過 Kubernetes,你可能就會注意到 kube-system namespace 上有非常多的東西;花點時間來理解它們的意義。
比如,拿 DNS add-on 來說;經常能看到人們遇到 DNS 問題,因為他們忘記了隨著負載增長而要增加更多的 DNS Pod。

上線

不要立即轉換所有的流量,就如同我們在預生產環境中所做的,我們想的是,需要采取一個更加仔細的方法,用加權路由規則,慢慢轉換流量到 Kubernetes 集群。

一旦我們注意到已經沒有請求可以到達遺留的 Beanstalk 環境了,我們就繼續向前,并且終止他們。

2016,9月21日更新內容:
所有主要的服務都已經被遷移到我們新的平臺啦!

以下是最終數字:
每月減少約53-63%開銷
實例的數量減少72-82%

生產環境之外

Kubernetes 可以用毫不費力的方式塑造交付管道,這是我們想都不敢想的體驗。
我們的開發環境就是這樣的一個例子。

無論什么時候有人打開了 Pull Request 給我們一個項目,我之前提到的 AWS Lambda 功能就會創建一個臨時環境運行 PR 當中修改后的代碼。

同樣,無論什么時候 push 新的代碼,一旦他們通過測試,這個環境就會自動更新。最后,當 PR 被合并(或者關閉),環境也就被刪除了。

這個功能使得我們的代碼審查更加徹底,因為開發人員能夠看到修改的東西在運行。這對于前端服務的 UX 來說就更有價值了;設計師和產品經理有機會看到修改生效,也可以在 PR 合并之前驗證修改和分享想法。為了要發送 Github Status 通知,可以看到這些圖片中,我們用 Go 實現了一個守護進程,來監控到開發環境的部署并不斷更新各個版本的部署狀態。

結論

Kubernetes 是一款很復雜的軟件,旨在解決復雜的問題,所以在把它用到你的項目之前要先花點時間了解一下它的那些功能是如何有條理地運行在一起的。

Kubernetes 是為生產準備的,所以要避免受到誘惑,不要嘗試在它上面運行所有的東西。在我們的經驗里,Kubernetes 并沒有給可能遇到的一系列問題提供簡單有效的統一方法,比如說有狀態應用。

其實文檔也不怎么樣,但是比如 Kubernetes Bootcamp 以及 Kelsey Hightower 的《Kubernetes The HardWay》給了我希望,相信在不遠的將來這些都將不是問題。

如果沒有 Kubernetes,我不知道我們這個小團隊要怎么在這么短的時間內解決這么多的問題。我們希望繼續在 Kubernetes 上工作,確保交付平臺更加有活力,更贊!

原文鏈接
轉載請聯系我們 -3-

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32492.html

相關文章

  • Kubernetes 落地案例使用 Kubernetes 重新部署全球最大的教育公司

    摘要:是一家全球教育公司,對象面向全世界,目前公司用戶已經達到萬。使用容器技術作為平臺的核心。部署來管理該平臺。結果正在創建一個企業級的平臺,為的是交付創新的基于網絡的教育內容。據預測這會幫助公司完成年內用戶增加到萬的目標。 Pearson 是一家全球教育公司,對象面向全世界,目前公司用戶已經達到 750 萬。Pearson 接下來的目標是 2025 年在線用戶人數達到 2000 萬。要達到...

    JowayYoung 評論0 收藏0
  • Rancher 2.2 GA:企業進入應用跨多K8S集群、混合云部署新時代

    摘要:此次發布的版本包含對和的支持,以及對的支持。版本中,的進階版監控功能以尊重多租戶環境邊界的方式部署了和。為應用目錄程序提供了特定于集群和項目的配置。在全球擁有超過一億的下載量,超過家企業客戶。 Rancher 2.2 GA版本引入的創造性新功能,將進一步實現Kubernetes-as-a-service,使企業用戶能夠專注于加速創新和推動業務價值。 showImg(https://se...

    NoraXie 評論0 收藏0
  • CNCF案例研究:網易

    摘要:在考慮建立自己的業務流程解決方案后,網易決定將其私有云平臺建立在上。這項技術來自的事實讓團隊相信它可以跟上網易的規模。網易團隊報告說,使研發效率提高了以上。無論是否使用網易產品,該團隊都鼓勵其他公司嘗試。 網易如何利用Kubernetes支持全球互聯網業務 showImg(https://segmentfault.com/img/bVbpQTN?w=619&h=411); 公司:網易地...

    kycool 評論0 收藏0
  • CNCF案例研究:網易

    摘要:在考慮建立自己的業務流程解決方案后,網易決定將其私有云平臺建立在上。這項技術來自的事實讓團隊相信它可以跟上網易的規模。網易團隊報告說,使研發效率提高了以上。無論是否使用網易產品,該團隊都鼓勵其他公司嘗試。 網易如何利用Kubernetes支持全球互聯網業務 showImg(https://segmentfault.com/img/bVbpQTN?w=619&h=411); 公司:網易地...

    NusterCache 評論0 收藏0
  • CNCF案例研究:螞蟻金服

    摘要:螞蟻金服利用的高速增長策略公司螞蟻金服地點中國杭州行業金融服務挑戰螞蟻金服于年月正式成立,源自年推出的全球最大的在線支付平臺支付寶。和贊助方案出爐和多元化獎學金現正接受申請和即將首次合體落地中國 螞蟻金服利用Kubernetes的高速增長策略 showImg(https://segmentfault.com/img/bVbokov?w=1456&h=1172); 公司:螞蟻金服地點:中...

    Maxiye 評論0 收藏0

發表評論

0條評論

hzc

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<