溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

構(gòu)建企業(yè)級Kubernetes平臺,你需要的工具都在這里!

發(fā)布時間:2020-06-21 04:10:41 來源:網(wǎng)絡(luò) 閱讀:766 作者:RancherLabs 欄目:云計算

Kubernetes已經(jīng)成為業(yè)界公認(rèn)的容器編排事實標(biāo)準(zhǔn),它幾乎無所不在?,F(xiàn)在已經(jīng)很難遇到一個從未了解Kubernetes這一技術(shù)的IT從業(yè)者。軟件開發(fā)、測試以及基礎(chǔ)設(shè)施都在其“業(yè)務(wù)范圍”內(nèi)。

 

在創(chuàng)建一個生產(chǎn)就緒的Kubernetes平臺之前,你需要準(zhǔn)備好將應(yīng)用程序從傳統(tǒng)環(huán)境中遷移出來,而這絕不是一項簡單的任務(wù)。你需要一個etcd數(shù)據(jù)庫、kube-controller、kube-scheduler、證書、core-DNS等。它還要投入資源和時間來調(diào)研以確定合適的組件組合以及可靠、自適應(yīng)的測試方法以便在交換或增強組件時可以快速更改。

 

除了創(chuàng)建環(huán)境和管理流程之外,公司戰(zhàn)略戰(zhàn)術(shù)的規(guī)劃也格外重要。很少有公司僅僅為了滿足基礎(chǔ)設(shè)施的需求而開始采用容器。你的容器環(huán)境設(shè)計和技術(shù)棧更可能需要支持新舊計算形態(tài),同時要避免重復(fù)使用資產(chǎn)、資源和費用。(技術(shù)棧和設(shè)計的功能示例如下圖)
 
構(gòu)建企業(yè)級Kubernetes平臺,你需要的工具都在這里!

圖1 搭建容器技術(shù)棧
 
構(gòu)建企業(yè)級Kubernetes平臺,你需要的工具都在這里!

圖2 容器環(huán)境設(shè)計

 

管理和自動化

 

Rancher是一個開源的企業(yè)級Kubernetes管理平臺,為企業(yè)用戶提供Kubernetes-as-a-Service (Kubernetes即服務(wù)),它簡潔直觀的界面風(fēng)格及操作體驗,極大程度解決了業(yè)界遺留已久的Kubernetes原生UI易用性不佳以及學(xué)習(xí)曲線陡峭的問題。通過使用Rancher,你可以遠(yuǎn)離手動創(chuàng)建Kubernetes集群的痛苦并且可以一鍵自動設(shè)置集群。它還提供一套K8s集群所需的功能集,包括配置、訪問控制、全局DNS、災(zāi)備和恢復(fù)、監(jiān)控、日志以及集群升級。使用Ansible將可以為K8s節(jié)點配置 CentOS VMs。
 

日志和監(jiān)控

 

Rancher具有內(nèi)置的FluentD部署,可用于構(gòu)建EFK堆棧??梢詫⒚總€集群配置為把FluentD日志推送到Elasticsearch實例。

 

Kibana是一個開源的可視化平臺,可以極為方便地查看和搜索Elasticsearch日志。

 
Elasticsearch Github repo:

https://github.com/helm/charts/tree/master/stable/elasticsearch

 

Prometheus是一個收集監(jiān)控指標(biāo)的優(yōu)質(zhì)方案,Prometheus server可用于存儲時間序列數(shù)據(jù),alert-manager可用于管理告警,node-exporter可從節(jié)點導(dǎo)出指標(biāo),Kube-state-metrics可以為所有k8s對象生成指標(biāo)。
 

Prometheus Github repo:

https://github.com/helm/charts/tree/master/stable/prometheus

 

然而,Prometheus缺少用戶界面,因此需要Grafana,這是一個數(shù)據(jù)可視化工具。它能夠連接到Prometheus server,提供監(jiān)控用的圖表和dashboard。
 

Grafana Github repo:

https://github.com/helm/charts/tree/master/stable/grafana
 

管理和自動化

 

Rancher是一個開源的企業(yè)級Kubernetes管理平臺,為企業(yè)用戶提供Kubernetes-as-a-Service (Kubernetes即服務(wù)),它簡潔直觀的界面風(fēng)格及操作體驗,極大程度解決了業(yè)界遺留已久的Kubernetes原生UI易用性不佳以及學(xué)習(xí)曲線陡峭的問題。通過使用Rancher,你可以遠(yuǎn)離手動創(chuàng)建Kubernetes集群的痛苦并且可以一鍵自動設(shè)置集群。它還提供一套K8s集群所需的功能集,包括配置、訪問控制、全局DNS、災(zāi)備和恢復(fù)、監(jiān)控、日志以及集群升級。使用Ansible將可以為K8s節(jié)點配置 CentOS VMs。
 

日志和監(jiān)控

 

Rancher具有內(nèi)置的FluentD部署,可用于構(gòu)建EFK堆棧??梢詫⒚總€集群配置為把FluentD日志推送到Elasticsearch實例。

 

Kibana是一個開源的可視化平臺,可以極為方便地查看和搜索Elasticsearch日志。
 

Elasticsearch Github repo:

https://github.com/helm/charts/tree/master/stable/elasticsearch

 

Prometheus是一個收集監(jiān)控指標(biāo)的優(yōu)質(zhì)方案,Prometheus server可用于存儲時間序列數(shù)據(jù),alert-manager可用于管理告警,node-exporter可從節(jié)點導(dǎo)出指標(biāo),Kube-state-metrics可以為所有k8s對象生成指標(biāo)。

 

Prometheus Github repo:

https://github.com/helm/charts/tree/master/stable/prometheus

 
然而,Prometheus缺少用戶界面,因此需要Grafana,這是一個數(shù)據(jù)可視化工具。它能夠連接到Prometheus server,提供監(jiān)控用的圖表和dashboard。

 

Grafana Github repo:

https://github.com/helm/charts/tree/master/stable/grafana
 

持久化存儲

 

在Kubernetes里的一切都是動態(tài)的和無狀態(tài)的,這違背了傳統(tǒng)存儲方案的原則。因此,選擇一個可行的持久化存儲方案是你將面臨的其中一個難題。市場上有許多流行的解決方案,如Ceph、Rook、StarageIO以及Portworx。

 

其中,Portworx具有數(shù)據(jù)移動性、高可用性、獨立性、持久卷的動態(tài)加密配置。在worker節(jié)點上,我們建議anotherdisk(vmdk)通過Portworx創(chuàng)建存儲池。Portworx配備了名為stork的智能調(diào)度程序,可以通過僅在幾個工作節(jié)點上安裝Portworx來節(jié)省許可成本。

 

你可以使用這個helm chart部署Portworx:

https://github.com/portworx/helm/tree/master/charts/portworx
 

容器安全

 

容器安全在一直不斷發(fā)展,由于pod的動態(tài)特性,讓容器內(nèi)發(fā)生的所有進(jìn)程和通信具有可見性和可控制變得至關(guān)重要。Neuvector可以提供主機和pod的連續(xù)運行時保護(hù),它可以通過掃描Kubernetes集群、節(jié)點、pod以及容器鏡像來保護(hù)容器不受安全漏洞的影響。此外,還有一個附帶的優(yōu)勢是能夠為集群提供docker和kubernetes基準(zhǔn)。它還能通過學(xué)習(xí)pod/service的良好行為來成為網(wǎng)絡(luò)防火墻,并且基于此動態(tài)創(chuàng)建安全策略。當(dāng)service在“保護(hù)模式”中時,它能夠防止任何未經(jīng)授權(quán)的進(jìn)程或網(wǎng)絡(luò)通信為該pod或服務(wù)運行。

 

你可使用這個helm chart 部署 Neuvector:

https://github.com/neuvector/neuvector-helm
 

負(fù)載均衡

 

一旦應(yīng)用程序部署在K8S集群中后,有幾個選項可以將它們暴露到集群外部。另一個需要考慮的因素是,如果你是將應(yīng)用程序從傳統(tǒng)基礎(chǔ)架構(gòu)遷移到容器中來,并且希望保留回滾的狀態(tài)或想要在傳統(tǒng)環(huán)境中保留現(xiàn)在已經(jīng)遷移到K8S集群中的服務(wù)。

 

AVI Networks可以提供軟件定義的負(fù)載均衡器,它有一個控制平面和一個服務(wù)平面。這一負(fù)載均衡器提供負(fù)載均衡、流量管理、彈性伸縮以及端到端的自動化K8S服務(wù)。AVI在K8S云上將服務(wù)引擎部署為PODS,它可以處理南北流量(即客戶端和服務(wù)器之間的流量),以及K8S服務(wù)的負(fù)載均衡。

 
每次在K8S云中創(chuàng)建ingress時,AVI都配置了DNS服務(wù)器和IPAM池,可以自動創(chuàng)建虛擬服務(wù)。它將從IPAM分配一個IP,創(chuàng)建一個DNS入口并且配置后端的pod池。AVI同時能夠通過ingress的注釋添加各種HTTP策略以及網(wǎng)絡(luò)安全策略的功能。
 

CI/CD工具

 

由于所有東西及其依賴項都被打包到容器中,因此Kubernetes可以使得持續(xù)部署成為現(xiàn)實,它還能從特定的工作節(jié)點中調(diào)度工作負(fù)載。而滾動更新策略可以零停機執(zhí)行持續(xù)部署。

 

Jenkins是一個十分出色的持續(xù)集成和鏡像構(gòu)建的工具,它提供與Gitlab、Nexus、JFrog artifactory、SonarQube、Neuvector、Fority、Helm和Rancher進(jìn)行進(jìn)行集成,以構(gòu)成一個完整的CI/CD 流水線。

 

Helm打包整個應(yīng)用程序棧到chart中,包括應(yīng)用程序所需的pod、服務(wù)、secert、ingress、持久化存儲等。Helm還能在跨不同環(huán)境的情況下保持部署一致。(如下圖)
 
構(gòu)建企業(yè)級Kubernetes平臺,你需要的工具都在這里!

圖3 容器組件
 

總而言之,現(xiàn)在有很多方法可以幫助構(gòu)建Kubernetes平臺,將應(yīng)用程序部署在K8S集群中變得比以往任何時候都更容易。我希望這能讓你更好地了解需要關(guān)注的領(lǐng)域以及知道哪些工具或平臺能夠讓K8S集群在企業(yè)中成為現(xiàn)實。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI