成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Kubernetes的幾種主流部署方式01-minikube部署

浠ラ箍 / 2775人閱讀

摘要:代表的解決方案為。雖然官網(wǎng)列出的部署方式很多,但也不用被這么多種部署方式搞糊涂了。雖然只是一條命令,但其實(shí)執(zhí)行了很多步驟命令執(zhí)行后輸出如下可以看到,主要做了這些事創(chuàng)建了名為的虛擬機(jī),并在虛擬機(jī)中安裝了容器運(yùn)行時(shí)。

綜述

Kubernetes集群的組件眾多,要部署一套符合生產(chǎn)環(huán)境的集群不是一件容易的事。好在隨著社區(qū)的快速發(fā)展,特別是在它成為事實(shí)上的容器編排標(biāo)準(zhǔn)以后,基本所有的主流云平臺都完全支持Kubernetes,或把它作為核心的云解決方案。同時(shí),本地部署也出現(xiàn)了各類成熟的主動化解決方案,特別是Kubeadm,在最新的1.13版本已經(jīng)官方GA了,也就是完全可以用在生產(chǎn)環(huán)境中了。這些云服務(wù)或自動化工具都大大減少了Kubernetes的部署難度,讓運(yùn)維力量不足的小型公司也能快速的搭建出可用的Kubernetes生產(chǎn)環(huán)境。

Kubernetes部署方案對比

Kubernetes官方文檔中,總共列出了5大類,不下30種的Kubernetes安裝方式。不說別的,單從數(shù)量來說,就可以看出當(dāng)前Kubernetes生態(tài)的包容性和目前其他各類平臺對它的技術(shù)支持有多強(qiáng)。文檔中把部署方案分為以下幾類:

Local-machine Solutions

可以理解為單機(jī)版的Kubernetes,非常適合入門Kubernetes學(xué)習(xí)或測試使用。代表的解決方案為Minikube。

Hosted Solutions

Turnkey – Cloud Solutions

Turnkey – On-Premises Solutions

這三種方式可以放在一塊說,他們都是基于云服務(wù)商提供的解決方案,區(qū)別如下:

Hosted方式是指云服務(wù)商搭建的一套公共的Kubernetes,用戶直接使用就好了,集群的搭建、管理、運(yùn)維等操作全部都由云服務(wù)商提供,用戶只要專注于自己的應(yīng)用開發(fā),不用關(guān)注集群的運(yùn)維。這種解決方案特別適合小開發(fā)團(tuán)隊(duì)或小型公司,不僅省去了自有硬件的維護(hù)成本,連系統(tǒng)運(yùn)維人員都可以不用了。

Turnkey–Cloud Solutions指云服務(wù)商幫忙搭建了Kubernetes Master節(jié)點(diǎn),并負(fù)責(zé)維護(hù)其可用性,用戶可以自定義Node節(jié)點(diǎn)加入集群,可以根據(jù)具體需求靈活并只用關(guān)注Node節(jié)點(diǎn)的維護(hù)

Turnkey–On-Premises Solutions方案是指包括Master節(jié)點(diǎn)和Node節(jié)點(diǎn)都由用戶配置及維護(hù),靈活性最高,但資源成本和運(yùn)維成本也最高。
但不管上述哪種方式,云服務(wù)商都已經(jīng)把Kubernetes做了一層包裝,用戶可以用簡單的幾個(gè)命令就可以部署Kubernetes集群,不需要從頭開始一步步安裝。

這三種不同的解決方案,阿里云的文檔容器服務(wù)Kubernetes集群三種形態(tài)對比介紹的很清楚,可以對比著理解:

其中,Serverless對應(yīng)Hosted Solution,托管版對應(yīng)Turnkey – Cloud Solution,專有版對應(yīng)Turnkey – On-Premises Solution。

Custom Solutions

Custom安裝方式顧名思義,是完全由用戶自己安裝維護(hù)Kubernetes,集群服務(wù)器和部署、配置、運(yùn)維都由用戶自己完成。這種方案靈活度最高,相對的,付出的硬件成本和部署、維護(hù)成本也最高。這里的服務(wù)器可以是類似EC2、ECS這種云主機(jī),也可以是本地服務(wù)器、虛擬機(jī)等,甚至基于ARM的嵌入式硬件目前也能運(yùn)行Kubernetes。Custom方式也是一般大公司在生產(chǎn)環(huán)境使用Kubernetes的最佳選擇,一方面,大公司運(yùn)維、開發(fā)團(tuán)隊(duì)人員完善,可以獨(dú)立部署和運(yùn)維Kubernetes集群,并且還可以根據(jù)自己的需求進(jìn)行二開,整合Kubernetes容器部署、日志、監(jiān)控等,打造出適合公司業(yè)務(wù)的容器平臺。另一方面,很多公司考慮容器化業(yè)務(wù)的出發(fā)點(diǎn)之一就是可以優(yōu)化公司現(xiàn)有的硬件資源,把原來跑物理服務(wù)器或虛擬機(jī)的業(yè)務(wù)遷移到容器平臺上來,以提高自有硬件資源利用率及節(jié)省成本。現(xiàn)階段,Custom部署方式除了一步步編譯并部署、配置各組件,還可以通過Kubeadmin簡單快速的部署出生產(chǎn)可用的集群。

雖然官網(wǎng)列出的Kubernetes部署方式很多,但也不用被這么多種部署方式搞糊涂了。所有Kubernetes集群,都少不了關(guān)鍵的基礎(chǔ)組件。(參考Kubernetes概念與術(shù)語中的組件部分),不同的部署方式,無非是這些組件由云服務(wù)商部署好了,用戶只要使用集群就好(Host 或 Turnkey方案),或著被做成容器運(yùn)行以方便快速部署和管理(Minicube、Kubeadm等)。

Minikube 部署 簡介

Minikube是由Kubernetes社區(qū)維護(hù)的單機(jī)版的Kubernetes集群,支持macOS, Linux, and Windows等多種操作系統(tǒng)平臺,使用最新的官方stable版本,并支持Kubernetes的大部分功能,從基礎(chǔ)的容器編排管理,到高級特性如負(fù)載均衡、Ingress,權(quán)限控制等。非常適合作為Kubernetes入門,或開發(fā)測試環(huán)境使用。Minikube實(shí)際是跑在本地的虛擬機(jī)中的,所以,需要先安裝一套Hypervisor。這里以VirtualBox為例。

部署步驟 環(huán)境

OS:macOS Mojave

Hypervisor:VirtualBox 6.0

Minikube的誕生的初衷就是為了能快速部署一個(gè)單機(jī)Kubernetes集群,所以,整個(gè)部署非常簡單,就2條命令搞定:

brew cask install minikube
minikube start

brew cask install直接從官方下載了minikube程序,并加入環(huán)境變量。minikube start雖然只是一條命令,但其實(shí)執(zhí)行了很多步驟,命令執(zhí)行后輸出如下:

$ minikube start
o   minikube v0.35.0 on darwin (amd64)
>   Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
-   "minikube" IP address is 192.168.99.100
-   Configuring Docker as the container runtime ...
-   Preparing Kubernetes environment ...
@   Downloading kubeadm v1.13.4
@   Downloading kubelet v1.13.4
-   Pulling images required by Kubernetes v1.13.4 ...
-   Launching Kubernetes v1.13.4 using kubeadm ... 
:   Waiting for pods: apiserver proxy etcd scheduler controller addon-manager dns
-   Configuring cluster permissions ...
-   Verifying component health .....
+   kubectl is now configured to use "minikube"
=   Done! Thank you for using minikube!

可以看到,minikube start主要做了這些事:

創(chuàng)建了名為minikube的虛擬機(jī),并在虛擬機(jī)中安裝了Docker容器運(yùn)行時(shí)。(實(shí)際就是Docker-machine)

下載了Kubeadm與Kubelet工具

通過Kubeadm部署Kubernetes集群

進(jìn)行各組件間訪問授權(quán)、健康檢查等工作

在用戶操作系統(tǒng)安裝并配置kubectl

所以,minikube實(shí)際上是基于Kubeadm工具來部署Kubernetes的,我們通過minikube ssh命令可以進(jìn)入部署的虛擬機(jī)中,看下里面在跑的容器:

有木有看到很多熟悉的身影,有Master節(jié)點(diǎn)的組件kube-apiserver、kube-scheduler、kube-controller、etcd 容器,以及Node節(jié)點(diǎn)的kube-proxy容器,還有些附加的組件比如Coredns等。沒錯(cuò),Kubeadm實(shí)際就是把Kubernetes各個(gè)組件都容器化了(除了kubelet),而minikube再用虛擬機(jī)把它們都跑在一起。關(guān)于Kubeadm,下一篇文章會詳細(xì)再介紹。

集群測試

Minikube成功運(yùn)行以后,就已經(jīng)在用戶操作系統(tǒng)中安裝了kubectl,并將運(yùn)行的集群變量設(shè)置為了minkube,可以通過kubectl config view 命令查看當(dāng)前的配置:


kubectl的作用集群已經(jīng)被指定為minikube的虛擬機(jī)了。執(zhí)行kubectl get node -o wide確認(rèn)Kubernetes集群節(jié)點(diǎn)信息。


集群名稱為minikube,只有一個(gè)master節(jié)點(diǎn)。

下面我們部署一個(gè)簡單的goweb服務(wù),該容器運(yùn)行時(shí)會暴露8000端口,同時(shí)訪問/info路徑會顯示容器的主機(jī)名。服務(wù)由3個(gè)容器實(shí)例構(gòu)成,并且通過Nodeport方式暴露給用戶。

// 創(chuàng)建一個(gè)名為goweb的Deployment,使用lingtony/goweb鏡像,暴露8000端口,副本pod數(shù)為3
$ kubectl run goweb --image=lingtony/goweb  --port=8000 --replicas=3
// 查看創(chuàng)建的對象,可以看到已經(jīng)有3個(gè)pod在運(yùn)行了
$ kubectl get deployment 
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
goweb   3/3     3            3           2m59s
$ kubectl get po        
NAME                     READY   STATUS    RESTARTS   AGE
goweb-8559474b8c-rphcs   1/1     Running   0          3m2s
goweb-8559474b8c-wzvsl   1/1     Running   0          3m2s
goweb-8559474b8c-xxtlz   1/1     Running   0          3m2s
// 創(chuàng)建svc,通過Nodeport方式暴露服務(wù)
$ kubectl expose deployment goweb --name=gowebsvc --port=80  --target-port=8000  --type=NodePort
service/gowebsvc exposed
// 查看svc,可以看到NodePort隨機(jī)分配的端口為31543
$ kubectl get svc            
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
gowebsvc     NodePort    10.108.29.53           80:31534/TCP   3s
kubernetes   ClusterIP   10.96.0.1              443/TCP        7h58m

接下來,在用戶操作系統(tǒng)就可以通過minikube虛擬機(jī)的ip地址:31543來訪問這個(gè)gowebsvc了,gowebsvc會把80口的請求再負(fù)載均衡到實(shí)際的goweb pod上。更方便的,可以使用minikube server命令直接獲取到svc的訪問地址:

// 通過minikube server命令獲取svc地址
$ minikube service gowebsvc  --url
http://192.168.99.100:31534
// 測試訪問一下

可以看到,每次的訪問請求是都進(jìn)入不同的pod,與kubectl get po命令所示的pod一致。

開啟Kubernetes dashboard

可以通過minikube dashboard命令直接開啟dashboard


macOS會自動在你的默認(rèn)瀏覽器打開,可以通過web查看和管理集群了。

小結(jié)

本文介紹了Kubernetes不同部署方式的區(qū)別,同時(shí)詳細(xì)說明了minikube這個(gè)單節(jié)點(diǎn)Kubernetes工具的部署步驟、以及對部署后的集群做了簡單測試。通過上面的部署分析可以看出,minikube的核心實(shí)際還是依靠kubeadm這個(gè)工具來部署集群的,后面的文章會介紹如何用Kubeadm部署一個(gè)多節(jié)點(diǎn)集群。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/32937.html

相關(guān)文章

  • Kubernetes幾種主流部署方式01-minikube部署

    摘要:代表的解決方案為。雖然官網(wǎng)列出的部署方式很多,但也不用被這么多種部署方式搞糊涂了。雖然只是一條命令,但其實(shí)執(zhí)行了很多步驟命令執(zhí)行后輸出如下可以看到,主要做了這些事創(chuàng)建了名為的虛擬機(jī),并在虛擬機(jī)中安裝了容器運(yùn)行時(shí)。 綜述 Kubernetes集群的組件眾多,要部署一套符合生產(chǎn)環(huán)境的集群不是一件容易的事。好在隨著社區(qū)的快速發(fā)展,特別是在它成為事實(shí)上的容器編排標(biāo)準(zhǔn)以后,基本所有的主流云平臺都...

    Lionad-Morotar 評論0 收藏0
  • Kubernetes幾種主流部署方式02-kubeadm部署1.14版本高可用集群

    摘要:所以,選擇把運(yùn)行直接運(yùn)行在宿主機(jī)中,使用容器部署其他組件。獨(dú)立部署方式所需機(jī)器資源多按照集群的奇數(shù)原則,這種拓?fù)涞募宏P(guān)控制平面最少就要臺宿主機(jī)了。 在上篇文章minikube部署中,有提到Minikube部署Kubernetes的核心就是Kubeadm,這篇文章來詳細(xì)說明下Kubeadm原理及部署步驟。寫這篇文章的時(shí)候,Kubernetes1.14剛剛發(fā)布,所以部署步驟以1.14版為...

    atinosun 評論0 收藏0
  • Kubernetes幾種主流部署方式02-kubeadm部署1.14版本高可用集群

    摘要:所以,選擇把運(yùn)行直接運(yùn)行在宿主機(jī)中,使用容器部署其他組件。獨(dú)立部署方式所需機(jī)器資源多按照集群的奇數(shù)原則,這種拓?fù)涞募宏P(guān)控制平面最少就要臺宿主機(jī)了。 在上篇文章minikube部署中,有提到Minikube部署Kubernetes的核心就是Kubeadm,這篇文章來詳細(xì)說明下Kubeadm原理及部署步驟。寫這篇文章的時(shí)候,Kubernetes1.14剛剛發(fā)布,所以部署步驟以1.14版為...

    superw 評論0 收藏0
  • 從集群外訪問k8s的pod 幾種方式--hostNetwork

    摘要:前言有種方法可以讓集群外訪問運(yùn)行在集群上的應(yīng)用程序。當(dāng)群集上運(yùn)行的應(yīng)用程序數(shù)量增加時(shí),這可能會導(dǎo)致端口沖突。由于這些原因,主機(jī)網(wǎng)絡(luò)不是使您的應(yīng)用程序可以從群集外部訪問的好方法。例如,可以將網(wǎng)絡(luò)插件部署為在集群的所有節(jié)點(diǎn)上設(shè)置的守護(hù)進(jìn)程。 前言 有5種方法可以讓集群外訪問運(yùn)行在Kubernetes集群上的應(yīng)用程序(pod)。接下來我們詳細(xì)討論Kubernetes的hostNetwork,...

    weapon 評論0 收藏0
  • 從集群外訪問k8s的pod 幾種方式--hostNetwork

    摘要:前言有種方法可以讓集群外訪問運(yùn)行在集群上的應(yīng)用程序。當(dāng)群集上運(yùn)行的應(yīng)用程序數(shù)量增加時(shí),這可能會導(dǎo)致端口沖突。由于這些原因,主機(jī)網(wǎng)絡(luò)不是使您的應(yīng)用程序可以從群集外部訪問的好方法。例如,可以將網(wǎng)絡(luò)插件部署為在集群的所有節(jié)點(diǎn)上設(shè)置的守護(hù)進(jìn)程。 前言 有5種方法可以讓集群外訪問運(yùn)行在Kubernetes集群上的應(yīng)用程序(pod)。接下來我們詳細(xì)討論Kubernetes的hostNetwork,...

    ispring 評論0 收藏0

發(fā)表評論

0條評論

浠ラ箍

|高級講師

TA的文章

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