国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【云原生】Kubernetes容器編排工具

這篇具有很好參考價(jià)值的文章主要介紹了【云原生】Kubernetes容器編排工具。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1. K8S介紹

1.1 k8s的由來

下載地址

1.2 docker編排與k8s編排相比

1.3 傳統(tǒng)后端部署與k8s 的對比

傳統(tǒng)部署

k8s部署?

?2. k8s的集群架構(gòu)與組件

(1) Kube-apiserver

(2)Kube-controller-manager?

(3)Kube-scheduler??

2.2?k8s的配置存儲(chǔ)中心

2.3? k8s的Node 組件?

?(1)Kubelet?

?(2)Kube-Proxy?

?(3)容器引擎(docker或rocket)

3.?K8s 核心概念

3.1? pod的理解運(yùn)用 與創(chuàng)建過程?

K8S創(chuàng)建Pod的工作流程

?Pod 控制器?

3.2?Label標(biāo)簽

3.3?Label 選擇器(Label selector)

3.4?Service

3.5?Ingress?

3.5?Name??

3.6?Namespace

4.常見的K8S部署方式

?4.1 k8s的常見部署方式

?4.2 k8s部署 二進(jìn)制與高可用的區(qū)別


1. K8S介紹

1.1 k8s的由來

Kubernetes,詞根源于希臘語的 舵手、飛行員。在國內(nèi)又稱k8s(因?yàn)閗和s之間有8個(gè)字母,所以得名。“國內(nèi)程序員的幽默”)。用于自動(dòng)部署、擴(kuò)展和管理“容器化(containerized)應(yīng)用程序”的開源系統(tǒng)??梢岳斫獬?K8S 是負(fù)責(zé)自動(dòng)化運(yùn)維管理多個(gè)容器化程序(比如 Docker)的集群,是一個(gè)生態(tài)極其豐富的容器編排框架工具。

K8S由google的Borg系統(tǒng)(博格系統(tǒng),google內(nèi)部使用的大規(guī)模容器編排工具)作為原型,后經(jīng)GO語言延用Borg的思路重寫并捐獻(xiàn)給CNCF基金會(huì)開源。

云原生基金會(huì)(CNCF)于2015年12月成立,隸屬于Linux基金會(huì)。CNCF孵化的第一個(gè)項(xiàng)目就是Kubernetes,隨著容器的廣泛使用,Kubernetes已經(jīng)成為容器編排工具的事實(shí)標(biāo)準(zhǔn)。

【云原生】Kubernetes容器編排工具,云原生,kubernetes,容器,云計(jì)算,k8s,安全架構(gòu),運(yùn)維開發(fā)


下載地址

官網(wǎng):
https://kubernetes.io

GitHub:
https://github.com/kubernetes/kubernetes

1.2 docker編排與k8s編排相比

  • 只能對單機(jī)使用,無集群主從等冗余
  • 當(dāng)容器的數(shù)量大時(shí),管理成本高
  • 沒有容災(zāi)、自愈機(jī)制
  • 無預(yù)設(shè)編排,無法大規(guī)模調(diào)度
  • 無統(tǒng)一管理配置中心
  • 無圖形化界面
  • 無生命周期管理中心

1.3 傳統(tǒng)后端部署與k8s 的對比

?傳統(tǒng)部署

傳統(tǒng)的后端部署辦法:把程序包(包括可執(zhí)行二進(jìn)制文件、配置文件等)放到服務(wù)器上,接著運(yùn)行啟動(dòng)腳本把程序跑起來,同時(shí)啟動(dòng)守護(hù)腳本定期檢查程序運(yùn)行狀態(tài)、必要的話重新拉起程序。

此時(shí)一旦服務(wù)的請求量上來,已部署的服務(wù)響應(yīng)不過來,傳統(tǒng)的做法往往是,如果請求量、內(nèi)存、CPU超過閾值做了告警,運(yùn)維人員馬上再加幾臺(tái)服務(wù)器,部署好服務(wù)之后,接入負(fù)載均衡來分擔(dān)已有服務(wù)的壓力。這樣問題就出現(xiàn)了:從監(jiān)控告警到部署服務(wù),中間需要人力介入! 沒有辦法自動(dòng)完成服務(wù)的部署、更新、卸載和擴(kuò)容、縮容【云原生】Kubernetes容器編排工具,云原生,kubernetes,容器,云計(jì)算,k8s,安全架構(gòu),運(yùn)維開發(fā)

k8s部署?

上述傳統(tǒng)后端部署的問題,就是k8s所要解決的問題。自動(dòng)化運(yùn)維管理容器化(Docker)程序。K8S是Google開源的容器集群管理系統(tǒng),在Docker等容器技術(shù)的基礎(chǔ)上,為容器化的應(yīng)用提供部署運(yùn)行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動(dòng)態(tài)伸縮等一系列完整功能,提高了大規(guī)模容器集群管理的便捷性

2. k8s的集群架構(gòu)與組件?

(1) Kube-apiserver

用于暴露 Kubernetes API,任何資源請求或調(diào)用操作都是通過 kube-apiserver 提供的接口進(jìn)行。以 HTTP Restful API 提供接口服務(wù),所有對象資源的增刪改查和監(jiān)聽操作都交給 API Server 處理后再提交給 Etcd 存儲(chǔ)。

可以理解成 API Server 是 K8S 的請求入口服務(wù)。API Server 負(fù)責(zé)接收 K8S 所有請求(來自 UI 界面或者 CLI 命令行工具), 然后根據(jù)用戶的具體請求,去通知其他組件干活??梢哉f API Server 是 K8S 集群架構(gòu)的大腦。

(2)Kube-controller-manager?

運(yùn)行管理控制器,是 K8S 集群中處理常規(guī)任務(wù)的后臺(tái)線程,是 K8S 集群里所有資源對象的自動(dòng)化控制中心。
在 K8S 集群中,一個(gè)資源對應(yīng)一個(gè)控制器,而 Controller manager 就是負(fù)責(zé)管理這些控制器的。

由一系列控制器組成,通過 API Server 監(jiān)控整個(gè)集群的狀態(tài),并確保集群處于預(yù)期的工作狀態(tài),比如當(dāng)某個(gè) Node 意外宕機(jī)時(shí),Controller Manager 會(huì)及時(shí)發(fā)現(xiàn)并執(zhí)行自動(dòng)化修復(fù)流程,確保集群始終處于預(yù)期的工作狀態(tài)。

  • 這些控制器主要包括:
  • Node Controller(節(jié)點(diǎn)控制器):負(fù)責(zé)在節(jié)點(diǎn)出現(xiàn)故障時(shí)發(fā)現(xiàn)和響應(yīng)。
  • Replication Controller(副本控制器):負(fù)責(zé)保證集群中一個(gè) RC(資源對象 Replication Controller)所關(guān)聯(lián)的 Pod 副本數(shù)始終保持預(yù)設(shè)值。可以理解成確保集群中有且僅有 N 個(gè) Pod 實(shí)例,N 是 RC 中定義的 Pod 副本數(shù)量。
  • Endpoints Controller(端點(diǎn)控制器):填充端點(diǎn)對象(即連接 Services 和 Pods),負(fù)責(zé)監(jiān)聽 Service 和對應(yīng)的 Pod 副本的變化。 可以理解端點(diǎn)是一個(gè)服務(wù)暴露出來的訪問點(diǎn),如果需要訪問一個(gè)服務(wù),則必須知道它的 endpoint。
  • Service Account & Token Controllers(服務(wù)帳戶和令牌控制器):為新的命名空間創(chuàng)建默認(rèn)帳戶和 API 訪問令牌。
  • ResourceQuota Controller(資源配額控制器):確保指定的資源對象在任何時(shí)候都不會(huì)超量占用系統(tǒng)物理資源。
  • Namespace Controller(命名空間控制器):管理 namespace 的生命周期。
  • Service Controller(服務(wù)控制器):屬于 K8S 集群與外部的云平臺(tái)之間的一個(gè)接口控制器。

(3)Kube-scheduler??

是負(fù)責(zé)資源調(diào)度的進(jìn)程,根據(jù)調(diào)度算法為新創(chuàng)建的 Pod 選擇一個(gè)合適的 Node 節(jié)點(diǎn)。

可以理解成 K8S 所有 Node 節(jié)點(diǎn)的調(diào)度器。當(dāng)用戶要部署服務(wù)時(shí),Scheduler 會(huì)根據(jù)調(diào)度算法選擇最合適的 Node 節(jié)點(diǎn)來部署 Pod。
調(diào)度算法:

? ?預(yù)選策略(predicate)
? 優(yōu)選策略(priorities)

API Server 接收到請求創(chuàng)建一批 Pod ,API Server 會(huì)讓 Controller-manager 按照所預(yù)設(shè)的模板去創(chuàng)建 Pod,Controller-manager 會(huì)通過 API Server 去找 Scheduler 為新創(chuàng)建的 Pod 選擇最適合的 Node 節(jié)點(diǎn)。

比如運(yùn)行這個(gè) Pod 需要 2C4G 的資源,Scheduler 會(huì)通過預(yù)選策略過濾掉不滿足策略的 Node 節(jié)點(diǎn)。Node 節(jié)點(diǎn)中還剩多少資源是通過匯報(bào)給 API Server 存儲(chǔ)在 etcd 里,API Server 會(huì)調(diào)用一個(gè)方法找到 etcd 里所有 Node 節(jié)點(diǎn)的剩余資源,再對比 Pod 所需要的資源,如果某個(gè) Node 節(jié)點(diǎn)的資源不足或者不滿足 預(yù)選策略的條件則無法通過預(yù)選。預(yù)選階段篩選出的節(jié)點(diǎn),在優(yōu)選階段會(huì)根據(jù)優(yōu)選策略為通過預(yù)選的 Node 節(jié)點(diǎn)進(jìn)行打分排名, 選擇得分最高的 Node。例如,資源越富裕、負(fù)載越小的 Node 可能具有越高的排名。

2.2?k8s的配置存儲(chǔ)中心

etcd是k8s的存儲(chǔ)服務(wù)中心

?etcd 是分布式鍵值存儲(chǔ)系統(tǒng),存儲(chǔ)了 K8S 的關(guān)鍵配置和用戶配置,K8S 中僅 API Server 才具備讀寫權(quán)限,其他組件必須通過 API Server 的接口才能讀寫數(shù)據(jù)。

2.3? k8s的Node 組件?

(1)Kubelet?

Node 節(jié)點(diǎn)的監(jiān)視器,以及與 Master 節(jié)點(diǎn)的通訊器。Kubelet 是 Master 節(jié)點(diǎn)安插在 Node 節(jié)點(diǎn)上的“眼線”,它會(huì)定時(shí)向 API Server 匯報(bào)自己 Node 節(jié)點(diǎn)上運(yùn)行的服務(wù)的狀態(tài),并接受來自 Master 節(jié)點(diǎn)的指示采取調(diào)整措施。

從 Master 節(jié)點(diǎn)獲取自己節(jié)點(diǎn)上 Pod 的期望狀態(tài)(比如運(yùn)行什么容器、運(yùn)行的副本數(shù)量、網(wǎng)絡(luò)或者存儲(chǔ)如何配置等), 直接跟容器引擎交互實(shí)現(xiàn)容器的生命周期管理,如果自己節(jié)點(diǎn)上 Pod 的狀態(tài)與期望狀態(tài)不一致,則調(diào)用對應(yīng)的容器平臺(tái)接口(即 docker 的接口)達(dá)到這個(gè)狀態(tài)。

管理鏡像和容器的清理工作,保證節(jié)點(diǎn)上鏡像不會(huì)占滿磁盤空間,退出的容器不會(huì)占用太多資源。

?總之,在 Kubernetes 集群中,在每個(gè) Node(又稱 Worker Node)上都會(huì)啟動(dòng)一個(gè) kubelet 服務(wù)進(jìn)程。該進(jìn)程用于處理 Master 下發(fā)到本節(jié)點(diǎn)的任務(wù),管理 Pod 及 Pod 中的容器。每個(gè) kubelet 進(jìn)程都會(huì)在 API Server 上注冊節(jié)點(diǎn)自身的信息,定期向 Master 匯報(bào)節(jié)點(diǎn)資源的使用情況,并通過 cAdvisor 監(jiān)控容器和節(jié)點(diǎn)資源。

?(2)Kube-Proxy?

在每個(gè) Node 節(jié)點(diǎn)上實(shí)現(xiàn) Pod 網(wǎng)絡(luò)代理,是 Kubernetes Service 資源的載體,負(fù)責(zé)維護(hù)網(wǎng)絡(luò)規(guī)則和四層負(fù)載均衡工作。 負(fù)責(zé)寫入規(guī)則至iptables、ipvs實(shí)現(xiàn)服務(wù)映射訪問的。

Kube-Proxy 本身不是直接給 Pod 提供網(wǎng)絡(luò),Pod 的網(wǎng)絡(luò)是由 Kubelet 提供的,Kube-Proxy 實(shí)際上維護(hù)的是虛擬的 Pod 集群網(wǎng)絡(luò)。
Kube-apiserver 通過監(jiān)控 Kube-Proxy 進(jìn)行對 Kubernetes Service 的更新和端點(diǎn)的維護(hù)。

在 K8S 集群中微服務(wù)的負(fù)載均衡是由 Kube-proxy 實(shí)現(xiàn)的。Kube-proxy 是 K8S 集群內(nèi)部的負(fù)載均衡器。它是一個(gè)分布式代理服務(wù)器,在 K8S 的每個(gè)節(jié)點(diǎn)上都會(huì)運(yùn)行一個(gè) Kube-proxy 組件。

?(3)容器引擎(docker或rocket)

容器引擎,運(yùn)行容器,負(fù)責(zé)本機(jī)的容器創(chuàng)建和管理工作。
當(dāng) kubernetes 把 pod 調(diào)度到節(jié)點(diǎn)上,節(jié)點(diǎn)上的 kubelet會(huì)指示 docker 啟動(dòng)特定的容器。接著,kubelet 會(huì)通過 docker 持續(xù)地收集容器的信息, 然后提交到主節(jié)點(diǎn)上。docker 會(huì)如往常一樣拉取容器鏡像、啟動(dòng)或停止容器。不同點(diǎn)僅僅在于這是由自動(dòng)化系統(tǒng)控制而非管理員在每個(gè)節(jié)點(diǎn)上手動(dòng)操作的。?

3.?K8s 核心概念

Kubernetes 包含多種類型的資源對象:Pod、Label、Service、Replication Controller 等。

所有的資源對象都可以通過 Kubernetes 提供的 kubectl 工具進(jìn)行增、刪、改、查等操作,并將其保存在 etcd 中持久化存儲(chǔ)。

Kubernets其實(shí)是一個(gè)高度自動(dòng)化的資源控制系統(tǒng),通過跟蹤對比etcd存儲(chǔ)里保存的資源期望狀態(tài)與當(dāng)前環(huán)境中的實(shí)際資源狀態(tài)的差異,來實(shí)現(xiàn)自動(dòng)控制和自動(dòng)糾錯(cuò)等高級功能。

【云原生】Kubernetes容器編排工具,云原生,kubernetes,容器,云計(jì)算,k8s,安全架構(gòu),運(yùn)維開發(fā)

3.1? pod的理解運(yùn)用 與創(chuàng)建過程?

Pod是 Kubernetes 創(chuàng)建或部署的最小/最簡單的基本單位,一個(gè) Pod 代表集群上正在運(yùn)行的一個(gè)進(jìn)程??梢园?Pod 理解成豌豆莢,而同一 Pod 內(nèi)的每個(gè)容器是一顆顆豌豆。一個(gè) Pod 由一個(gè)或多個(gè)容器組成,Pod 中容器共享網(wǎng)絡(luò)、存儲(chǔ)和計(jì)算資源,在同一臺(tái) Docker 主機(jī)上運(yùn)行。

一個(gè) Pod 里可以運(yùn)行多個(gè)容器,又叫邊車模式(SideCar)。而在生產(chǎn)環(huán)境中一般都是單個(gè)容器或者具有強(qiáng)關(guān)聯(lián)互補(bǔ)的多個(gè)容器組成一個(gè) Pod。同一個(gè) Pod 之間的容器可以通過 localhost 互相訪問,并且可以掛載 Pod 內(nèi)所有的數(shù)據(jù)卷;但是不同的 Pod 之間的容器不能用 localhost 訪問,也不能掛載其他 Pod 的數(shù)據(jù)卷。

K8S創(chuàng)建Pod的工作流程

(1)用戶通過客戶端發(fā)送創(chuàng)建pod的請求到master節(jié)點(diǎn)上的apiserver

(2)apiserver會(huì)先把相關(guān)的請求信息寫入到etcd中,再找controller-manager

? ? ? ? ? 根據(jù)預(yù)設(shè)的資源模板創(chuàng)建pod清單

(3)然后controller-manager會(huì)通過apiserver去找scheduler

? ? ? ? ? 為新創(chuàng)建的pod選擇最適合的Node節(jié)點(diǎn)

(4)scheduler會(huì)通過調(diào)度算法的預(yù)選策略和優(yōu)選策略篩選出最適合的Node節(jié)點(diǎn)

(5)然后再通過apiserver找到對應(yīng)的Node節(jié)點(diǎn)上的kubelet去創(chuàng)建和管理pod

(6)kubelet會(huì)直接跟容器引擎交互來管理容器的生命周期

(7)用戶通過創(chuàng)建承載在kube-proxy上的service資源,寫入相關(guān)的網(wǎng)絡(luò)規(guī)則,

? ? ? ? ? ?實(shí)現(xiàn)對pod的服務(wù)發(fā)現(xiàn)和負(fù)載均衡

【云原生】Kubernetes容器編排工具,云原生,kubernetes,容器,云計(jì)算,k8s,安全架構(gòu),運(yùn)維開發(fā)

?Pod 控制器?

Pod 控制器是 Pod 啟動(dòng)的一種模版,用來保證在K8S里啟動(dòng)的 Pod 應(yīng)始終按照用戶的預(yù)期運(yùn)行(副本數(shù)、生命周期、健康狀態(tài)檢查等)。

K8S 內(nèi)提供了眾多的 Pod 控制器,常用的有以下幾種:

? Deployment:無狀態(tài)應(yīng)用部署。Deployment 的作用是管理和控制 Pod 和 ReplicaSet,管控它們運(yùn)行在用戶期望的狀態(tài)中。

? Replicaset:確保預(yù)期的 Pod 副本數(shù)量。ReplicaSet 的作用就是管理和控制 Pod,管控他們好好干活。但是,ReplicaSet 受控于 Deployment。

? Daemonset:確保所有節(jié)點(diǎn)運(yùn)行同一類 Pod,保證每個(gè)節(jié)點(diǎn)上都有一個(gè)此類 Pod 運(yùn)行,通常用于實(shí)現(xiàn)系統(tǒng)級后臺(tái)任務(wù)。

? Statefulset:有狀態(tài)應(yīng)用部署

? Job:一次性任務(wù)。根據(jù)用戶的設(shè)置,Job 管理的 Pod 把任務(wù)成功完成就自動(dòng)退出了。

? Cronjob:周期性計(jì)劃性任務(wù)

3.2?Label標(biāo)簽

標(biāo)簽,是 K8S 特色的管理方式,便于分類管理資源對象。
Label 可以附加到各種資源對象上,例如 Node、Pod、Service、RC 等,用于關(guān)聯(lián)對象、查詢和篩選。
一個(gè) Label 是一個(gè) key-value 的鍵值對,其中 key 與 value 由用戶自己指定。
一個(gè)資源對象可以定義任意數(shù)量的Label,同一個(gè)Label 也可以被添加到任意數(shù)量的資源對象中,也可以在對象創(chuàng)建后動(dòng)態(tài)添加或者刪除。
可以通過給指定的資源對象捆綁一個(gè)或多個(gè)不同的 Label,來實(shí)現(xiàn)多維度的資源分組管理功能。

與 Label 類似的,還有 Annotation(注釋)。
區(qū)別在于有效的標(biāo)簽值必須為63個(gè)字符或更少,并且必須為空或以字母數(shù)字字符([a-z0-9A-Z])開頭和結(jié)尾,中間可以包含橫杠(-)、下劃線(_)、點(diǎn)(.)和字母或數(shù)字。注釋值則沒有字符長度限制。

3.3?Label 選擇器(Label selector)

給某個(gè)資源對象定義一個(gè) Label,就相當(dāng)于給它打了一個(gè)標(biāo)簽;隨后可以通過標(biāo)簽選擇器(Label selector)查詢和篩選擁有某些 Label 的資源對象。
標(biāo)簽選擇器目前有兩種:基于等值關(guān)系(等于、不等于)和基于集合關(guān)系(屬于、不屬于、存在)。?

3.4?Service

在K8S的集群里,雖然每個(gè)Pod會(huì)被分配一個(gè)單獨(dú)的IP地址,但由于Pod是有生命周期的(它們可以被創(chuàng)建,而且銷毀之后不會(huì)再啟動(dòng)),隨時(shí)可能會(huì)因?yàn)闃I(yè)務(wù)的變更,導(dǎo)致這個(gè) IP 地址也會(huì)隨著 Pod 的銷毀而消失。

Service 就是用來解決這個(gè)問題的核心概念。K8S 中的 Service 并不是我們常說的“服務(wù)”的含義,而更像是網(wǎng)關(guān)層,可以看作一組提供相同服務(wù)的Pod的對外訪問接口、流量均衡器。
Service 作用于哪些 Pod 是通過標(biāo)簽選擇器來定義的。
在 K8S 集群中,Service 可以看作一組提供相同服務(wù)的 Pod 的對外訪問接口??蛻舳诵枰L問的服務(wù)就是 Service 對象。每個(gè) Service 都有一個(gè)固定的虛擬 ip(這個(gè) ip 也被稱為 Cluster IP),自動(dòng)并且動(dòng)態(tài)地綁定后端的 Pod,所有的網(wǎng)絡(luò)請求直接訪問 Service 的虛擬 ip,Service 會(huì)自動(dòng)向后端做轉(zhuǎn)發(fā)。
Service 除了提供穩(wěn)定的對外訪問方式之外,還能起到負(fù)載均衡(Load Balance)的功能,自動(dòng)把請求流量分布到后端所有的服務(wù)上,Service 可以做到對客戶透明地進(jìn)行水平擴(kuò)展(scale)。
而實(shí)現(xiàn) service 這一功能的關(guān)鍵,就是 kube-proxy。kube-proxy 運(yùn)行在每個(gè)節(jié)點(diǎn)上,監(jiān)聽 API Server 中服務(wù)對象的變化, 可通過以下三種流量調(diào)度模式: userspace(廢棄)、iptables(瀕臨廢棄)、ipvs(推薦,性能最好)來實(shí)現(xiàn)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)。

Service 是 K8S 服務(wù)的核心,屏蔽了服務(wù)細(xì)節(jié),統(tǒng)一對外暴露服務(wù)接口,真正做到了“微服務(wù)”。比如我們的一個(gè)服務(wù) A,部署了 3 個(gè)副本,也就是 3 個(gè) Pod; 對于用戶來說,只需要關(guān)注一個(gè) Service 的入口就可以,而不需要操心究竟應(yīng)該請求哪一個(gè) Pod。
優(yōu)勢非常明顯:一方面外部用戶不需要感知因?yàn)?Pod 上服務(wù)的意外崩潰、K8S 重新拉起 Pod 而造成的 IP 變更, 外部用戶也不需要感知因升級、變更服務(wù)帶來的 Pod 替換而造成的 IP 變化。

3.5?Ingress?

Service 主要負(fù)責(zé) K8S 集群內(nèi)部的網(wǎng)絡(luò)拓?fù)?,那么集群外部怎么訪問集群內(nèi)部呢?這個(gè)時(shí)候就需要 Ingress 了。Ingress 是整個(gè) K8S 集群的接入層,負(fù)責(zé)集群內(nèi)外通訊。
Ingress 是 K8S 集群里工作在 OSI 網(wǎng)絡(luò)參考模型下,第7層的應(yīng)用,對外暴露的接囗,典型的訪問方式是 http/https。
Service 只能進(jìn)行第四層的流量調(diào)度,表現(xiàn)形式是 ip+port。Ingress 則可以調(diào)度不同業(yè)務(wù)域、不同URL訪問路徑的業(yè)務(wù)流量。

流程大致:客戶端請求 訪問的域名 ---> Ingress(七層代理) ---> Service(四層代理) ---> Pod?

【云原生】Kubernetes容器編排工具,云原生,kubernetes,容器,云計(jì)算,k8s,安全架構(gòu),運(yùn)維開發(fā)

3.5?Name??

由于 K8S 內(nèi)部,使用 “資源” 來定義每一種邏輯概念(功能),所以每種 “資源”,都應(yīng)該有自己的 “名稱”。

“資源” 有 api 版本(apiversion)、類別(kind)、元數(shù)據(jù)(metadata)、定義清單(spec)、狀態(tài)(status)等配置信息。
“名稱” 通常定義在 “資源” 的 “元數(shù)據(jù)” 信息里。在同一個(gè) namespace 空間中必須是唯一的。

3.6?Namespace

  • 隨著項(xiàng)目增多、人員增加、集群規(guī)模的擴(kuò)大,需要一種能夠邏輯上隔離 K8S 內(nèi)各種 “資源” 的方法,這就是 Namespace。
  • Namespace 是為了把一個(gè) K8S 集群劃分為若干個(gè)資源不可共享的虛擬集群組而誕生的。
  • 不同 Namespace 內(nèi)的 “資源” 名稱可以相同,相同 Namespace 內(nèi)的同種 “資源”,“名稱” 不能相同。
  • 合理的使用 K8S 的 Namespace,可以使得集群管理員能夠更好的對交付到 K8S 里的服務(wù)進(jìn)行分類管理和瀏覽。
  • K8S 里默認(rèn)存在的 Namespace 有:default、kube-system、kube-public 等。
  • 查詢 K8S 里特定 “資源” 要帶上相應(yīng)的 Namespace。

4.常見的K8S部署方式

?4.1 k8s的常見部署方式

●Minikube
Minikube是一個(gè)工具,可以在本地快速運(yùn)行一個(gè)單節(jié)點(diǎn)微型K8S,僅用于學(xué)習(xí)、預(yù)覽K8S的一些特性使用。
部署地址:https://kubernetes.io/docs/setup/minikube

●Kubeadm
Kubeadm也是一個(gè)工具,提供kubeadm init和kubeadm join,用于快速部署K8S集群,相對簡單。
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/

●二進(jìn)制安裝部署
生產(chǎn)首選,從官方下載發(fā)行版的二進(jìn)制包,手動(dòng)部署每個(gè)組件和自簽TLS證書,組成K8S集群,新手推薦。
https://github.com/kubernetes/kubernetes/releases


Kubeadm降低部署門檻,但屏蔽了很多細(xì)節(jié),遇到問題很難排查。如果想更容易可控,推薦使用二進(jìn)制包部署Kubernetes集群,雖然手動(dòng)部署麻煩點(diǎn),期間可以學(xué)習(xí)很多工作原理,也利于后期維護(hù)。 

4.2 k8s部署 二進(jìn)制與高可用的區(qū)別

?●二進(jìn)制部署
部署難,管理方便,集群伸展性能好
更穩(wěn)定,集群規(guī)模到達(dá)一定的規(guī)模(幾百個(gè)節(jié)點(diǎn)、上萬個(gè)Pod),二進(jìn)制穩(wěn)定性是要高于kubeadm部署
遇到故障,宿主機(jī)起來了,進(jìn)程也會(huì)起來

●kubeadm部署
部署簡單,管理難
是以一種容器管理容器的方式允許的組件及服務(wù),故障恢復(fù)時(shí)間比二進(jìn)制慢
遇到故障,啟動(dòng)宿主機(jī),再啟動(dòng)進(jìn)程,最后去啟動(dòng)容器,集群才能恢復(fù),速度比二進(jìn)制慢

?文章來源地址http://www.zghlxwxcb.cn/news/detail-689196.html

到了這里,關(guān)于【云原生】Kubernetes容器編排工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 云原生之容器編排實(shí)踐-基于CentOS7搭建三個(gè)節(jié)點(diǎn)的Kubernetes集群

    云原生之容器編排實(shí)踐-基于CentOS7搭建三個(gè)節(jié)點(diǎn)的Kubernetes集群

    前面采用 minikube 作為 Kubernetes 環(huán)境來體驗(yàn)學(xué)習(xí) Kubernetes 基本概念與操作,這樣避免了初學(xué)者在裸金屬主機(jī)上搭建 Kubernetes 集群的復(fù)雜度,但是隨著產(chǎn)品功能的逐漸完善,我們需要過渡到生產(chǎn)環(huán)境中的 K8S 集群模式;而在實(shí)際上生產(chǎn)環(huán)境之前,我們先在本地虛擬機(jī)上進(jìn)行了環(huán)境

    2024年02月19日
    瀏覽(23)
  • 容器編排工具的比較:Kubernetes、Docker Swarm、Nomad

    容器編排工具的比較:Kubernetes、Docker Swarm、Nomad

    隨著容器化技術(shù)的普及,容器編排工具成為了現(xiàn)代應(yīng)用部署和管理的重要組成部分。容器編排工具能夠自動(dòng)化容器的部署、擴(kuò)展和管理,從而提高應(yīng)用的可靠性和可伸縮性。在眾多的容器編排工具中,Kubernetes、Docker Swarm和Nomad是三個(gè)備受關(guān)注的主要候選。本文將對這三個(gè)工具

    2024年02月09日
    瀏覽(31)
  • Kubernetes VS Docker Swarm:選擇適合自己的容器編排工具

    容器編排工具是一種自動(dòng)化部署和管理容器的工具。 利用容器編排工具可以方便地解決容器化應(yīng)用程序的部署、擴(kuò)展和高可用性等問題。 Kubernetes 和 Docker Swarm 是目前最流行的兩個(gè)容器編排工具,因此選用它們來進(jìn)行比較。 1.1 Kubernetes 的來源和發(fā)展背景 Kubernetes 源于 Google 的

    2024年02月06日
    瀏覽(16)
  • 45了解容器編排工具 Kubernetes 的基本概念和應(yīng)用,包括 Pod、Service

    45了解容器編排工具 Kubernetes 的基本概念和應(yīng)用,包括 Pod、Service

    Kubernetes 是一種用于自動(dòng)部署、擴(kuò)展和管理容器化應(yīng)用程序的開源容器編排工具。它可以輕松地管理和編排應(yīng)用程序容器,確保它們在大規(guī)模的云環(huán)境中高效、可靠地運(yùn)行。本教程將介紹 Kubernetes 的基本概念和應(yīng)用,包括 Pod 和 Service。 Pod 是 Kubernetes 中最小的可部署對象,是

    2024年02月08日
    瀏覽(26)
  • 探索云原生容器編排技術(shù):如Kubernetes如何為大數(shù)據(jù)處理和AI模型的自動(dòng)化部署帶來便利

    探索云原生容器編排技術(shù):如Kubernetes如何為大數(shù)據(jù)處理和AI模型的自動(dòng)化部署帶來便利

    ??個(gè)人主頁:程序員 小侯 ??CSDN新晉作者 ??歡迎 ??點(diǎn)贊?評論?收藏 ?收錄專欄:云原生 ?文章內(nèi)容: ??希望作者的文章能對你有所幫助,有不足的地方請?jiān)谠u論區(qū)留言指正,大家一起學(xué)習(xí)交流!?? Kubernetes是一個(gè)強(qiáng)大的容器編排和自動(dòng)化部署工具,它為大數(shù)據(jù)處理和

    2024年02月10日
    瀏覽(29)
  • 拋棄對外依賴,OpenEular(歐拉)操作系統(tǒng)為企業(yè)搭建獨(dú)立的K8S集群環(huán)境! 容器編排平臺(tái)丨Kubernetes 丨自主可控的云計(jì)算系統(tǒng)丨容器化技術(shù)丨 新一代云計(jì)算基礎(chǔ)設(shè)施丨分布式應(yīng)用部署和管理

    拋棄對外依賴,OpenEular(歐拉)操作系統(tǒng)為企業(yè)搭建獨(dú)立的K8S集群環(huán)境! 容器編排平臺(tái)丨Kubernetes 丨自主可控的云計(jì)算系統(tǒng)丨容器化技術(shù)丨 新一代云計(jì)算基礎(chǔ)設(shè)施丨分布式應(yīng)用部署和管理

    需要提前準(zhǔn)備好OpenEular操作系統(tǒng)虛擬機(jī)3臺(tái),本文使用模板機(jī)創(chuàng)建。 如今,隨著云計(jì)算、大數(shù)據(jù)、人工智能等技術(shù)的快速發(fā)展,越來越多的企業(yè)開始使用容器化技術(shù)來提高開發(fā)和交付速度。而Kubernetes則成為了最受歡迎的容器編排平臺(tái)之一。然而,許多企業(yè)往往將Kubernetes部署在

    2024年02月11日
    瀏覽(35)
  • 【容器編排】初識(shí) Kubernetes

    【容器編排】初識(shí) Kubernetes

    目錄 1.簡介 2.為什么需要 k8s 3.k8s 能做什么? 4.k8s 不是什么? 1.簡介 摘取官網(wǎng): 概述 | Kubernetes ????????Kubernetes 這個(gè)名字源于希臘語,意為 舵手 或 飛行員 。k8s 這個(gè)縮寫是因?yàn)?k 和 s 之間有八個(gè)字符的關(guān)系。 Google 在 2014 年開源了 Kubernetes 項(xiàng)目。 Kubernetes 建立在 Google 大規(guī)模

    2024年02月14日
    瀏覽(24)
  • 【云原生 | Kubernetes 系列】— 部署K8S 1.28版本集群部署(基于Containerd容器運(yùn)行)

    主機(jī)名 IP地址 備注 k8s-master01 192.168.0.109 master k8s-node1 192.168.0.108 node1 k8s-node2 192.168.0.107 node1 k8s-node3 192.168.0.105 node1 1、主機(jī)配置 2、升級內(nèi)核 3、配置內(nèi)核轉(zhuǎn)發(fā)以及過濾 4、安裝ipset ipvsadm,IPVS(IP Virtual Server)是一個(gè)用于負(fù)載均衡的 Linux 內(nèi)核模塊,它可以用來替代 kube-proxy 默認(rèn)的

    2024年02月20日
    瀏覽(101)
  • 云原生Kubernetes:簡化K8S應(yīng)用部署工具Helm

    云原生Kubernetes:簡化K8S應(yīng)用部署工具Helm

    目錄 一、理論 1.HELM ?編輯 2.部署HELM2 3.部署HELM3(2to3方式) 4.部署HELM3(單獨(dú)安裝) 二、實(shí)驗(yàn) 1.部署 HELM2 2.部署HELM3(2to3方式) 3.部署HELM3(單獨(dú)安裝) 三、問題 1.api版本過期 2.helm初始化報(bào)錯(cuò) 3.pod狀態(tài)為ImagePullBackOff 4.helm?命令顯示?no repositories to show?的錯(cuò)誤 5.Helm安裝報(bào)錯(cuò)

    2024年02月07日
    瀏覽(103)
  • 云原生之深入解析如何正確計(jì)算Kubernetes容器CPU使用率

    使用 Prometheus 配置 kubernetes 環(huán)境中 Container 的 CPU 使用率時(shí),會(huì)經(jīng)常遇到 CPU 使用超出 100%,現(xiàn)在來分析一下: container_spec_cpu_period:當(dāng)對容器進(jìn)行 CPU 限制時(shí),CFS 調(diào)度的時(shí)間窗口,又稱容器 CPU 的時(shí)鐘周期通常是 100000 微秒 container_spec_cpu_quota:是指容器的使用 CPU 時(shí)間周期總量

    2024年02月10日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包