[轉帖]容器雲之K8s自動化安裝方式的選擇

容器雲之K8s自動化安裝方式的選擇

目前kubernetes 已經發展到1.5的時代,但在這以前學習和使用kubernetes仍是走了很多彎路,第一個問題就是安裝,也許你會說安裝很簡單。照着官網或網上抄一篇就能夠裝上了……linux

而咱們使用kubernetes是1.1和1.2版本的時候,那時候最權威的文檔應該就是kubernetes.io官網文檔……,然而咱們在官網進行問題檢索的時候會出現(這張圖來源網絡)git

這張圖已經很明說明問題了……因爲安裝過程當中的存在的問題,形成以後在使用過程當中的一系列問題……github

隨着kubernetes的發展(目前已經到達1.5 beta版),和以前相比官方文檔也已經更加完善。同時也出現了多種安裝kuberntets的方法,在這麼多種的安裝法咱們該如何選擇呢?docker

今天爲你們介紹5種安裝方法macos

minikube

minikube 由 CoreOS 提供在單機上構件 kubernetes 集羣。minikube命令能夠運行在windows/linux/macos等平臺,使用minikube搭建本地集羣是很是方便的,同時minikube提供了完整的kubernetes集羣的功能。對於初識者minikube是一種很好的安裝方式,並且上手也很是快。但問題在於minikube安裝的時候須要鏈接互聯網,並且網絡須要足夠好……道理很簡單。ubuntu

這是官網使用minikube來啓動kubernetes集羣。有興趣的能夠查看github關於minikube的信息。windows

kubeadm

kubeadm 能夠運行在物理機、虛擬機以及雲主機,而且能夠與chef或puppet配合能夠完成自動化部署安裝。kubeadm與minikube同樣,你的網絡要好,緣由也很簡單……centos

kubeadm 是 kubernetes 在1.4版推出安裝 kubernetes 集羣。目前還處於alpha,不建議在生產環境使用。本人在centos系統上安裝測試時會出現沒法鏈接到kubeadm所須要的yum源。即便按照官網配置了源也行出現沒法下載源,最後是找到三方源才能順利安裝完成。在安裝過程當中可選的配置參數太少,因此基本都須要在使用過程當中自行修改。網絡

如圖就是官方說明添加yum源,ubuntu沒測試過。學習

hyperkube image

hyperkube images 由 Google 推出將 kubernetes 各組件以容器方式運行。容器能夠有(docker/rkt等)。使用 hyperkube images 須要提早配置 kubelet 組件。最終經過kubelet將kubenetes部署各組件。這種安裝方法的好處是:只要系統可運行容器,就能夠經過hyperkube images 來運行kubernetes組件。

經過 hyperkube images 部署kubernetes組件,首先你的網絡要好,緣由很簡單……或者你提早在本地準備好 hyperkube images 。

前面說過使用 hyperkube images 須要使用 kubelet 組件。運行kubelet組件能夠有兩種方法:docker和systemd。

經過設置kubelet 的–config目錄。kubelet 會自動運行此目錄中所添加的組件。在這裏須要注意是,在kubernetes V1.3的版本,須要手動建立kube-system的namespace 而V1.4版本不須要配置。

docker

docker images 由 kubernetes 在發行版本中提供 docker images,並經過 docker images 運行 kubernetes 組件。所須要的鏡像包在kubernetes-server-linux-amd64.tar.gz裏。

SystemD

第五種方法經過SystemD來實現,這也是咱們在生產和測試環境使用的方法。

Like it or not, systemd is here to stay.

看完上圖也許我會明白systemd在系統中的重要作用。

在這以前,咱們在Linux下使用容器你會發現,不能挑內核,不能加載內核模塊,不能掛載文件系統,不能調整內核參數,不能改網絡配置。若是你在運行容器時使用了 docker run –privileged 那我只能說祝你好運。

若是容器就是經過cgroups堆出來,那麼容器自己的/sys /dev 和 /proc 存在隔離性的問題。

所以通systemd+selinux 來進行管理,而kubernetes只須要調用systemd就完成對於容器的管理。

所以我在基於systemdd在自的環境編寫了安裝kubernetes各組件的腳本。

安裝腳本主要完成上圖的安裝和配置。

總結

我的推薦使用systemd的方式來遠行kubenetes各組件。若是能夠,可使用rkt+systemd。

文中可能存在錯誤的地方歡迎你們指正。但願你們在安裝kubernetes時少走彎路。謝謝!

普元雲計算專區: http://primeton.csdn.net/m/zone/primeton/index#

普元公衆號:

相關文章
相關標籤/搜索