亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

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

浠ラ箍 / 2870人閱讀

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

綜述

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

Kubernetes部署方案對(duì)比

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

Local-machine Solutions

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

Hosted Solutions

Turnkey – Cloud Solutions

Turnkey – On-Premises Solutions

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

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

Turnkey–Cloud Solutions指云服務(wù)商幫忙搭建了Kubernetes Master節(jié)點(diǎn),并負(fù)責(zé)維護(hù)其可用性,用戶(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ù)配置及維護(hù),靈活性最高,但資源成本和運(yùn)維成本也最高。
但不管上述哪種方式,云服務(wù)商都已經(jīng)把Kubernetes做了一層包裝,用戶(hù)可以用簡(jiǎn)單的幾個(gè)命令就可以部署Kubernetes集群,不需要從頭開(kāi)始一步步安裝。

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

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

Custom Solutions

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

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

Minikube 部署 簡(jiǎn)介

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

部署步驟 環(huán)境

OS:macOS Mojave

Hypervisor:VirtualBox 6.0

Minikube的誕生的初衷就是為了能快速部署一個(gè)單機(jī)Kubernetes集群,所以,整個(gè)部署非常簡(jiǎn)單,就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工具

通過(guò)Kubeadm部署Kubernetes集群

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

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

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

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

集群測(cè)試

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


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


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

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

// 創(chuàng)建一個(gè)名為goweb的Deployment,使用lingtony/goweb鏡像,暴露8000端口,副本pod數(shù)為3
$ kubectl run goweb --image=lingtony/goweb  --port=8000 --replicas=3
// 查看創(chuàng)建的對(duì)象,可以看到已經(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,通過(guò)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

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

// 通過(guò)minikube server命令獲取svc地址
$ minikube service gowebsvc  --url
http://192.168.99.100:31534
// 測(cè)試訪(fǎng)問(wèn)一下

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

開(kāi)啟Kubernetes dashboard

可以通過(guò)minikube dashboard命令直接開(kāi)啟dashboard


macOS會(huì)自動(dòng)在你的默認(rèn)瀏覽器打開(kāi),可以通過(guò)web查看和管理集群了。

小結(jié)

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.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)以后,基本所有的主流云平臺(tái)都...

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

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

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

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

    superw 評(píng)論0 收藏0
  • 從集群外訪(fǎng)問(wèn)k8s的pod 幾種方式--hostNetwork

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

    weapon 評(píng)論0 收藏0
  • 從集群外訪(fǎng)問(wèn)k8s的pod 幾種方式--hostNetwork

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

    ispring 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

浠ラ箍

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<