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

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

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

圖片描述

這張圖已經很明說明問題了……由於安裝過程中的存在的問題,造成之後在使用過程中的一系列問題……

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

今天爲大家介紹5種安裝方法

圖片描述

minikube

圖片描述

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

圖片描述

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

kubeadm

圖片描述

kubeadm 可以運行在物理機、虛擬機以及雲主機,並且可以與chef或puppet配合可以完成自動化部署安裝。kubeadm與minikube一樣,你的網絡要好,原因也很簡單……

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#

普元公衆號:

圖片描述

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