Kubernetes已經(jīng)成為業(yè)界公認(rèn)的容器編排事實(shí)標(biāo)準(zhǔn),它幾乎無(wú)所不在。現(xiàn)在已經(jīng)很難遇到一個(gè)從未了解Kubernetes這一技術(shù)的IT從業(yè)者。軟件開發(fā)、測(cè)試以及基礎(chǔ)設(shè)施都在其“業(yè)務(wù)范圍”內(nèi)。
在創(chuàng)建一個(gè)生產(chǎn)就緒的Kubernetes平臺(tái)之前,你需要準(zhǔn)備好將應(yīng)用程序從傳統(tǒng)環(huán)境中遷移出來(lái),而這絕不是一項(xiàng)簡(jiǎn)單的任務(wù)。你需要一個(gè)etcd數(shù)據(jù)庫(kù)、kube-controller、kube-scheduler、證書、core-DNS等。它還要投入資源和時(shí)間來(lái)調(diào)研以確定合適的組件組合以及可靠、自適應(yīng)的測(cè)試方法以便在交換或增強(qiáng)組件時(shí)可以快速更改。
除了創(chuàng)建環(huán)境和管理流程之外,公司戰(zhàn)略戰(zhàn)術(shù)的規(guī)劃也格外重要。很少有公司僅僅為了滿足基礎(chǔ)設(shè)施的需求而開始采用容器。你的容器環(huán)境設(shè)計(jì)和技術(shù)棧更可能需要支持新舊計(jì)算形態(tài),同時(shí)要避免重復(fù)使用資產(chǎn)、資源和費(fèi)用。(技術(shù)棧和設(shè)計(jì)的功能示例如下圖)
圖1 搭建容器技術(shù)棧
圖2 容器環(huán)境設(shè)計(jì)
Rancher是一個(gè)開源的企業(yè)級(jí)Kubernetes管理平臺(tái),為企業(yè)用戶提供Kubernetes-as-a-Service (Kubernetes即服務(wù)),它簡(jiǎn)潔直觀的界面風(fēng)格及操作體驗(yàn),極大程度解決了業(yè)界遺留已久的Kubernetes原生UI易用性不佳以及學(xué)習(xí)曲線陡峭的問(wèn)題。通過(guò)使用Rancher,你可以遠(yuǎn)離手動(dòng)創(chuàng)建Kubernetes集群的痛苦并且可以一鍵自動(dòng)設(shè)置集群。它還提供一套K8s集群所需的功能集,包括配置、訪問(wèn)控制、全局DNS、災(zāi)備和恢復(fù)、監(jiān)控、日志以及集群升級(jí)。使用Ansible將可以為K8s節(jié)點(diǎn)配置 CentOS VMs。
Rancher具有內(nèi)置的FluentD部署,可用于構(gòu)建EFK堆棧。可以將每個(gè)集群配置為把FluentD日志推送到Elasticsearch實(shí)例。
Kibana是一個(gè)開源的可視化平臺(tái),可以極為方便地查看和搜索Elasticsearch日志。
Elasticsearch Github repo:
https://github.com/helm/charts/tree/master/stable/elasticsearch
Prometheus是一個(gè)收集監(jiān)控指標(biāo)的優(yōu)質(zhì)方案,Prometheus server可用于存儲(chǔ)時(shí)間序列數(shù)據(jù),alert-manager可用于管理告警,node-exporter可從節(jié)點(diǎn)導(dǎo)出指標(biāo),Kube-state-metrics可以為所有k8s對(duì)象生成指標(biāo)。
Prometheus Github repo:
https://github.com/helm/charts/tree/master/stable/prometheus
然而,Prometheus缺少用戶界面,因此需要Grafana,這是一個(gè)數(shù)據(jù)可視化工具。它能夠連接到Prometheus server,提供監(jiān)控用的圖表和dashboard。
Grafana Github repo:
https://github.com/helm/charts/tree/master/stable/grafana
Rancher是一個(gè)開源的企業(yè)級(jí)Kubernetes管理平臺(tái),為企業(yè)用戶提供Kubernetes-as-a-Service (Kubernetes即服務(wù)),它簡(jiǎn)潔直觀的界面風(fēng)格及操作體驗(yàn),極大程度解決了業(yè)界遺留已久的Kubernetes原生UI易用性不佳以及學(xué)習(xí)曲線陡峭的問(wèn)題。通過(guò)使用Rancher,你可以遠(yuǎn)離手動(dòng)創(chuàng)建Kubernetes集群的痛苦并且可以一鍵自動(dòng)設(shè)置集群。它還提供一套K8s集群所需的功能集,包括配置、訪問(wèn)控制、全局DNS、災(zāi)備和恢復(fù)、監(jiān)控、日志以及集群升級(jí)。使用Ansible將可以為K8s節(jié)點(diǎn)配置 CentOS VMs。
Rancher具有內(nèi)置的FluentD部署,可用于構(gòu)建EFK堆棧。可以將每個(gè)集群配置為把FluentD日志推送到Elasticsearch實(shí)例。
Kibana是一個(gè)開源的可視化平臺(tái),可以極為方便地查看和搜索Elasticsearch日志。
Elasticsearch Github repo:
https://github.com/helm/charts/tree/master/stable/elasticsearch
Prometheus是一個(gè)收集監(jiān)控指標(biāo)的優(yōu)質(zhì)方案,Prometheus server可用于存儲(chǔ)時(shí)間序列數(shù)據(jù),alert-manager可用于管理告警,node-exporter可從節(jié)點(diǎn)導(dǎo)出指標(biāo),Kube-state-metrics可以為所有k8s對(duì)象生成指標(biāo)。
Prometheus Github repo:
https://github.com/helm/charts/tree/master/stable/prometheus
然而,Prometheus缺少用戶界面,因此需要Grafana,這是一個(gè)數(shù)據(jù)可視化工具。它能夠連接到Prometheus server,提供監(jiān)控用的圖表和dashboard。
Grafana Github repo:
https://github.com/helm/charts/tree/master/stable/grafana
在Kubernetes里的一切都是動(dòng)態(tài)的和無(wú)狀態(tài)的,這違背了傳統(tǒng)存儲(chǔ)方案的原則。因此,選擇一個(gè)可行的持久化存儲(chǔ)方案是你將面臨的其中一個(gè)難題。市場(chǎng)上有許多流行的解決方案,如Ceph、Rook、StarageIO以及Portworx。
其中,Portworx具有數(shù)據(jù)移動(dòng)性、高可用性、獨(dú)立性、持久卷的動(dòng)態(tài)加密配置。在worker節(jié)點(diǎn)上,我們建議anotherdisk(vmdk)通過(guò)Portworx創(chuàng)建存儲(chǔ)池。Portworx配備了名為stork的智能調(diào)度程序,可以通過(guò)僅在幾個(gè)工作節(jié)點(diǎn)上安裝Portworx來(lái)節(jié)省許可成本。
你可以使用這個(gè)helm chart部署Portworx:
https://github.com/portworx/helm/tree/master/charts/portworx
容器安全在一直不斷發(fā)展,由于pod的動(dòng)態(tài)特性,讓容器內(nèi)發(fā)生的所有進(jìn)程和通信具有可見性和可控制變得至關(guān)重要。Neuvector可以提供主機(jī)和pod的連續(xù)運(yùn)行時(shí)保護(hù),它可以通過(guò)掃描Kubernetes集群、節(jié)點(diǎn)、pod以及容器鏡像來(lái)保護(hù)容器不受安全漏洞的影響。此外,還有一個(gè)附帶的優(yōu)勢(shì)是能夠?yàn)榧禾峁ヾocker和kubernetes基準(zhǔn)。它還能通過(guò)學(xué)習(xí)pod/service的良好行為來(lái)成為網(wǎng)絡(luò)防火墻,并且基于此動(dòng)態(tài)創(chuàng)建安全策略。當(dāng)service在“保護(hù)模式”中時(shí),它能夠防止任何未經(jīng)授權(quán)的進(jìn)程或網(wǎng)絡(luò)通信為該pod或服務(wù)運(yùn)行。
你可使用這個(gè)helm chart 部署 Neuvector:
https://github.com/neuvector/neuvector-helm
一旦應(yīng)用程序部署在K8S集群中后,有幾個(gè)選項(xiàng)可以將它們暴露到集群外部。另一個(gè)需要考慮的因素是,如果你是將應(yīng)用程序從傳統(tǒng)基礎(chǔ)架構(gòu)遷移到容器中來(lái),并且希望保留回滾的狀態(tài)或想要在傳統(tǒng)環(huán)境中保留現(xiàn)在已經(jīng)遷移到K8S集群中的服務(wù)。
AVI Networks可以提供軟件定義的負(fù)載均衡器,它有一個(gè)控制平面和一個(gè)服務(wù)平面。這一負(fù)載均衡器提供負(fù)載均衡、流量管理、彈性伸縮以及端到端的自動(dòng)化K8S服務(wù)。AVI在K8S云上將服務(wù)引擎部署為PODS,它可以處理南北流量(即客戶端和服務(wù)器之間的流量),以及K8S服務(wù)的負(fù)載均衡。
每次在K8S云中創(chuàng)建ingress時(shí),AVI都配置了DNS服務(wù)器和IPAM池,可以自動(dòng)創(chuàng)建虛擬服務(wù)。它將從IPAM分配一個(gè)IP,創(chuàng)建一個(gè)DNS入口并且配置后端的pod池。AVI同時(shí)能夠通過(guò)ingress的注釋添加各種HTTP策略以及網(wǎng)絡(luò)安全策略的功能。
由于所有東西及其依賴項(xiàng)都被打包到容器中,因此Kubernetes可以使得持續(xù)部署成為現(xiàn)實(shí),它還能從特定的工作節(jié)點(diǎn)中調(diào)度工作負(fù)載。而滾動(dòng)更新策略可以零停機(jī)執(zhí)行持續(xù)部署。
Jenkins是一個(gè)十分出色的持續(xù)集成和鏡像構(gòu)建的工具,它提供與Gitlab、Nexus、JFrog artifactory、SonarQube、Neuvector、Fority、Helm和Rancher進(jìn)行進(jìn)行集成,以構(gòu)成一個(gè)完整的CI/CD 流水線。
Helm打包整個(gè)應(yīng)用程序棧到chart中,包括應(yīng)用程序所需的pod、服務(wù)、secert、ingress、持久化存儲(chǔ)等。Helm還能在跨不同環(huán)境的情況下保持部署一致。(如下圖)
圖3 容器組件
總而言之,現(xiàn)在有很多方法可以幫助構(gòu)建Kubernetes平臺(tái),將應(yīng)用程序部署在K8S集群中變得比以往任何時(shí)候都更容易。我希望這能讓你更好地了解需要關(guān)注的領(lǐng)域以及知道哪些工具或平臺(tái)能夠讓K8S集群在企業(yè)中成為現(xiàn)實(shí)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱:構(gòu)建企業(yè)級(jí)Kubernetes平臺(tái),你需要的工具都在這里!-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.chinadenli.net/article46/dcijeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、定制網(wǎng)站、小程序開發(fā)、標(biāo)簽優(yōu)化、靜態(tài)網(wǎng)站、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容