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

k8s概念介紹

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

筆記主頁(yè)https://blog.csdn.net/hey_lie/article/details/131677056?spm=1001.2014.3001.5501

目錄

一 整體架構(gòu)和組件基本概念

1.1 組件

1.1.1 master節(jié)點(diǎn)

1.1.2 node節(jié)點(diǎn)

1.1.3 附加組件

二 資源和對(duì)象

2.1 資源分類

2.2 元數(shù)據(jù)資源

Horizontal Pod Autoscaler(HPA)

PodTemplate

LimitRange

2.3 集群資源

namespace

Node

ClusterRole

ClusterRoleBinding

2.4 命名空間資源

2.4.1 pod

2.4.1.1 副本

2.4.1.2 Label

2.4.1.3 控制器controller

適用于無(wú)狀態(tài)服務(wù)

1?? Replication Controller (已廢棄,ReplicaSet替代)

2?? ReplicaSet

3?? Deployment

適用于有狀態(tài)服務(wù)

主要特點(diǎn)

組成

注意事項(xiàng)

DaemonSet

任務(wù)/定時(shí)任務(wù)

job

CronJob

2.4.2 服務(wù)發(fā)現(xiàn)

service

ingress

endpoints

2.4.3 存儲(chǔ)

2.4.4 特殊類型配置

2.4.5 其他


一 整體架構(gòu)和組件基本概念

基本介紹

Kubernetes(通常寫(xiě)成“k8s”)是Google開(kāi)源的容器集群管理系統(tǒng)。其設(shè)計(jì)目標(biāo)是在主機(jī)集群之間提供一個(gè)能夠自動(dòng)化部署、可拓展、應(yīng)用容器可運(yùn)營(yíng)的平臺(tái)。Kubernetes通常結(jié)合docker容器工具工作,并且整合多個(gè)運(yùn)行著docker容器的主機(jī)集群,Kubernetes不僅僅支持Docker,其他容器技術(shù):CRI-O、containerd

功能特性:

自動(dòng)化容器部署與復(fù)制 隨時(shí)擴(kuò)展或收縮容器規(guī)模 組織容器成組,提供容器間的負(fù)載均衡 快速更新及回滾容器版本 提供彈性伸縮,如果某個(gè)容器失效就進(jìn)行替換

1.1 組件

用戶通過(guò)kubectl或者dashboard訪問(wèn)api-server進(jìn)行管理控制

整體分為master和node,master也包含node的功能,但是master多了api-server、manager、scheduler和etcd

k8s概念介紹,kubernetes,kubernetes,容器,云原生

1.1.1 master節(jié)點(diǎn)

Master 節(jié)點(diǎn)也稱為控制節(jié)點(diǎn),每個(gè) k8s 集群都有一個(gè) Master 節(jié)點(diǎn)負(fù)責(zé)整個(gè)集群的管理控制

k8s概念介紹,kubernetes,kubernetes,容器,云原生

  • API Server:提供了 HTTP Rest 接口的服務(wù)進(jìn)程,所有資源對(duì)象的增、刪、改、查等操作的唯一入口;

  • Controller Manager:k8s 集群所有資源對(duì)象的自動(dòng)化控制中心;

  • cloud-controller-manager:第三方云平臺(tái)提供的控制器的api對(duì)接管理功能

  • Scheduler:k8s 集群所有資源對(duì)象自動(dòng)化調(diào)度控制中心;

  • ETCD:k8s 集群注冊(cè)服務(wù)發(fā)現(xiàn)中心,可以保存 k8s 集群中所有資源對(duì)象的數(shù)據(jù)。鍵值類型存儲(chǔ)的分布式數(shù)據(jù)庫(kù)。老版本:基于內(nèi)存,新版本:持久化存儲(chǔ)

1.1.2 node節(jié)點(diǎn)

Node 節(jié)點(diǎn)的作用是承接 Master 分配的工作負(fù)載。Master會(huì)根據(jù)集群中每個(gè)Node上的可用資源情況,自動(dòng)調(diào)度Pod的部署

?k8s概念介紹,kubernetes,kubernetes,容器,云原生

  • kubelet: Master在每個(gè) Node 上的代理,負(fù)責(zé)Master和Node之間的通信,并管理Pod和容器.

  • kube-proxy: 實(shí)現(xiàn)了k8s中的服務(wù)發(fā)現(xiàn)和反向代理功能.在反向代理方面,kube-proxy支持TCP和UDP連接轉(zhuǎn)發(fā),默認(rèn)基于Round Robin算法將客戶端流量轉(zhuǎn)發(fā)到與Service對(duì)應(yīng)的一組后端Pod中.在服務(wù)發(fā)現(xiàn)方面,kube-proxy使用etcd的watch機(jī)制,監(jiān)控集群中Service和Endpoint對(duì)象數(shù)據(jù)的動(dòng)態(tài)變化,并且維護(hù)一個(gè)Service到Endpoint的應(yīng)設(shè)管理,從而保證了后端Pod的IP地址發(fā)生變化時(shí)不會(huì)對(duì)訪問(wèn)者造成影響.

  • container runtime:Docker或其他容器,負(fù)責(zé)從鏡像倉(cāng)庫(kù)拉取容器鏡像、解壓縮容器及運(yùn)行應(yīng)用程序.

1.1.3 附加組件

k8s概念介紹,kubernetes,kubernetes,容器,云原生

  • kube-dns 負(fù)責(zé)為整個(gè)集群提供 DNS 服務(wù)

  • Ingress Controller 為服務(wù)提供外網(wǎng)入口

  • Prometheus 提供資源監(jiān)控

  • Dashboard 提供 GUI頁(yè)面

  • Federation 提供跨可用區(qū)的集群

  • Fluentd-elasticsearch 提供集群日志采集、存儲(chǔ)與查詢

二 資源和對(duì)象

Kubernetes 中的所有內(nèi)容都被抽象為“資源”,如 Pod、Service、Node 等都是資源。“對(duì)象”就是“資源”的實(shí)例,是持久化的實(shí)體。如某個(gè)具體的 Pod、某個(gè)具體的 Node。Kubernetes 使用這些實(shí)體去表示整個(gè)集群的狀態(tài)。

對(duì)象的創(chuàng)建、刪除、修改都是通過(guò) “Kubernetes API”,也就是 “Api Server” 組件提供的 API 接口,這些是 RESTful 風(fēng)格的 Api,與 k8s 的“萬(wàn)物皆對(duì)象”理念相符。命令行工具 “kubectl”,實(shí)際上也是調(diào)用 kubernetes api。

K8s 中的資源類別有很多種,kubectl 可以通過(guò)配置文件來(lái)創(chuàng)建這些 “對(duì)象”,配置文件更像是描述對(duì)象“屬性”的文件,配置文件格式可以是 “JSON” 或 “YAML”,常用 “YAML”。

2.1 資源分類

資源分為元數(shù)據(jù)、集群、命名空間級(jí)別

  1. 元數(shù)據(jù)級(jí)別資源

    1. 元數(shù)據(jù)級(jí)別作用域最大,所有資源都可使用元空間級(jí)別

    2. 是對(duì)資源的元數(shù)據(jù)描述

  2. 集群級(jí)別資源

    作用在集群上,集群下所有資源可訪問(wèn)使用

  3. 命名空間級(jí)別資源

    作用在命名空間上,在該命名空間范圍內(nèi)的資源可訪問(wèn)使用

k8s概念介紹,kubernetes,kubernetes,容器,云原生

2.2 元數(shù)據(jù)資源

主要針對(duì)pod的描述

?k8s概念介紹,kubernetes,kubernetes,容器,云原生

Horizontal Pod Autoscaler(HPA)

Pod 自動(dòng)擴(kuò)容:可以根據(jù) CPU 使用率或自定義指標(biāo)(metrics)自動(dòng)對(duì) Pod 進(jìn)行擴(kuò)/縮容。

  • 控制管理器每隔30s(可以通過(guò)–horizontal-pod-autoscaler-sync-period修改)查詢metrics的資源使用情況

  • 支持三種metrics類型

    • 預(yù)定義metrics(比如Pod的CPU)以利用率的方式計(jì)算

    • 自定義的Pod metrics,以原始值(raw value)的方式計(jì)算

    • 自定義的object metrics

  • 支持兩種metrics查詢方式:Heapster和自定義的REST API

  • 支持多metrics

PodTemplate

Pod Template 是關(guān)于 Pod 模板的定義

但是被包含在其他的 Kubernetes 對(duì)象中(例如 Deployment、StatefulSet、DaemonSet 等控制器)??刂破魍ㄟ^(guò) Pod Template 信息來(lái)創(chuàng)建 Pod。

LimitRange

對(duì)pod的資源使用進(jìn)行限制

比如java應(yīng)用的初始內(nèi)存2G,最大內(nèi)存4G

可以對(duì)集群內(nèi) Request 和 Limits 的配置做一個(gè)全局的統(tǒng)一的限制,相當(dāng)于批量設(shè)置了某一個(gè)范圍內(nèi)(某個(gè)命名空間)的 Pod 的資源使用限制。

2.3 集群資源

k8s概念介紹,kubernetes,kubernetes,容器,云原生

namespace

Kubernetes 支持多個(gè)虛擬集群,它們底層依賴于同一個(gè)物理集群,這些虛擬集群被稱為命名空間。

作用是用于實(shí)現(xiàn)多團(tuán)隊(duì)/環(huán)境的資源隔離。

命名空間 namespace 是 k8s 集群級(jí)別的資源,可以給不同的用戶、租戶、環(huán)境或項(xiàng)目創(chuàng)建對(duì)應(yīng)的命名空間。

默認(rèn) namespace:

  • kube-system 主要用于運(yùn)行系統(tǒng)級(jí)資源,存放 k8s 自身的組件

  • kube-public 此命名空間是自動(dòng)創(chuàng)建的,并且可供所有用戶(包括未經(jīng)過(guò)身份驗(yàn)證的用戶)讀取。此命名空間主要用于集群使用,關(guān)聯(lián)的一些資源在集群中是可見(jiàn)的并且可以公開(kāi)讀取。此命名空間的公共方面知識(shí)一個(gè)約定,但不是非要這么要求。

  • default 未指定名稱空間的資源就是 default,即你在創(chuàng)建pod 時(shí)如果沒(méi)有指定 namespace,則會(huì)默認(rèn)使用 default

Node

一般一臺(tái)物理機(jī)部署一個(gè)node

不像其他的資源(如 Pod 和 Namespace),Node 本質(zhì)上不是Kubernetes 來(lái)創(chuàng)建的,Kubernetes 只是管理 Node 上的資源。雖然可以通過(guò) Manifest 創(chuàng)建一個(gè)Node對(duì)象(如下 json 所示),但 Kubernetes 也只是去檢查是否真的是有這么一個(gè) Node,如果檢查失敗,也不會(huì)往上調(diào)度 Pod。

ClusterRole

ClusterRole 是一組權(quán)限的集合,但與 Role 不同的是,ClusterRole 可以在包括所有 Namespace 和集群級(jí)別的資源或非資源類型進(jìn)行鑒權(quán)。

ClusterRoleBinding

ClusterRoleBinding:將 Subject 綁定到 ClusterRole,ClusterRoleBinding 將使規(guī)則在所有命名空間中生效。

2.4 命名空間資源

k8s概念介紹,kubernetes,kubernetes,容器,云原生

2.4.1 pod

Pod(容器組)是 Kubernetes 中最小的可部署單元

pod就像豌豆莢一樣,其中包含一組(一個(gè)或多個(gè))容器,這些容器共享存儲(chǔ)、網(wǎng)絡(luò)、以及怎樣運(yùn)行這些容器的聲明

一個(gè) Pod(容器組)包含了一個(gè)應(yīng)用程序容器(某些情況下是多個(gè)容器)、存儲(chǔ)資源、一個(gè)唯一的網(wǎng)絡(luò) IP 地址、以及一些確定容器該如何運(yùn)行的選項(xiàng)。Pod 容器組代表了 Kubernetes 中一個(gè)獨(dú)立的應(yīng)用程序運(yùn)行實(shí)例,該實(shí)例可能由單個(gè)容器或者幾個(gè)緊耦合在一起的容器組成。

Docker 是 Kubernetes Pod 中使用最廣泛的容器引擎;Kubernetes Pod 同時(shí)也支持其他類型的容器引擎。

Kubernetes 集群中的 Pod 存在如下兩種使用途徑:

  • 一個(gè) Pod 中只運(yùn)行一個(gè)容器。"one-container-per-pod" 是 Kubernetes 中最常見(jiàn)的使用方式。此時(shí),您可以認(rèn)為 Pod 容器組是該容器的 wrapper,Kubernetes 通過(guò) Pod 管理容器,而不是直接管理容器。

  • 一個(gè) Pod 中運(yùn)行多個(gè)需要互相協(xié)作的容器。您可以將多個(gè)緊密耦合、共享資源且始終在一起運(yùn)行的容器編排在同一個(gè) Pod 中,可能的情況有:

k8s概念介紹,kubernetes,kubernetes,容器,云原生

2.4.1.1 副本

一個(gè) Pod 可以被復(fù)制成多份,每一份可被稱之為一個(gè)“副本”,這些“副本”除了一些描述性的信息(Pod 的名字、uid 等)不一樣以外,其它信息都是一樣的,譬如 Pod 內(nèi)部的容器、容器數(shù)量、容器里面運(yùn)行的應(yīng)用等的這些信息都是一樣的,這些副本提供同樣的功能。

Pod 的*“控制器”*通常包含一個(gè)名為 “replicas” 的屬性。“replicas”屬性則指定了特定 Pod 的副本的數(shù)量,當(dāng)當(dāng)前集群中該 Pod 的數(shù)量與該屬性指定的值不一致時(shí),k8s 會(huì)采取一些策略去使得當(dāng)前狀態(tài)滿足配置的要求。

2.4.1.2 Label

Label是附著到object上(例如Pod)的鍵值對(duì)。可以在創(chuàng)建object的時(shí)候指定,也可以在object創(chuàng)建后隨時(shí)指定。Labels的值對(duì)系統(tǒng)本身并沒(méi)有什么含義,只是對(duì)用戶才有意義。

一個(gè)Label是一個(gè)key=value的鍵值對(duì),其中key與value由用戶自己指定

Label可以附加到各種資源對(duì)象上,例如Node、Pod、Service、RC等,一個(gè)資源對(duì)象可以定義任意數(shù)量的Label,同一個(gè)Label也可以被添加到任意數(shù)量的資源對(duì)象上去,Label通常在資源對(duì)象定義時(shí)確定,也可以在對(duì)象創(chuàng)建后動(dòng)態(tài)添加或者刪除

我們可以通過(guò)指定的資源對(duì)象捆綁一個(gè)或多個(gè)不同的Label來(lái)實(shí)現(xiàn)多維度的資源分組管理功能,以便于靈活、方便地進(jìn)行資源分配、調(diào)度、配置、部署等管理工作。例如:部署不同版本的應(yīng)用到不同的環(huán)境中;或者監(jiān)控和分析應(yīng)用(日志記錄、監(jiān)控、告警)等。

一些常用label示例如下所示:

版本標(biāo)簽:"release" : "stable" , "release" : "canary"...

環(huán)境標(biāo)簽:"environment" : "dev" , "environment" : "production"

架構(gòu)標(biāo)簽:"tier" : "frontend" , "tier" : "backend" , "tier" : "middleware"

分區(qū)標(biāo)簽:"partition" : "customerA" , "partition" : "customerB"...

質(zhì)量管控標(biāo)簽:"track" : "daily" , "track" : "weekly"

Label相當(dāng)于我們熟悉的“標(biāo)簽”,給某個(gè)資源對(duì)象定義一個(gè)Label,就相當(dāng)于給它打了一個(gè)標(biāo)簽,隨后可以通過(guò)Label Selector(標(biāo)簽選擇器)查詢和篩選擁有某些Label的資源對(duì)象,Kubernetes通過(guò)這種方式實(shí)現(xiàn)了類似SQL的簡(jiǎn)單又通用的對(duì)象查詢機(jī)制

2.4.1.3 控制器controller

在 Kubernetes 中,用于管理和運(yùn)行Pod的對(duì)象

在 Kubernetes 中,控制器通過(guò)監(jiān)控集群的公共狀態(tài),并致力于將當(dāng)前狀態(tài)轉(zhuǎn)變?yōu)槠谕臓顟B(tài)

需要原因:

當(dāng) Pod 被創(chuàng)建出來(lái),Pod 會(huì)被調(diào)度到集群中的節(jié)點(diǎn)上運(yùn)行,Pod 會(huì)在該節(jié)點(diǎn)上一直保持運(yùn)行狀態(tài),直到進(jìn)程終止、Pod 對(duì)象被刪除、Pod 因節(jié)點(diǎn)資源不足而被驅(qū)逐或者節(jié)點(diǎn)失效為止。Pod 并不會(huì)自愈,當(dāng)節(jié)點(diǎn)失效,或者調(diào)度 Pod 的這一操作失敗了,Pod 就該被刪除。如此,單單用 Pod 來(lái)部署應(yīng)用,是不穩(wěn)定不安全的。

Kubernetes 使用更高級(jí)的資源對(duì)象 *“控制器”* 來(lái)實(shí)現(xiàn)對(duì)Pod的管理??刂破骺梢詾槟鷦?chuàng)建和管理多個(gè) Pod,管理副本和上線,并在集群范圍內(nèi)提供自修復(fù)能力。 例如,如果一個(gè)節(jié)點(diǎn)失敗,控制器可以在不同的節(jié)點(diǎn)上調(diào)度一樣的替身來(lái)自動(dòng)替換 Pod。

常用controller:

  • deployment

    • 部署無(wú)狀態(tài)應(yīng)用

    • 部署無(wú)狀態(tài)應(yīng)用: 認(rèn)為pod 都一樣,沒(méi)有順序要求, 不用考慮在哪個(gè)node 運(yùn)行,隨意進(jìn)行擴(kuò)展和伸縮

    • 管理Pod和 ReplicaSet

    • 部署、滾動(dòng)升級(jí)等

    • 典型的像web服務(wù)、分布式服務(wù)等

  • StatefulSet

    • 部署有狀態(tài)應(yīng)用

    • 有狀態(tài)應(yīng)用,每個(gè)pod 都獨(dú)立運(yùn)行,保持pod 啟動(dòng)順序和唯一性; 有唯一的網(wǎng)絡(luò)標(biāo)識(shí)符,持久存儲(chǔ); 有序,比如mysql 主從; 主機(jī)名稱固定。 而且其擴(kuò)容以及升級(jí)等操作也是按順序進(jìn)行的操作。

  • DaemonSet

    • 部署守護(hù)進(jìn)程

    • DaemonSet保證在每個(gè)Node上都運(yùn)行一個(gè)容器副本,常用來(lái)部署一些集群的日志、監(jiān)控或者其他系統(tǒng)管理應(yīng)用。 新加入的node 也同樣運(yùn)行在一個(gè)pod 里面。

  • job

    • 一次性任務(wù)

    • Job負(fù)責(zé)批量處理短暫的一次性任務(wù) (short lived one-off tasks),即僅執(zhí)行一次的任務(wù),它保證批處理任務(wù)的一個(gè)或多個(gè)Pod成功結(jié)束。

  • Cronjob

    • 周期性定時(shí)任務(wù)

適用于無(wú)狀態(tài)服務(wù)
1?? Replication Controller (已廢棄,ReplicaSet替代)

Replication Controller 簡(jiǎn)稱 RC,RC 是 Kubernetes 系統(tǒng)中的核心概念之一

RC 可以保證在任意時(shí)間運(yùn)行 Pod 的副本數(shù)量,能夠保證 Pod 總是可用的

如果實(shí)際 Pod 數(shù)量比指定的多那就結(jié)束掉多余的

如果實(shí)際數(shù)量比指定的少就新啟動(dòng)一些Pod

當(dāng) Pod 失敗、被刪除或者掛掉后,RC 都會(huì)去自動(dòng)創(chuàng)建新的 Pod 來(lái)保證副本數(shù)量

所以即使只有一個(gè) Pod,我們也應(yīng)該使用 RC 來(lái)管理我們的 Pod。

可以說(shuō),通過(guò) ReplicationController,Kubernetes 實(shí)現(xiàn)了 Pod 的高可用性。

2?? ReplicaSet

RC (ReplicationController )主要的作用就是用來(lái)確保容器應(yīng)用的副本數(shù)始終保持在用戶定義的副本數(shù) 。即如果有容器異常退出,會(huì)自動(dòng)創(chuàng)建新的 Pod 來(lái)替代;而如果異常多出來(lái)的容器也會(huì)自動(dòng)回收(已經(jīng)成為過(guò)去時(shí)),在 v1.11 版本廢棄。

Kubernetes 官方建議使用 RS(ReplicaSet ) 替代 RC (ReplicationController ) 進(jìn)行部署,RS 跟 RC 沒(méi)有本質(zhì)的不同,只是名字不一樣,并且 RS 支持集合式的 selector。

3?? Deployment

Deployment 為 Pod 和 Replica Set 提供聲明式更新。

你只需要在 Deployment 中描述你想要的目標(biāo)狀態(tài)是什么,Deployment controller 就會(huì)幫你將 Pod 和 Replica Set 的實(shí)際狀態(tài)改變到你的目標(biāo)狀態(tài)。你可以定義一個(gè)全新的 Deployment,也可以創(chuàng)建一個(gè)新的替換舊的 Deployment。

k8s概念介紹,kubernetes,kubernetes,容器,云原生

適用于有狀態(tài)服務(wù)

StatefulSet

StatefulSet中每個(gè) Pod 的 DNS 格式為 statefulSetName-{0..N-1}.serviceName.namespace.svc.cluster.local

  • serviceName 為 Headless Service 的名字

  • 0..N-1 為 Pod 所在的序號(hào),從 0 開(kāi)始到 N-1

  • statefulSetName 為 StatefulSet 的名字

  • namespace 為服務(wù)所在的 namespace,Headless Servic 和 StatefulSet 必須在相同的 namespace

  • .cluster.local 為 Cluster Domain

主要特點(diǎn)
  • 穩(wěn)定的持久化存儲(chǔ)

    Pod 重新調(diào)度后還是能訪問(wèn)到相同的持久化數(shù)據(jù),基于 PVC 來(lái)實(shí)現(xiàn)

  • 穩(wěn)定的網(wǎng)絡(luò)標(biāo)志

    Pod 重新調(diào)度后其 PodName 和 HostName 不變,基于 Headless Service(即沒(méi)有 Cluster IP 的 Service)來(lái)實(shí)現(xiàn)

  • 有序部署,有序擴(kuò)展

    Pod 是有順序的,在部署或者擴(kuò)展的時(shí)候要依據(jù)定義的順序依次依次進(jìn)行(即從 0到 N-1,在下一個(gè)Pod 運(yùn)行之前所有之前的 Pod 必須都是 Running 和 Ready 狀態(tài)),基于 init containers 來(lái)實(shí)現(xiàn)

  • 有序收縮,有序刪除

    即從 N-1 到 0

組成
  • Headless Service

    用于定義網(wǎng)絡(luò)標(biāo)志(DNS domain)

    Domain Name Server:域名服務(wù)

    將域名與 ip 綁定映射關(guān)系

    服務(wù)名 => 訪問(wèn)路徑(域名) => ip

  • volumeClaimTemplate

    用于創(chuàng)建 PersistentVolumes

注意事項(xiàng)
  • kubernetes v1.5 版本以上才支持

  • 所有Pod的Volume必須使用PersistentVolume或者是管理員事先創(chuàng)建好

  • 為了保證數(shù)據(jù)安全,刪除StatefulSet時(shí)不會(huì)刪除Volume

  • StatefulSet 需要一個(gè) Headless Service 來(lái)定義 DNS domain,需要在 StatefulSet 之前創(chuàng)建好

DaemonSet

部署守護(hù)進(jìn)程

DaemonSet 保證在每個(gè) Node 上都運(yùn)行一個(gè)容器副本,常用來(lái)部署一些集群的日志、監(jiān)控或者其他系統(tǒng)管理應(yīng)用。典型的應(yīng)用包括:

  • 日志收集,比如 fluentd,logstash 等

  • 系統(tǒng)監(jiān)控,比如 Prometheus Node Exporter,collectd,New Relic agent,Ganglia gmond 等

  • 系統(tǒng)程序,比如 kube-proxy, kube-dns, glusterd, ceph 等

任務(wù)/定時(shí)任務(wù)
job

一次性任務(wù),運(yùn)行完成后Pod銷毀,不再重新啟動(dòng)新容器。

CronJob

CronJob 是在 Job 基礎(chǔ)上加上了定時(shí)功能。

2.4.2 服務(wù)發(fā)現(xiàn)

解決K8S集群內(nèi)應(yīng)用間網(wǎng)絡(luò)訪問(wèn)(東西流量)和k8s集群與外網(wǎng)網(wǎng)絡(luò)訪問(wèn)(南北流量)

?k8s概念介紹,kubernetes,kubernetes,容器,云原生

service

“Service” 簡(jiǎn)寫(xiě) “svc”。Pod 不能直接提供給外網(wǎng)訪問(wèn),而是應(yīng)該使用 service。Service 就是把 Pod 暴露出來(lái)提供服務(wù),Service 才是真正的“服務(wù)”,它的中文名就叫“服務(wù)”。

可以說(shuō) Service 是一個(gè)應(yīng)用服務(wù)的抽象,定義了 Pod 邏輯集合和訪問(wèn)這個(gè) Pod 集合的策略。Service 代理 Pod 集合,對(duì)外表現(xiàn)為一個(gè)訪問(wèn)入口,訪問(wèn)該入口的請(qǐng)求將經(jīng)過(guò)負(fù)載均衡,轉(zhuǎn)發(fā)到后端 Pod 中的容器。

ingress

Ingress 可以提供外網(wǎng)訪問(wèn) Service 的能力。可以把某個(gè)請(qǐng)求地址映射、路由到特定的 service。

ingress 需要配合 ingress controller 一起使用才能發(fā)揮作用,ingress 只是相當(dāng)于路由規(guī)則的集合而已,真正實(shí)現(xiàn)路由功能的,是 Ingress Controller,ingress controller 和其它 k8s 組件一樣,也是在 Pod 中運(yùn)行。

endpoints

為Service管理后端Pod,當(dāng)后端Pod被創(chuàng)建或銷毀時(shí),endpoints列表會(huì)更新Pod對(duì)應(yīng)的IP地址,以便Service訪問(wèn)請(qǐng)求能夠確保被響應(yīng)。

2.4.3 存儲(chǔ)

valume

數(shù)據(jù)卷,共享 Pod 中容器使用的數(shù)據(jù)。用來(lái)放持久化的數(shù)據(jù),比如數(shù)據(jù)庫(kù)數(shù)據(jù)。

CSI

Container Storage Interface 是由來(lái)自 Kubernetes、Mesos、Docker 等社區(qū)成員聯(lián)合制定的一個(gè)行業(yè)標(biāo)準(zhǔn)接口規(guī)范,旨在將任意存儲(chǔ)系統(tǒng)暴露給容器化應(yīng)用程序。

CSI 規(guī)范定義了存儲(chǔ)提供商實(shí)現(xiàn) CSI 兼容的 Volume Plugin 的最小操作集和部署建議。CSI 規(guī)范的主要焦點(diǎn)是聲明 Volume Plugin 必須實(shí)現(xiàn)的接口。

2.4.4 特殊類型配置

configMap

用來(lái)放配置,與 Secret 是類似的,只是 ConfigMap 放的是明文的數(shù)據(jù),Secret 是密文存放。

Secret

Secret 解決了密碼、token、密鑰等敏感數(shù)據(jù)的配置問(wèn)題,而不需要把這些敏感數(shù)據(jù)暴露到鏡像或者 Pod Spec 中。Secret 可以以 Volume 或者環(huán)境變量的方式使用。

Secret 有三種類型:

  • Service Account:用來(lái)訪問(wèn) Kubernetes API,由 Kubernetes 自動(dòng)創(chuàng)建,并且會(huì)自動(dòng)掛載到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目錄中;

  • Opaque:base64 編碼格式的 Secret,用來(lái)存儲(chǔ)密碼、密鑰等;

  • kubernetes.io/dockerconfigjson:用來(lái)存儲(chǔ)私有 docker registry 的認(rèn)證信息。

downwardAPI

將pod信息共享到容器內(nèi),讓容器可以直接讀取到pod信息

downwardAPI 這個(gè)模式和其他模式不一樣的地方在于它不是為了存放容器的數(shù)據(jù)也不是用來(lái)進(jìn)行容器和宿主機(jī)的數(shù)據(jù)交換的,而是讓 pod 里的容器能夠直接獲取到這個(gè) pod 對(duì)象本身的一些信息。

downwardAPI 提供了兩種方式用于將 pod 的信息注入到容器內(nèi)部:

環(huán)境變量:用于單個(gè)變量,可以將 pod 信息和容器信息直接注入容器內(nèi)部

volume 掛載:將 pod 信息生成為文件,直接掛載到容器內(nèi)部中去

2.4.5 其他

role

Role 是一組權(quán)限的集合,例如 Role 可以包含列出 Pod 權(quán)限及列出 Deployment 權(quán)限,Role 用于給某個(gè) Namespace 中的資源進(jìn)行鑒權(quán)。

RoleBinding

RoleBinding :將 Subject 綁定到 Role,RoleBinding 使規(guī)則在命名空間內(nèi)生效。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-536105.html

到了這里,關(guān)于k8s概念介紹的文章就介紹完了。如果您還想了解更多內(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&K8s安全&API&Kubelet未授權(quán)訪問(wèn)&容器執(zhí)行

    云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授權(quán)訪問(wèn)&容器執(zhí)行

    Kubernetes是一個(gè)開(kāi)源的, 用于編排云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用,目標(biāo)是讓部署容器化的應(yīng)用能簡(jiǎn)單并且高效的使用, 提供了應(yīng)用部署,規(guī)劃,更新,維護(hù)的一種機(jī)制 。其核心的特點(diǎn)就是能夠自主的管理容器來(lái)保證云平臺(tái)中的容器按照用戶的期望狀態(tài)運(yùn)行著,管理員可

    2024年02月08日
    瀏覽(31)
  • 【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù) II 將pod數(shù)據(jù)傳遞給容器

    【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù) II 將pod數(shù)據(jù)傳遞給容器

    在上一篇文章中,我們學(xué)習(xí)了針對(duì)容器設(shè)置啟動(dòng)時(shí)要執(zhí)行的命令和參數(shù)、定義相互依賴的環(huán)境變量、為容器設(shè)置環(huán)境變量,三種設(shè)置方式,本篇文章,我們將繼續(xù)學(xué)習(xí)數(shù)據(jù)的傳遞。 有兩種方式可以將 Pod 和 Container 字段傳遞給運(yùn)行中的容器: 環(huán)境變量 卷文件 這兩種呈現(xiàn) Pod

    2024年01月25日
    瀏覽(526)
  • 云原生Kubernetes:K8S集群實(shí)現(xiàn)容器運(yùn)行時(shí)遷移(docker → containerd) 與 版本升級(jí)(v1.23.14 → v1.24.1)

    云原生Kubernetes:K8S集群實(shí)現(xiàn)容器運(yùn)行時(shí)遷移(docker → containerd) 與 版本升級(jí)(v1.23.14 → v1.24.1)

    目錄 一、理論 1.K8S集群升級(jí) 2.環(huán)境 3.升級(jí)策略 4.master1節(jié)點(diǎn)遷移容器運(yùn)行時(shí)(docker → containerd)? 5.master2節(jié)點(diǎn)遷移容器運(yùn)行時(shí)(docker → containerd)? 6.node1節(jié)點(diǎn)容器運(yùn)行時(shí)遷移(docker → containerd)? 7.升級(jí)集群計(jì)劃(v1.23.14 →?v1.24.1) 8.升級(jí)master1節(jié)點(diǎn)版本(v1.24.1) 9.升級(jí)master2節(jié)點(diǎn)版本

    2024年02月03日
    瀏覽(38)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授權(quán)訪問(wèn)&;容器執(zhí)行

    云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授權(quán)訪問(wèn)&;容器執(zhí)行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 執(zhí)行的命令是test03容器里的命令,需要進(jìn)行容器逃逸。 1、攻擊8080端口:API Server(Master)未授權(quán)訪問(wèn) 舊版本的k8s的API Server默認(rèn)會(huì)開(kāi)啟兩個(gè)端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口無(wú)需認(rèn)證,

    2024年04月22日
    瀏覽(71)
  • 云原生 黑馬Kubernetes教程(K8S教程)筆記——第一章 kubernetes介紹——Master集群控制節(jié)點(diǎn)、Node工作負(fù)載節(jié)點(diǎn)、Pod控制單元

    云原生 黑馬Kubernetes教程(K8S教程)筆記——第一章 kubernetes介紹——Master集群控制節(jié)點(diǎn)、Node工作負(fù)載節(jié)點(diǎn)、Pod控制單元

    參考文章:kubernetes介紹 本章節(jié)主要介紹應(yīng)用程序在服務(wù)器上部署方式演變以及kubernetes的概念、組件和工作原理。 在部署應(yīng)用程序的方式上,主要經(jīng)歷了三個(gè)時(shí)代: 傳統(tǒng)部署:互聯(lián)網(wǎng)早期,會(huì)直接將應(yīng)用程序部署在物理機(jī)上 優(yōu)點(diǎn):簡(jiǎn)單,不需要其它技術(shù)的參與 缺點(diǎn):不能為

    2024年02月04日
    瀏覽(36)
  • 云原生Kubernetes:K8S概述

    云原生Kubernetes:K8S概述

    目錄 一、理論 1.云原生 2.K8S 3.k8s集群架構(gòu)與組件 4.K8S網(wǎng)絡(luò) 二、總結(jié) (1)概念 云原生是一種基于容器、微服務(wù)和自動(dòng)化運(yùn)維的軟件開(kāi)發(fā)和部署方法。它可以使應(yīng)用程序更加高效、可靠和可擴(kuò)展,適用于各種不同的云平臺(tái)。 如果要更直接通俗的來(lái)解釋下上面的概念,云原生更

    2024年02月10日
    瀏覽(34)
  • 【云原生 ? Kubernetes】認(rèn)識(shí) k8s 網(wǎng)絡(luò)、外部網(wǎng)絡(luò)訪問(wèn) k8s 內(nèi)部服務(wù)

    【云原生 ? Kubernetes】認(rèn)識(shí) k8s 網(wǎng)絡(luò)、外部網(wǎng)絡(luò)訪問(wèn) k8s 內(nèi)部服務(wù)

    目錄 一、認(rèn)識(shí) Kubernetes 網(wǎng)絡(luò) 二、外部網(wǎng)絡(luò)如何訪問(wèn) k8s 內(nèi)部服務(wù) 1. NodePort 2. Load Balancer 3. Ingress Kubernetes 最底層的網(wǎng)絡(luò)為節(jié)點(diǎn)網(wǎng)絡(luò),用來(lái)保證 k8s 集群的節(jié)點(diǎn)(master 和 worker、worker 節(jié)點(diǎn)之間)能夠做正常的 IP 尋址和通訊。 Kubernetes 第二層網(wǎng)絡(luò)就是 Pod 網(wǎng)絡(luò),構(gòu)建于節(jié)點(diǎn)網(wǎng)絡(luò)之上

    2024年01月16日
    瀏覽(106)
  • 云原生Kubernetes:K8S安全機(jī)制

    云原生Kubernetes:K8S安全機(jī)制

    目錄 一、理論 1.K8S安全機(jī)制 2.Authentication認(rèn)證 3.Authorization授權(quán) 4.Admission Control準(zhǔn)入控制 5.User訪問(wèn)案例 6.ServiceAccount訪問(wèn)案例 二、實(shí)驗(yàn) 1.Admission Control準(zhǔn)入控制 2.User訪問(wèn)案例 3.ServiceAccount訪問(wèn)案例 三、問(wèn)題 1.生成資源報(bào)錯(cuò) 2.鏡像拉取失敗 四、總結(jié) (1)概念 Kubernetes 作為一個(gè)分

    2024年02月07日
    瀏覽(29)
  • 【云原生K8S】Kubernetes之探針

    目錄 一、探針是什么 二、探針類型? Ⅰ、livenessProbe 容器重啟策略? Ⅱ、readinessProbe Ⅲ、startupProbe 執(zhí)行順序: 字段詳情 三、探測(cè)機(jī)制 Ⅰ、HTTP GET探針 Ⅱ、TCP套接字探針 Ⅲ、Exec探針 探針:是由 kubelet 對(duì)容器執(zhí)行的定期診斷 要執(zhí)行診斷,則需kubelet 調(diào)用由容器實(shí)現(xiàn)的 Handler。

    2024年02月09日
    瀏覽(30)
  • 云原生Kubernetes:K8S存儲(chǔ)卷

    云原生Kubernetes:K8S存儲(chǔ)卷

    目錄 一、理論 1.存儲(chǔ)卷 2.emptyDir 存儲(chǔ)卷 3.hostPath卷 4.NFS共享存儲(chǔ) 5.PVC 和 PV 6.靜態(tài)創(chuàng)建PV 7.動(dòng)態(tài)創(chuàng)建PV 二、實(shí)驗(yàn) ?1.emptyDir 存儲(chǔ)卷 2.hostPath卷 3.NFS共享存儲(chǔ) 4.靜態(tài)創(chuàng)建PV 5.動(dòng)態(tài)創(chuàng)建PV 三、問(wèn)題 1.生成pod一直pending 2.shoumount -e未顯示共享目錄 3.靜態(tài)創(chuàng)建pv 報(bào)錯(cuò) 4.使用 Deployment 來(lái)創(chuàng)建

    2024年02月07日
    瀏覽(33)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包