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

K8S:K8S自動(dòng)化運(yùn)維容器Docker集群

這篇具有很好參考價(jià)值的文章主要介紹了K8S:K8S自動(dòng)化運(yùn)維容器Docker集群。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一.k8s概述

1.k8s是什么

(1)K8S全程為Kubernetes,由于K到S直接有8個(gè)字母簡(jiǎn)稱為K8S。

(2)版本:目前一般是1.18~1.2.0,后續(xù)可能會(huì)到1.24-1.26,1.24版本后丟棄了docker(如需要使用需要第三方插件配合),目前最新版本是1.27

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

GitHub:GitHub - kubernetes/kubernetes: Production-Grade Container Scheduling and Management

2.為什么要用K8S

(1)試想下傳統(tǒng)的后端部署辦法:把程序包(包括可執(zhí)行二進(jìn)制文件、配置文件等)放到服務(wù)器上,接著運(yùn)行啟動(dòng)腳本把程序跑起來(lái),同時(shí)啟動(dòng)守護(hù)腳本定期檢查程序運(yùn)行狀態(tài)、必要的話重新拉起程序。
(2)設(shè)想一下,如果服務(wù)的請(qǐng)求量上來(lái),已部署的服務(wù)響應(yīng)不過(guò)來(lái)怎么辦?傳統(tǒng)的做法往往是,如果請(qǐng)求量、內(nèi)存、CPu超過(guò)閾值做了告警,運(yùn)維人員馬上再加幾臺(tái)服務(wù)器,部署好服務(wù)之后,接入負(fù)載均衡來(lái)分擔(dān)已有服務(wù)的壓力。
(3)這樣問(wèn)題就出現(xiàn)了:從監(jiān)控告警到部署服務(wù),中間需要人力介入!那么,有沒(méi)有辦法自動(dòng)完成服務(wù)的部署、更新、卸載和擴(kuò)容、縮容呢,而這就是K8S要做的事情:自動(dòng)化運(yùn)維管理容器化(Docker) 程序。

(4)解決了docker的以下個(gè)問(wèn)題

●單機(jī)使用,無(wú)法有效集群
●隨著容器數(shù)量的上升,管理成本攀升
●沒(méi)有有效的容災(zāi)、自愈機(jī)制
●沒(méi)有預(yù)設(shè)編排模板,無(wú)法實(shí)現(xiàn)快速、大規(guī)模容器調(diào)度
●沒(méi)有統(tǒng)一的配置管理中心工具
●沒(méi)有容器生命周期的管理工具
●沒(méi)有圖形化運(yùn)維管理工具

總:大量訪問(wèn)請(qǐng)求訪問(wèn)不用加機(jī)器即可解決大量訪問(wèn)請(qǐng)求,降低成本;并且可以多臺(tái)建立集群,會(huì)將掛的容器剔除前創(chuàng)建新的容器;多個(gè)快速部署。

3.作用及功能

(1)作用:用于自動(dòng)部署、擴(kuò)展、管理編排容器化應(yīng)用程序。

(2)功能:容器編排、資源調(diào)度、彈性伸縮、部署管理、服務(wù)發(fā)現(xiàn)等。

4.k8s容器集群管理系統(tǒng)

在Docker等容器技術(shù)的基礎(chǔ)上,為容器化的應(yīng)用提供部署運(yùn)行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動(dòng)態(tài)伸縮等一系列完整功能,提高了大規(guī)模容器集群管理的便捷性其主要功能如下:

  • 使用 Docker等容器技術(shù)對(duì)應(yīng)用程序包裝 (package)實(shí)例化 (instantiate) 、運(yùn)行 (run)。
  • 以集群的方式運(yùn)行、管理跨機(jī)器的容器。
  • 解決 Docker 跨機(jī)器容器之間的通訊問(wèn)題。
  • K8S 的自我修復(fù)機(jī)制使得容器集群總是運(yùn)行在用戶期望的狀態(tài)。

二.K8S的特性

1.彈性伸縮

使用命令、UI或者基于CPU使用情況自動(dòng)快速擴(kuò)容和縮容應(yīng)用程序?qū)嵗?,保證應(yīng)用高并發(fā)時(shí)的高可用和業(yè)務(wù)低峰時(shí)回收資源,以最小成本運(yùn)行服務(wù)。

總:根據(jù)具體設(shè)置的機(jī)器數(shù)量,自動(dòng)擴(kuò)大或縮?。ǖ葮I(yè)務(wù)結(jié)束)

2.自我修復(fù)

在節(jié)點(diǎn)故障時(shí)重新啟動(dòng)失敗的容器、替換和重新部署,保證預(yù)期的副本數(shù)量,殺死健康檢查失敗的容器,并在未準(zhǔn)備好之前不會(huì)處理客戶端請(qǐng)求,確保線上服務(wù)不中斷。

總:如果其中一臺(tái)容器掛掉了,k8s會(huì)自動(dòng)生成一模一樣的容器,根據(jù)前面必須會(huì)有的副本數(shù)量,得恢復(fù)正常的固定幾臺(tái)

3.服務(wù)發(fā)現(xiàn)和復(fù)制均衡

為多容器提供同一的訪問(wèn)入口(內(nèi)部ip地址和一個(gè)dns名稱),并且負(fù)載均衡關(guān)聯(lián)所有容器,用戶無(wú)需考慮容器ip問(wèn)題

總:新創(chuàng)建的話是根據(jù)標(biāo)簽創(chuàng)建的,不會(huì)根據(jù)IP地址,因?yàn)閯?chuàng)建的會(huì)不一樣

4.自動(dòng)發(fā)布和回滾

默認(rèn)是滾動(dòng)發(fā)布模式(其他二種發(fā)布模式,藍(lán)綠發(fā)布、灰度發(fā)布)。采用滾動(dòng)更新策略更新應(yīng)用,一次更新一個(gè)Pod而不是同時(shí)刪除所有Pod如果更新過(guò)程中有問(wèn)題可以回滾更改確保業(yè)務(wù)升級(jí)不受影響

總:一次更新一個(gè)Pod而不是同時(shí)刪除所有Pod如果更新過(guò)程中有問(wèn)題可以回滾更改確保業(yè)務(wù)升級(jí)不受影響

5.集中化配置管理和秘鑰管理

管理機(jī)密數(shù)據(jù)和應(yīng)用程序配置,而不是把敏感數(shù)據(jù)暴露在鏡像中,提高敏感數(shù)據(jù)安全性、可以將一些常用的配置存儲(chǔ)在k8s中,方便應(yīng)用程序使用

6.存儲(chǔ)編排

支持外掛存儲(chǔ)并對(duì)外掛存儲(chǔ)進(jìn)行編排,掛載外部存儲(chǔ)系統(tǒng),無(wú)論是來(lái)自本地存儲(chǔ),公有云還是網(wǎng)絡(luò)存儲(chǔ)(NFS、ceph、GlusterFS)都作為集群資源的一部分使用,極大提高存儲(chǔ)使用靈活性

7.任務(wù)批量處理運(yùn)行

提供一次性任務(wù),定時(shí)任務(wù);滿足批量數(shù)據(jù)處理和分析的場(chǎng)景

三.K8S的集群架構(gòu)

1、K8S是屬于主從設(shè)備模型(master-slave架構(gòu)),master負(fù)責(zé)集群的調(diào)度管理和運(yùn)維,slave節(jié)點(diǎn)是集群中運(yùn)算工作負(fù)載節(jié)點(diǎn),企業(yè)中一般最少2臺(tái)master,多數(shù)為3臺(tái)作為負(fù)載。

2、主節(jié)點(diǎn)成為master節(jié)點(diǎn),從節(jié)點(diǎn)成為worker node節(jié)點(diǎn)。每個(gè)node都會(huì)被master分配任務(wù)。

3、master可以在任何集群中的計(jì)算機(jī)上運(yùn)行,建議給master一臺(tái)獨(dú)立的服務(wù)器防止master出問(wèn)題所有控制命令都將實(shí)現(xiàn),worker node節(jié)點(diǎn)宕機(jī)該機(jī)器上的任務(wù)會(huì)被自動(dòng)轉(zhuǎn)移其他節(jié)點(diǎn)繼續(xù)運(yùn)行。

四.K8S的核心組件

1.Master組件

(1)Kube-apiserver

統(tǒng)一請(qǐng)求入口服務(wù)組件,所有資源請(qǐng)求或者調(diào)用都通過(guò)Kube-apiserver入口提供的接口進(jìn)行,以Http Restful API 提供接口服務(wù),所有對(duì)資源的增刪改查和監(jiān)聽(tīng)都交給APIserver處理,然后再交給ETCD存儲(chǔ)(鍵值對(duì)存儲(chǔ)方式,相當(dāng)于分布式數(shù)據(jù)庫(kù))。APIserver負(fù)責(zé)接受所有請(qǐng)求(uI和CLI),然后根據(jù)用戶具體請(qǐng)求通知其他組件干活,APIserver相當(dāng)于K8S的大腦。

總:集群統(tǒng)一入口,以restful方式交給etcd存儲(chǔ)(k8s內(nèi)所有的日志存儲(chǔ)),根據(jù)用戶請(qǐng)求,通知其他組件干活

(2)Kube-controller-manager

運(yùn)行管理控制器由各種控制器組成,處理常規(guī)任務(wù)的后臺(tái)線程,所有資源對(duì)象的自動(dòng)化控制中心。在K8S中一個(gè)資源對(duì)應(yīng)一個(gè)控制器,controller-manager負(fù)責(zé)管理這些控制器,通過(guò)API server監(jiān)控整個(gè)集群的狀態(tài),確保集群處于預(yù)期的工作狀態(tài),當(dāng)某個(gè)node意外宕機(jī),controlle-manager會(huì)及時(shí)發(fā)現(xiàn)并自動(dòng)化修復(fù),確保集群處于預(yù)期的工作狀態(tài)。

總:處理集群中常規(guī)的后臺(tái)任務(wù),一個(gè)資源對(duì)應(yīng)一個(gè)控制器處理后臺(tái)集群任務(wù)

控制器 控制名稱 控制器作用
Node Controller 節(jié)點(diǎn)控制器 負(fù)責(zé)在節(jié)點(diǎn)出現(xiàn)故障時(shí)發(fā)送和響應(yīng)
Replication Controller 副本控制器 負(fù)責(zé)保證集群中一個(gè)RC即資源對(duì)象所關(guān)聯(lián)的Pod副本數(shù)據(jù)始終保持預(yù)期值
Endpoints Controller 端點(diǎn)控制器 填充端點(diǎn)對(duì)象(service和Pods),負(fù)責(zé)監(jiān)聽(tīng)service和對(duì)應(yīng)的Pod副本的變化,服務(wù)暴露出來(lái)的訪問(wèn)點(diǎn),如果需要訪問(wèn)一個(gè)服務(wù)必須知道他都Endpoints
Service Account & Tocken Controller 服務(wù)賬戶和令牌控制器 為新的命名空間創(chuàng)建默認(rèn)賬戶和API訪問(wèn)令牌
ResourceQuota Controller 資源配額控制器 確保指定的資源對(duì)象在任何時(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)度算法(62種算法)為新創(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)來(lái)部署Pod。

預(yù)選策略(predicate):首選過(guò)濾掉資源不滿足的node

優(yōu)選策略(priorities):預(yù)選后的滿足的節(jié)點(diǎn)進(jìn)行打分排名選擇最優(yōu)的node

總:負(fù)責(zé)調(diào)度pod,通過(guò)預(yù)先策略,優(yōu)先策略選擇合適的node

2.配置存儲(chǔ)中心etcd

etcd:K8s的存儲(chǔ)服務(wù),是分布式鍵值存儲(chǔ)系統(tǒng),最少三臺(tái)最優(yōu)為8G內(nèi)存。存儲(chǔ)了K8S的關(guān)鍵配置和用戶配置并且持久化保存,K8s中僅有API server才具有讀寫(xiě)權(quán)限,其他組件必須通過(guò)API server的接口才能讀寫(xiě)數(shù)據(jù)。端口為2379和2380,2379用于對(duì)外客戶的提供通信,2380用于對(duì)集群服務(wù)器間內(nèi)部的通信。

總:分布式鍵值對(duì)數(shù)據(jù)庫(kù),負(fù)責(zé)存儲(chǔ)k8s集群的重要信息(持久化)

etcd的大小最好是8G

3.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),并接受來(lái)自Master節(jié)點(diǎn)的指示采取調(diào)整措施(例如創(chuàng)建Pod)。

從Master節(jié)點(diǎn)獲取自己節(jié)點(diǎn)上Pod的期望狀態(tài)(例如運(yùn)行什么容器、運(yùn)行的副本數(shù)量、網(wǎng)絡(luò)等),直接與容器引擎交互實(shí)現(xiàn)容器的聲明周期管理,如果自己節(jié)點(diǎn)上的Pod狀態(tài)與期望狀態(tài)不一致調(diào)用對(duì)應(yīng)容器的接口達(dá)到預(yù)期狀態(tài)

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

總:跟API server通信匯報(bào)當(dāng)前,node節(jié)點(diǎn)的資源使用情況和狀態(tài),接受API server指令跟容器引擎交互實(shí)現(xiàn)容器的生命周期管理

(2)Kube-Proxy

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

本身不是直接給Pod提供網(wǎng)絡(luò),Pod的網(wǎng)絡(luò)是由Kubelet提供的,實(shí)際上維護(hù)的是虛擬的Pod集群網(wǎng)絡(luò)

Kube-apiserver通過(guò)監(jiān)控Kube-Proxy 進(jìn)行對(duì)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 組件。

總:在node節(jié)點(diǎn)實(shí)現(xiàn)pod網(wǎng)絡(luò)代理,維護(hù)網(wǎng)絡(luò)規(guī)則和4層負(fù)載均衡工作,負(fù)責(zé)寫(xiě)入規(guī)則到iptables或ipvs實(shí)現(xiàn)服務(wù)的映射訪問(wèn)

(3)docker或rocker

容器引擎,運(yùn)行容器,負(fù)責(zé)本機(jī)的容器創(chuàng)建和管理工作

總:負(fù)責(zé)本機(jī)的容器,創(chuàng)建和管工作

4.K8S三種負(fù)載均衡模式

(1)userspace

(2)iptables——默認(rèn)使用(利用的nat默認(rèn)但不常用、從上往下,慢)

(3)ipvs——此模式更快,所有安裝是需要更改為此模式。內(nèi)核運(yùn)行更快,性能更好。(推薦,性能最好、通過(guò)VIP地址直接轉(zhuǎn)發(fā)到后端相應(yīng)的資源),實(shí)現(xiàn)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)

5.K8S的架構(gòu)及工作流程

(1)運(yùn)維人員操作Kubectl命令向API server發(fā)送任務(wù)請(qǐng)求,先到Auth進(jìn)行鑒權(quán)認(rèn)證,然后進(jìn)到API Server中,API Server存儲(chǔ)操作到Etcd

(2)然后API Server根據(jù)Etcd中用戶執(zhí)行的操作調(diào)用 controller manager對(duì)應(yīng)的控制器進(jìn)行操作,例如創(chuàng)建

(3)controller manager通過(guò)調(diào)用創(chuàng)建控制器到API Server創(chuàng)建replication副本,APIserver將操作存到Etcd中,API Server再調(diào)用Scheduler進(jìn)行算法選擇為Pod選擇最合適的節(jié)點(diǎn)創(chuàng)建,Scheduler需要通過(guò)API Server在node節(jié)點(diǎn)上的Kubelet進(jìn)行預(yù)選策略和優(yōu)選策略選擇最優(yōu)的node節(jié)點(diǎn)APIserver將動(dòng)作保存到Etcd中

(4)Scheduler選擇完節(jié)點(diǎn)后通過(guò)APIserver的Kubelet在對(duì)應(yīng)的node節(jié)點(diǎn)上創(chuàng)建Pod,并通知對(duì)應(yīng)node節(jié)點(diǎn)的doker在Pod中創(chuàng)建容器

(5)容器需要對(duì)外提供服務(wù)時(shí),通過(guò)node節(jié)點(diǎn)的Kube-Proxy代理對(duì)外映射端口信息,Kube-proxy進(jìn)來(lái)后通過(guò)service負(fù)載均衡器分發(fā)到容器上,訪問(wèn)容器是根據(jù)Label標(biāo)簽訪問(wèn)的。

K8S:K8S自動(dòng)化運(yùn)維容器Docker集群,docker,容器,運(yùn)維,kubernetes

運(yùn)維人員使用kubectl命令發(fā)送任務(wù)請(qǐng)求到API Server,經(jīng)過(guò)鑒權(quán)認(rèn)證。
API Server將任務(wù)請(qǐng)求存儲(chǔ)到Etcd中。
Controller Manager根據(jù)請(qǐng)求調(diào)用相應(yīng)控制器進(jìn)行操作,如創(chuàng)建副本集。
Scheduler選擇合適的節(jié)點(diǎn),并通過(guò)API Server的Kubelet在節(jié)點(diǎn)上創(chuàng)建Pod。
Kube-Proxy代理對(duì)外映射端口信息,實(shí)現(xiàn)負(fù)載均衡。
通過(guò)Label標(biāo)簽訪問(wèn)容器。
K8S:K8S自動(dòng)化運(yùn)維容器Docker集群,docker,容器,運(yùn)維,kubernetes

6.K8S的核心概念

包含:Pod、Label、Service、Replication、Controller。等

(1)Pod

是K8s創(chuàng)建或者部署的最小/最簡(jiǎn)單的基本單位,一個(gè)Pod代表集群上正在運(yùn)行的一個(gè)進(jìn)程,Pod里面可以放很多容器。一個(gè)Pod由一個(gè)或多個(gè)容器組成,Pod中的容器共享網(wǎng)絡(luò)、存儲(chǔ)和計(jì)算資源在同一臺(tái)Docker主機(jī)上運(yùn)行,一個(gè)Pod可以運(yùn)行多個(gè)容器,又稱為邊車模式(sidecar)。生產(chǎn)中一般一個(gè)Pod就一個(gè)容器或者是有多個(gè)強(qiáng)關(guān)聯(lián)性互補(bǔ)的容器

同一個(gè)Pod直接的容器可以通過(guò)localhost互相訪問(wèn),并且可以掛載Pod內(nèi)所有數(shù)據(jù)卷。不同Pod之間的容器不能用localhost訪問(wèn),也不能掛載Pod內(nèi)所有數(shù)據(jù)卷。

K8S:K8S自動(dòng)化運(yùn)維容器Docker集群,docker,容器,運(yùn)維,kubernetes

(2)Pod控制器

  • Pod控制器是啟動(dòng)Pod的一種模板,用來(lái)保證在K8S里啟動(dòng)Pod應(yīng)始終按照用戶的預(yù)期運(yùn)行(副本數(shù)、生命周期((是否存活)、健康狀態(tài)檢查)
  • k8s內(nèi)提供了眾多的pod控制器,常用的有以下幾種
    ①Deployment:無(wú)狀態(tài)應(yīng)用部署即無(wú)論誰(shuí)來(lái)訪問(wèn)都是一樣的例如http網(wǎng)頁(yè)

有狀態(tài)協(xié)議:需要持久化

有狀態(tài)的協(xié)議可以安裝的服務(wù)例如:mysql,但一般建議不安裝到k8s中,效率會(huì)慢,數(shù)據(jù)量大,可以放在云上

無(wú)狀態(tài)協(xié)議:一次性的不需要持久化,每一次請(qǐng)求都是一條新的數(shù)據(jù)

無(wú)狀態(tài)的協(xié)議可以安裝的服務(wù)例如:nginx

②Replicaset:受控于Deployment,確保預(yù)期的Pod副本數(shù)量,Replicaset的通就是管理和控制Pod管理他們好好工作,若發(fā)現(xiàn)某個(gè)Pod不行了就找個(gè)新的Pod來(lái)做替換。

控制副本數(shù)量,保證一直是固定的數(shù)量

K8S:K8S自動(dòng)化運(yùn)維容器Docker集群,docker,容器,運(yùn)維,kubernetes
③Daemonset:確保所有節(jié)點(diǎn)運(yùn)行同一類Pod,保證每個(gè)節(jié)點(diǎn)上都有一一個(gè)此類Pod運(yùn)行,通常用于實(shí)現(xiàn)系統(tǒng)級(jí)后臺(tái)任務(wù)。

Daemonset可以安裝的服務(wù)例如:zabbix、filebeat,適用于監(jiān)控和日志收集

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

可以安裝mysql數(shù)據(jù)庫(kù),但一般建議不安裝到k8s中,效率會(huì)慢,數(shù)據(jù)量大,可以放在云上

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

總:k8s跑無(wú)狀態(tài),微服務(wù)以及其他中間件比較多

7.Label標(biāo)簽

(1)標(biāo)簽是K8s特色的管理方式便于分類管理資源對(duì)象

(2)label可以附加到各種資源對(duì)象上,例如:node、Pod、service、Rc等,用于關(guān)聯(lián)對(duì)象、查詢和篩選

(3)一個(gè)label是一個(gè)key-value的鍵值對(duì),key-value都由用戶自定義

(4)一個(gè)資源對(duì)象可以定義任意數(shù)量的label,同一個(gè)label也可以被添加到任意數(shù)量的資源對(duì)象中,也可以在對(duì)象創(chuàng)建后動(dòng)態(tài)添加或者刪除

(5)可以通過(guò)給指定的資源對(duì)象捆綁一個(gè)或多個(gè)不通的label,實(shí)現(xiàn)多維度的資源分組管理功能

8.Label選擇器(Label selector)

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

9.Service

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

(2)Service就是用來(lái)解決這個(gè)問(wèn)題的核心概念:

Service:通過(guò)標(biāo)簽選擇器關(guān)聯(lián)具有對(duì)應(yīng)Lable的Pod,再把相關(guān)的Pod
IP加入自己的Endpoints當(dāng)中,service根據(jù)Endpoints里的Ip進(jìn)行轉(zhuǎn)發(fā)

不是服務(wù)的含義,更像是一個(gè)網(wǎng)關(guān)層、流量均衡器、Service作用于那些Pod由標(biāo)簽選擇器來(lái)定義。

service可以看作一組提供相同服務(wù)的Pod的對(duì)外訪問(wèn)接口,客戶端需要訪問(wèn)的服務(wù)就是Service的對(duì)象,每個(gè)Service都有一個(gè)虛擬的ip,會(huì)自動(dòng)向后端做轉(zhuǎn)發(fā)。

(3)負(fù)載均衡功能:自動(dòng)把請(qǐng)求流量分配到后端所有的服務(wù)上,可以對(duì)客戶端透明的做水平擴(kuò)展,實(shí)現(xiàn)此功能的關(guān)鍵是Kube-proxy,Kubeproxy運(yùn)行在每個(gè)節(jié)點(diǎn)上監(jiān)聽(tīng)APIserver中服務(wù)對(duì)象的變化,

三種流量調(diào)度模式:userspace、iptables(利用的nat默認(rèn)但不常用、從上往下,慢)、ipvs(推薦,性能最好、通過(guò)VIP地址直接轉(zhuǎn)發(fā)到后端),實(shí)現(xiàn)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)

Service是K8s服務(wù)的核心,屏蔽了服務(wù)細(xì)節(jié),統(tǒng)一了對(duì)外暴露服務(wù)接口,真正做到了微服務(wù)。用戶只需要關(guān)注一個(gè)Service入口即可,不需要關(guān)注具體請(qǐng)求那個(gè)Pod。用戶不會(huì)感知因?yàn)镻od上服務(wù)的意外崩潰K8S重新拉起Pod而導(dǎo)致的ip變更,也不會(huì)感知到因服務(wù)升級(jí)、服務(wù)變更等帶來(lái)的Pod替換而導(dǎo)致的IP變化。

10.Ingress

service負(fù)責(zé)K8s集群內(nèi)部的網(wǎng)絡(luò)拓?fù)?四層)、Ingress 是 K8S 集群里工作在 OSI 網(wǎng)絡(luò)參考模型下,第7層的應(yīng)用,對(duì)外暴露的接口,典型的訪問(wèn)方式是 http/httpsService 只能進(jìn)行第四層的流量調(diào)度,表現(xiàn)形式是 otpot。Tnores 則可以調(diào)度不同業(yè)各域、不同uRL訪問(wèn)路徑的業(yè)條流量比如: 客戶端請(qǐng)求 http://www.kqc.com;port——Ingress——Service—— Pod (nginx )
K8S:K8S自動(dòng)化運(yùn)維容器Docker集群,docker,容器,運(yùn)維,kubernetes

11.name

由于 K8S 內(nèi)部,使用“資源”來(lái)定義每一種邏輯概念(功能),所以每種資源”,都應(yīng)該有自己的“名稱”。"資源”有 api 版木 (apiversion)、類別 (kind)、元數(shù)據(jù)(metadata)、定義清單(spec)、狀態(tài)(status)等配置信息。
"名稱”通常定義在“資源”的“元數(shù)據(jù)”信息里。在同一個(gè) namespace 空間中必須是唯一的。

12.Namespace

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

1.控制器大類總結(jié)

(1)節(jié)點(diǎn)控制器
(2)副本控制器
(3) 端點(diǎn)控制器
(4)服務(wù)賬戶和令牌控制器
(5)資源配額控制制器
(6)命令空間控制器
(7)服務(wù)控制器

2.控制器有五大類

(1)標(biāo)簽選擇器 label
給某個(gè)資源對(duì)象定義一個(gè)名稱(標(biāo)簽) 相當(dāng)于給資源打一個(gè)標(biāo)簽,能夠讓service找到相應(yīng)資源
(2)service
四層, 通過(guò)四層cluster IP 轉(zhuǎn)發(fā)(通過(guò)標(biāo)簽進(jìn)行轉(zhuǎn)發(fā))給 pod 資源
調(diào)度方式有三種:usersapce、iptables (默認(rèn))、ipvs (推薦 性能好)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)
endpoint:自動(dòng)發(fā)現(xiàn)這些pod IPservice 再把IP地址加入到配置當(dāng)中進(jìn)行動(dòng)態(tài)轉(zhuǎn)發(fā)。

是通過(guò)標(biāo)簽選擇器關(guān)聯(lián)具有對(duì)有l(wèi)abel的pod。再把相關(guān)pod的IP加入到自己的endpoints當(dāng)中,service再根據(jù)endpoints里的IP進(jìn)行轉(zhuǎn)發(fā)

(3)ingress
通過(guò)七層轉(zhuǎn)發(fā)給 四層的service IP + port
根據(jù)業(yè)務(wù)對(duì)應(yīng)cluster IP
(4)name
是定義 資源 一種邏輯概念 (功能) k8s內(nèi)部
資源有哪些:api 版本、kind 類別、metadata 元數(shù)據(jù)信息、spec 清單、status 狀態(tài)
(5)namespace
命名空間 k8s 集群劃分為若干個(gè)資源不可共享的虛擬集群組而誕生的文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-695204.html

到了這里,關(guān)于K8S:K8S自動(dòng)化運(yùn)維容器Docker集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Kubernetes 企業(yè)項(xiàng)目實(shí)戰(zhàn)】06、基于 Jenkins+K8s 構(gòu)建 DevOps 自動(dòng)化運(yùn)維管理平臺(tái)(中)

    【Kubernetes 企業(yè)項(xiàng)目實(shí)戰(zhàn)】06、基于 Jenkins+K8s 構(gòu)建 DevOps 自動(dòng)化運(yùn)維管理平臺(tái)(中)

    目錄 一、基于 Jenkins+k8s+Git+Docker Hub 等技術(shù)鏈構(gòu)建企業(yè)級(jí) DevOps 容器云平臺(tái) 1.1 安裝 Jenkins 1.1.1 安裝 nfs 服務(wù) 1.1.2 在 kubernetes 中部署 jenkins 1.2 配置 Jenkins ?1.2.1?獲取管理員密碼 1.2.2?安裝插件 1.2.3?創(chuàng)建第一個(gè)管理員用戶 1.3?測(cè)試 jenkins 的 CI/CD 1.3.1 在 Jenkins 中安裝 kubernetes 插件

    2024年01月16日
    瀏覽(67)
  • docker+k8s+jenkins+harbor持續(xù)集成自動(dòng)化部署

    docker+k8s+jenkins+harbor持續(xù)集成自動(dòng)化部署

    另外一篇文章有講docker的安裝與相關(guān)配置,暫時(shí)就不講了 1、關(guān)閉防火墻并修改主機(jī)名 2、永久禁用swap 用#注釋掉swap一行(新版centos已經(jīng)默認(rèn)禁用) 3、配置鏡像加速 到阿里云獲取自己鏡像加速地址 4、安裝 docker-compose 官網(wǎng)找到下載地址 https://github.com/docker/compose/releases 版本地址

    2024年02月08日
    瀏覽(28)
  • 自動(dòng)化部署實(shí)踐 (Jenkins+Git+Docker+阿里云k8s)

    自動(dòng)化部署實(shí)踐 (Jenkins+Git+Docker+阿里云k8s)

    項(xiàng)目前期部署都是手動(dòng)部署,所以相關(guān)工具基本都已經(jīng)安裝,主要使用的工具有: 使用Gitlab管理代碼 使用Maven打包 使用Docker構(gòu)建鏡像(已經(jīng)有相關(guān)的DockerFile文件) 在阿里云kubernetes上部署。 所以,在這次自動(dòng)化部署過(guò)程中,需要做的是安裝Jenkins并完成相關(guān)配置,然后通過(guò)流

    2024年02月05日
    瀏覽(33)
  • k8s自動(dòng)化安裝腳本(kubeadm-1.26.3)

    k8s自動(dòng)化安裝腳本(kubeadm-1.26.3)

    通過(guò)kubeadm進(jìn)行一鍵式部署k8s集群 根據(jù)不同的啟動(dòng)方式,可部署單節(jié)點(diǎn)、一主多從、多主多從高可用的k8s集群 通過(guò)ansible快速部署k8s的基礎(chǔ)組件(helm、nfs、ingress、monitoring【聯(lián)網(wǎng)|離線鏡像】、kuboard) 通過(guò)部署包中的run.sh進(jìn)行統(tǒng)一入口,進(jìn)行初始化環(huán)境(部署節(jié)點(diǎn)) ansible+shell實(shí)現(xiàn)自

    2024年02月01日
    瀏覽(26)
  • K8S + GitLab + Jenkins自動(dòng)化發(fā)布項(xiàng)目實(shí)踐(二)

    K8S + GitLab + Jenkins自動(dòng)化發(fā)布項(xiàng)目實(shí)踐(二)

    前置工作:已部署5節(jié)點(diǎn)k8s集群,并搭建了代碼倉(cāng)庫(kù)和鏡像倉(cāng)庫(kù)(GitLab + Harbor)。 主機(jī)名 IP 角色 k8s-master1 192.168.124.a k8s控制平面 k8s-master2 192.168.124.b k8s控制平面 k8s-master3 192.168.124.c k8s控制平面 k8s-worker1 192.168.124.d k8s工作節(jié)點(diǎn) k8s-worker2 192.168.124.e k8s工作節(jié)點(diǎn) harborgit 192.168.124.f

    2024年02月03日
    瀏覽(29)
  • K8S系列文章之 離線安裝自動(dòng)化工具Ansible

    K8S系列文章之 離線安裝自動(dòng)化工具Ansible

    參考 文檔?離線安裝 Ansible - DevOps - dbaselife 一、Ansible簡(jiǎn)介 Ansible是一款開(kāi)源的IT配置管理工具,常被IT界的小伙伴們用于自動(dòng)化的場(chǎng)景,多用在服務(wù)部署、配置管理方面。配置文件采用最常見(jiàn)的yaml格式,學(xué)習(xí)起來(lái)也是比較容易,Ansible并不需要也沒(méi)有agent,只有一個(gè)控制端。該

    2024年02月14日
    瀏覽(26)
  • 【kubernetes】Argo Rollouts -- k8s下的自動(dòng)化藍(lán)綠部署

    【kubernetes】Argo Rollouts -- k8s下的自動(dòng)化藍(lán)綠部署

    在現(xiàn)代軟件開(kāi)發(fā)和交付中,確保應(yīng)用程序的平穩(wěn)更新和發(fā)布對(duì)于用戶體驗(yàn)和業(yè)務(wù)連續(xù)性至關(guān)重要。藍(lán)綠部署是一種備受推崇的部署策略,它允許開(kāi)發(fā)團(tuán)隊(duì)在不影響用戶的情況下,將新版本的應(yīng)用程序引入生產(chǎn)環(huán)境。 藍(lán)綠部署的核心思想在于維護(hù)兩個(gè)獨(dú)立的環(huán)境:藍(lán)環(huán)境和綠環(huán)

    2024年02月10日
    瀏覽(34)
  • DevOps搭建(十九)-Jenkins+K8s自動(dòng)化CI搭建詳細(xì)步驟

    DevOps搭建(十九)-Jenkins+K8s自動(dòng)化CI搭建詳細(xì)步驟

    完整的pipeline-auto.yml腳本如下 完整的Jenkinsfile腳本如下 在Jenkins插件管理中搜索GitLab插件進(jìn)行安裝。 進(jìn)入Jenkins項(xiàng)目配置里的 構(gòu)建觸發(fā)器 ,勾選如下選項(xiàng): 從系統(tǒng)管理-系統(tǒng)配置-Gitlab將驗(yàn)證去掉,生產(chǎn)最好配置保證安全。 如果是GitLab和Jenkins在同一臺(tái)服務(wù)器,需要開(kāi)啟允許請(qǐng)求

    2024年01月23日
    瀏覽(33)
  • ?k8s 1.24 1.25 集群使用docker作為容器

    背景 在新版本Kubernetes環(huán)境(1.24以及以上版本)下官方不在支持docker作為容器運(yùn)行時(shí)了,若要繼續(xù)使用docker 需要對(duì)docker進(jìn)行配置一番。需要安裝cri-docker作為Kubernetes容器 查看當(dāng)前容器運(yùn)行時(shí) 安裝docker 安裝cri-docker 為kubelet配置容器運(yùn)行時(shí) 關(guān)于 https://www.oiox.cn/ https://www.oiox.cn

    2024年02月12日
    瀏覽(27)
  • K8S搭建自動(dòng)化部署環(huán)境(五)Harbor私有倉(cāng)庫(kù)的搭建全過(guò)程

    K8S搭建自動(dòng)化部署環(huán)境(五)Harbor私有倉(cāng)庫(kù)的搭建全過(guò)程

    各位大佬,前文如下: K8S搭建自動(dòng)化部署環(huán)境(一)安裝Kubernetes K8S搭建自動(dòng)化部署環(huán)境(二)安裝K8S管理工具Kuboard V3 K8S搭建自動(dòng)化部署環(huán)境(三)Jenkins下載、安裝和啟動(dòng) K8S搭建自動(dòng)化部署環(huán)境(四)Jenkins多分支流水線Blue Ocean的安裝和使用 本文正文: 首先,下載harbor包,

    2024年02月05日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包