閱讀981 返回首頁    go 阿裏雲 go 技術社區[雲棲]


淺談Kubernetes和Docker

近年來,Docker像一股旋風席卷IT界,Docker指的是容器技術,其字麵意思是集裝箱。Docker容器技術得以快速發展,核心技術是鏡像打包,使得上下遊能友好地進行協助和標準化交付。“build once run anywhere”構建一次到處運行的想法非常好,實踐中發現,係統在開發和測試,以及生產環境之間部署時應用配置會發生變化,僅靠“環境變量-e”沒法滿足實際需求。

另外,“容器鏡像”的架構使得應用配置文件變更困難,如容器已部署你的需求。但是,更改應用配置文件中的一個參數,都需要重新修改Dockerfile文件來實現,體現不出用容器的優勢,反而感覺更加繁瑣。

這個時候,我們來看看集裝箱的概念。集裝箱是裝在船上來運輸的,船上的舵手把集裝箱送往全世界。IT世界的Docker裝在數據中心的Linux係統環境中,容器何去何從由Kubernetes這個舵手說了算。

有人說Kubernetes出身好(穀歌的基因),活兒好,但是不好管理,作為老船長的幾個IT管理者又拿出了Sextant來馴服Kubernetes。Sextant是什麼東西呢?Sextant和Kubernetes(K8S)的關係,好比RedHat、Suse、CentOS、Ubuntu和Linux關係一樣。Sextant算是Kubernetes(K8S)的一種發行版。Kubernetes的使用就跟他的名字一樣很複雜。這幾位技術專家在Kubernetes(K8S)的基礎上加入了許多功能特性,方便安裝部署

使用Kubernetes需要解決的問題

    總而言之,目前我們使用Kubernetes可以解決以下問題:

  1. 單機操作係統(Core OS

  2. 自動安裝和部署(Sextant

  3. .分布式文件係統(Cephalexin

  4. Load BalancerIngress

  5. 網絡性能

數據中心用戶為什麼要用DockerKubernetes呢?

從業務的角度上說,當業務需要上線時,需要及時申請到所需資源。當業務完成後需要釋放資源,沒有業務需求的時候要為下次業務出現時做好準備。

從數據中心的組織結構來說,數據中心裏有業務集群的概念,一個集群隻運行某一種應用,各集群之間相對獨立,這保證了應用所需資源,但影響了利用率,影響了數據中心數據內部遷移流動的連貫性。

容器的出現為解決這些問題提供了可能,容器的特點就是把應用容器化,放到容器內部,解決了環境依賴的問題,從而可以方便地進行遷移。

但是,隻有容器是不行的,還需要用到集群化的管理工具,一個個零散的容器需要被統一管理才有價值,在技術實現上就需要如KubernetesK8S)這樣的分布式操作係統,讓所有作業都由分布式操作係統來調度,而且分布式操作係統可以打破數據中心內部一個個孤立的業務集群,將集群做到標準化。

總而言之,k8sdocker的關係不複雜。 k8s是為部署與管理docker而生的管理平台。 k8s提供了docker的創建、管理、負載與高可用管理等功能,但如果沒有k8sdocker還是可以使用的。與k8s類似的還有其它,如mesos  


作者:劉誌紅   16年係統研發關聯工作經驗,曾就職於Oracle,NTT Data,中鈔科堡等公司,目前就職於中國電信雲計算分公司

最後更新:2017-11-07 21:03:50

  上一篇:go  Flume 之 Interceptors
  下一篇:go  爽!MaxCompute老鐵們再也不用點點點了!