您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“怎么用Ubuntu和Xen來設(shè)置Kubernetes”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么用Ubuntu和Xen來設(shè)置Kubernetes”這篇文章吧。
我想要運(yùn)行自己的Kubernetes部署,來運(yùn)行應(yīng)用程序和試驗(yàn)。我不僅僅只是想測試Kubernetes,還想讓它24小時全天候運(yùn)行。做到這樣最簡單的方法就是使用谷歌GCE或者AWS。如果使用這兩種方法,你就不需要花那么多錢在保持基礎(chǔ)安裝運(yùn)行。
考慮了很多選擇之后(包括運(yùn)行樹莓派集群),我得出結(jié)論,我最好的設(shè)置就是運(yùn)行單個主持很多虛擬機(jī)的物理服務(wù)器。
我選了Xen作為我的超管理器,Ubuntu作為“dom0”(之后會對這個進(jìn)行詳述),Core OS作為我的Kubernetes主機(jī)。以下是我的設(shè)置。
Dell T20 服務(wù)器
Intel i5-4590
16GB RAM
120 GB SSD
超管理器:Xen 超管理器/Ubuntu16.04。我發(fā)現(xiàn)自己完全被“dom0”的談?wù)摳愫苛?,但是要點(diǎn)是:安裝Ubuntu16.04在自己的服務(wù)器上,然后你安裝(通過apt-get)Xen,安裝Xen就好像用你的原始Ubuntu安裝虛擬機(jī)一樣。這個虛擬機(jī)叫做“dem0”,可以用來管理你的其它虛擬機(jī)。
(另外困擾的就是——Xen不是Xen服務(wù)器,你可以完全忽略Xen服務(wù)器這個商業(yè)產(chǎn)品)。
Kubernetes OS:Core OS Alpha Channel。現(xiàn)在為止,Stable不包括kubelet(這個正是我們需要的),所以我們使用Alpha。這就是我選擇的,因?yàn)樗С諯ubernetes既輕松又簡單。
在一個新的Ubuntu16.04上面,安裝Xen,libvirt和virtinst。將它作為默認(rèn)引導(dǎo)點(diǎn),并且重新啟動。virtinst
給我們一個CLI,我們之后會用來啟動虛擬機(jī)。
之后回來的就是原始Ubuntu,作為一個虛擬機(jī)運(yùn)行在Xen超管理器上。因?yàn)槭窃及惭b,所以我們并不知道到底哪些東西是改變了的。我們來查看一下:
看起來不錯!
Kubernetes和這些漂亮的腳本從基礎(chǔ)層面為你設(shè)置整個集群。我發(fā)現(xiàn)的問題就是,我想要自己管理(或者理解)這些軟件。我并不想要一個迷之bash腳本來替我處理一切問題。
相反,我創(chuàng)建了我自成一套的腳本,這個腳本少生成和模版,可能對某些例子來說是有用的。這里展示的就是如何使用他們。
我們會盡量少使用我的東西——下面的git存儲庫是4Core OS云配置文件。這些定義配置(網(wǎng)絡(luò)設(shè)置,應(yīng)用程序)。也有為集群配置來生成我們的SSL證書。
所以,從Github抓取我的文件,從最新的CoreOS Alpha抓取:
現(xiàn)在為master,node1,node2,node3來創(chuàng)建一個磁盤:
如果你沒有SSH密鑰的話,你可能需要生成一個:
然后我們把我們的SSH密鑰放到云端文件:
我們也需要生成我們的證書:
然后放入我們生成的證書到master節(jié)點(diǎn)中:
配置完成,我們現(xiàn)在可以驗(yàn)證雙重檢查:
如果通過了(從服務(wù)器看是“null”),那就使用這些磁盤創(chuàng)建一個Core OS虛擬機(jī):
這就會開啟4個運(yùn)行在Core OS上面的虛擬機(jī),我們的云配置文件。這個取決于你在哪里運(yùn)行(網(wǎng)速,服務(wù)器電源),要花費(fèi)比較長的時間才能啟動和運(yùn)行。
可能發(fā)生的狀況:
下載Flannel鏡像
Kubelet開啟和下載超kube
容器為API服務(wù)器,controller 管理員,master上的調(diào)度器開啟
為kube-proxy的容器在節(jié)點(diǎn)上啟動
如果你需要,可以連接到控制臺,并且監(jiān)控節(jié)點(diǎn)啟動:
你也可以ssh到master,然后查看journalctl:
所以,運(yùn)行起來了嗎?讓我們來使用kubectl(我們先要在本地安裝一下這個):
讓我們來看:
最后一條,如果我們嘗試,并且列出pods(正在運(yùn)行的進(jìn)程),我們得不到任何東西。我們需要創(chuàng)建“kube-system”命名空間。這個很容易:
現(xiàn)在:
woohoo!
所以我們事實(shí)上完成了什么呢?我們已經(jīng)將Ubuntu服務(wù)器移入到了一個Xen管理程序。在那臺超管理器上,我們創(chuàng)建了4個運(yùn)行在Core OS上的虛擬機(jī)。在我的Git存儲庫里的Core OS文件,我們設(shè)置了一個Core OS安裝,運(yùn)行在master Kubernetes組件上,其它三個則運(yùn)行在節(jié)點(diǎn)組件上。
我們有很多方法讓Kubernetes運(yùn)行在Core OS上面。特別的一點(diǎn)就是我們按照如下流程來設(shè)置:
Flannel service——可以用來處理我們的網(wǎng)絡(luò)。它允許一個節(jié)點(diǎn)上的容器跟其它節(jié)點(diǎn)上的容器進(jìn)行通信。
etcd service——這就是Kubernetes 保持狀態(tài)的地方。
Docker service——Docker就是Kubernetes設(shè)置開啟鏡像的方式。
kubelet service——這就是kubernetes組件中唯一作為系統(tǒng)service的。我們使用kubelet來加入我們的Kubernetes集群,然后啟動其它kubernetes應(yīng)用程序。
跟系統(tǒng)service一樣,我們也安裝了以下的東西作為services,由Kubernetes管理,我們通過在 /etc/kubernetes/manifests/中替換Kubernetes文件來完成。kubelet service監(jiān)控這個目錄,并且基于它找到的東西來啟動應(yīng)用程序。
kube-apiserver
kube-scheduler
kube-controller-manager
kube-proxy
就醬!我們還沒有一個功能完全的Kubernetes集群。是時候來玩一下它了!
以上是“怎么用Ubuntu和Xen來設(shè)置Kubernetes”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。