国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

60道常見(jiàn)的 Kubernetes 面試題總結(jié)

共 21333字,需瀏覽 43分鐘

 ·

2021-08-09 12:03

來(lái)源:https://blog.csdn.net/estarhao/article/details/114703958

簡(jiǎn)述ETCD及其特點(diǎn)?

etcd 是 CoreOS 團(tuán)隊(duì)發(fā)起的開(kāi)源項(xiàng)目,是一個(gè)管理配置信息和服務(wù)發(fā)現(xiàn)(service discovery)的項(xiàng)目,它的目標(biāo)是構(gòu)建一個(gè)高可用的分布式鍵值(key-value)數(shù)據(jù)庫(kù),基于 Go 語(yǔ)言實(shí)現(xiàn)。

特點(diǎn):

  • 簡(jiǎn)單:支持 REST 風(fēng)格的 HTTP+JSON API
  • 安全:支持 HTTPS 方式的訪問(wèn)
  • 快速:支持并發(fā) 1k/s 的寫(xiě)操作
  • 可靠:支持分布式結(jié)構(gòu),基于 Raft 的一致性算法,Raft 是一套通過(guò)選舉主節(jié)點(diǎn)來(lái)實(shí)現(xiàn)分布式系統(tǒng)一致性的算法。

簡(jiǎn)述ETCD適應(yīng)的場(chǎng)景?

etcd基于其優(yōu)秀的特點(diǎn),可廣泛的應(yīng)用于以下場(chǎng)景:

  • 服務(wù)發(fā)現(xiàn)(Service Discovery):服務(wù)發(fā)現(xiàn)主要解決在同一個(gè)分布式集群中的進(jìn)程或服務(wù),要如何才能找到對(duì)方并建立連接。本質(zhì)上來(lái)說(shuō),服務(wù)發(fā)現(xiàn)就是想要了解集群中是否有進(jìn)程在監(jiān)聽(tīng)udp或tcp端口,并且通過(guò)名字就可以查找和連接。
  • 消息發(fā)布與訂閱:在分布式系統(tǒng)中,最適用的一種組件間通信方式就是消息發(fā)布與訂閱。即構(gòu)建一個(gè)配置共享中心,數(shù)據(jù)提供者在這個(gè)配置中心發(fā)布消息,而消息使用者則訂閱他們關(guān)心的主題,一旦主題有消息發(fā)布,就會(huì)實(shí)時(shí)通知訂閱者。通過(guò)這種方式可以做到分布式系統(tǒng)配置的集中式管理與動(dòng)態(tài)更新。應(yīng)用中用到的一些配置信息放到etcd上進(jìn)行集中管理。
  • 負(fù)載均衡:在分布式系統(tǒng)中,為了保證服務(wù)的高可用以及數(shù)據(jù)的一致性,通常都會(huì)把數(shù)據(jù)和服務(wù)部署多份,以此達(dá)到對(duì)等服務(wù),即使其中的某一個(gè)服務(wù)失效了,也不影響使用。etcd本身分布式架構(gòu)存儲(chǔ)的信息訪問(wèn)支持負(fù)載均衡。etcd集群化以后,每個(gè)etcd的核心節(jié)點(diǎn)都可以處理用戶的請(qǐng)求。所以,把數(shù)據(jù)量小但是訪問(wèn)頻繁的消息數(shù)據(jù)直接存儲(chǔ)到etcd中也可以實(shí)現(xiàn)負(fù)載均衡的效果。
  • 分布式通知與協(xié)調(diào):與消息發(fā)布和訂閱類(lèi)似,都用到了etcd中的Watcher機(jī)制,通過(guò)注冊(cè)與異步通知機(jī)制,實(shí)現(xiàn)分布式環(huán)境下不同系統(tǒng)之間的通知與協(xié)調(diào),從而對(duì)數(shù)據(jù)變更做到實(shí)時(shí)處理。
  • 分布式鎖:因?yàn)閑tcd使用Raft算法保持了數(shù)據(jù)的強(qiáng)一致性,某次操作存儲(chǔ)到集群中的值必然是全局一致的,所以很容易實(shí)現(xiàn)分布式鎖。鎖服務(wù)有兩種使用方式,一是保持獨(dú)占,二是控制時(shí)序。
  • 集群監(jiān)控與Leader競(jìng)選:通過(guò)etcd來(lái)進(jìn)行監(jiān)控實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單并且實(shí)時(shí)性強(qiáng)。

簡(jiǎn)述什么是Kubernetes?

Kubernetes是一個(gè)全新的基于容器技術(shù)的分布式系統(tǒng)支撐平臺(tái)。是Google開(kāi)源的容器集群管理系統(tǒng)(谷歌內(nèi)部:Borg)。在Docker技術(shù)的基礎(chǔ)上,為容器化的應(yīng)用提供部署運(yùn)行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動(dòng)態(tài)伸縮等一系列完整功能,提高了大規(guī)模容器集群管理的便捷性。并且具有完備的集群管理能力,多層次的安全防護(hù)和準(zhǔn)入機(jī)制、多租戶應(yīng)用支撐能力、透明的服務(wù)注冊(cè)和發(fā)現(xiàn)機(jī)制、內(nèi)建智能負(fù)載均衡器、強(qiáng)大的故障發(fā)現(xiàn)和自我修復(fù)能力、服務(wù)滾動(dòng)升級(jí)和在線擴(kuò)容能力、可擴(kuò)展的資源自動(dòng)調(diào)度機(jī)制以及多粒度的資源配額管理能力。

簡(jiǎn)述Kubernetes和Docker的關(guān)系?

Docker 提供容器的生命周期管理和,Docker 鏡像構(gòu)建運(yùn)行時(shí)容器。它的主要優(yōu)點(diǎn)是將將軟件/應(yīng)用程序運(yùn)行所需的設(shè)置和依賴項(xiàng)打包到一個(gè)容器中,從而實(shí)現(xiàn)了可移植性等優(yōu)點(diǎn)。

Kubernetes 用于關(guān)聯(lián)和編排在多個(gè)主機(jī)上運(yùn)行的容器。

簡(jiǎn)述Kubernetes中什么是Minikube、Kubectl、Kubelet?

Minikube 是一種可以在本地輕松運(yùn)行一個(gè)單節(jié)點(diǎn) Kubernetes 群集的工具。

Kubectl 是一個(gè)命令行工具,可以使用該工具控制Kubernetes集群管理器,如檢查群集資源,創(chuàng)建、刪除和更新組件,查看應(yīng)用程序。

Kubelet 是一個(gè)代理服務(wù),它在每個(gè)節(jié)點(diǎn)上運(yùn)行,并使從服務(wù)器與主服務(wù)器通信。

簡(jiǎn)述Kubernetes常見(jiàn)的部署方式?

常見(jiàn)的Kubernetes部署方式有:

  • kubeadm:也是推薦的一種部署方式;
  • 二進(jìn)制:
  • minikube:在本地輕松運(yùn)行一個(gè)單節(jié)點(diǎn) Kubernetes 群集的工具。

簡(jiǎn)述Kubernetes如何實(shí)現(xiàn)集群管理?

在集群管理方面,Kubernetes將集群中的機(jī)器劃分為一個(gè)Master節(jié)點(diǎn)和一群工作節(jié)點(diǎn)Node。其中,在Master節(jié)點(diǎn)運(yùn)行著集群管理相關(guān)的一組進(jìn)程kube-apiserver、kube-controller-manager和kube-scheduler,這些進(jìn)程實(shí)現(xiàn)了整個(gè)集群的資源管理、Pod調(diào)度、彈性伸縮、安全控制、系統(tǒng)監(jiān)控和糾錯(cuò)等管理能力,并且都是全自動(dòng)完成的。

簡(jiǎn)述Kubernetes的優(yōu)勢(shì)、適應(yīng)場(chǎng)景及其特點(diǎn)?

Kubernetes作為一個(gè)完備的分布式系統(tǒng)支撐平臺(tái),其主要優(yōu)勢(shì):

  • 容器編排
  • 輕量級(jí)
  • 開(kāi)源
  • 彈性伸縮
  • 負(fù)載均衡

Kubernetes常見(jiàn)場(chǎng)景:

  • 快速部署應(yīng)用
  • 快速擴(kuò)展應(yīng)用
  • 無(wú)縫對(duì)接新的應(yīng)用功能
  • 節(jié)省資源,優(yōu)化硬件資源的使用

Kubernetes相關(guān)特點(diǎn):

  • 可移植: 支持公有云、私有云、混合云、多重云(multi-cloud)。
  • 可擴(kuò)展: 模塊化,、插件化、可掛載、可組合。
  • 自動(dòng)化: 自動(dòng)部署、自動(dòng)重啟、自動(dòng)復(fù)制、自動(dòng)伸縮/擴(kuò)展。

簡(jiǎn)述Kubernetes的缺點(diǎn)或當(dāng)前的不足之處?

Kubernetes當(dāng)前存在的缺點(diǎn)(不足)如下:

  • 安裝過(guò)程和配置相對(duì)困難復(fù)雜。
  • 管理服務(wù)相對(duì)繁瑣。
  • 運(yùn)行和編譯需要很多時(shí)間。
  • 它比其他替代品更昂貴。
  • 對(duì)于簡(jiǎn)單的應(yīng)用程序來(lái)說(shuō),可能不需要涉及Kubernetes即可滿足。

簡(jiǎn)述Kubernetes相關(guān)基礎(chǔ)概念?

  • master:k8s集群的管理節(jié)點(diǎn),負(fù)責(zé)管理集群,提供集群的資源數(shù)據(jù)訪問(wèn)入口。擁有Etcd存儲(chǔ)服務(wù)(可選),運(yùn)行Api Server進(jìn)程,Controller Manager服務(wù)進(jìn)程及Scheduler服務(wù)進(jìn)程。
  • node(worker):Node(worker)是Kubernetes集群架構(gòu)中運(yùn)行Pod的服務(wù)節(jié)點(diǎn),是Kubernetes集群操作的單元,用來(lái)承載被分配Pod的運(yùn)行,是Pod運(yùn)行的宿主機(jī)。運(yùn)行docker eninge服務(wù),守護(hù)進(jìn)程kunelet及負(fù)載均衡器kube-proxy。
  • pod:運(yùn)行于Node節(jié)點(diǎn)上,若干相關(guān)容器的組合。Pod內(nèi)包含的容器運(yùn)行在同一宿主機(jī)上,使用相同的網(wǎng)絡(luò)命名空間、IP地址和端口,能夠通過(guò)localhost進(jìn)行通信。Pod是Kurbernetes進(jìn)行創(chuàng)建、調(diào)度和管理的最小單位,它提供了比容器更高層次的抽象,使得部署和管理更加靈活。一個(gè)Pod可以包含一個(gè)容器或者多個(gè)相關(guān)容器。
  • label:Kubernetes中的Label實(shí)質(zhì)是一系列的Key/Value鍵值對(duì),其中key與value可自定義。Label可以附加到各種資源對(duì)象上,如Node、Pod、Service、RC等。一個(gè)資源對(duì)象可以定義任意數(shù)量的Label,同一個(gè)Label也可以被添加到任意數(shù)量的資源對(duì)象上去。Kubernetes通過(guò)Label Selector(標(biāo)簽選擇器)查詢和篩選資源對(duì)象。
  • Replication Controller:Replication Controller用來(lái)管理Pod的副本,保證集群中存在指定數(shù)量的Pod副本。集群中副本的數(shù)量大于指定數(shù)量,則會(huì)停止指定數(shù)量之外的多余容器數(shù)量。反之,則會(huì)啟動(dòng)少于指定數(shù)量個(gè)數(shù)的容器,保證數(shù)量不變。Replication Controller是實(shí)現(xiàn)彈性伸縮、動(dòng)態(tài)擴(kuò)容和滾動(dòng)升級(jí)的核心。
  • Deployment:Deployment在內(nèi)部使用了RS來(lái)實(shí)現(xiàn)目的,Deployment相當(dāng)于RC的一次升級(jí),其最大的特色為可以隨時(shí)獲知當(dāng)前Pod的部署進(jìn)度。
  • HPA(Horizontal Pod Autoscaler):Pod的橫向自動(dòng)擴(kuò)容,也是Kubernetes的一種資源,通過(guò)追蹤分析RC控制的所有Pod目標(biāo)的負(fù)載變化情況,來(lái)確定是否需要針對(duì)性的調(diào)整Pod副本數(shù)量。
  • Service:Service定義了Pod的邏輯集合和訪問(wèn)該集合的策略,是真實(shí)服務(wù)的抽象。Service提供了一個(gè)統(tǒng)一的服務(wù)訪問(wèn)入口以及服務(wù)代理和發(fā)現(xiàn)機(jī)制,關(guān)聯(lián)多個(gè)相同Label的Pod,用戶不需要了解后臺(tái)Pod是如何運(yùn)行。
  • Volume:Volume是Pod中能夠被多個(gè)容器訪問(wèn)的共享目錄,Kubernetes中的Volume是定義在Pod上,可以被一個(gè)或多個(gè)Pod中的容器掛載到某個(gè)目錄下。
  • Namespace:Namespace用于實(shí)現(xiàn)多租戶的資源隔離,可將集群內(nèi)部的資源對(duì)象分配到不同的Namespace中,形成邏輯上的不同項(xiàng)目、小組或用戶組,便于不同的Namespace在共享使用整個(gè)集群的資源的同時(shí)還能被分別管理。

簡(jiǎn)述Kubernetes集群相關(guān)組件?

Kubernetes Master控制組件,調(diào)度管理整個(gè)系統(tǒng)(集群),包含如下組件:

  • Kubernetes API Server:作為Kubernetes系統(tǒng)的入口,其封裝了核心對(duì)象的增刪改查操作,以RESTful API接口方式提供給外部客戶和內(nèi)部組件調(diào)用,集群內(nèi)各個(gè)功能模塊之間數(shù)據(jù)交互和通信的中心樞紐。
  • Kubernetes Scheduler:為新建立的Pod進(jìn)行節(jié)點(diǎn)(node)選擇(即分配機(jī)器),負(fù)責(zé)集群的資源調(diào)度。
  • Kubernetes Controller:負(fù)責(zé)執(zhí)行各種控制器,目前已經(jīng)提供了很多控制器來(lái)保證Kubernetes的正常運(yùn)行。
  • Replication Controller:管理維護(hù)Replication Controller,關(guān)聯(lián)Replication Controller和Pod,保證Replication Controller定義的副本數(shù)量與實(shí)際運(yùn)行Pod數(shù)量一致。
  • Node Controller:管理維護(hù)Node,定期檢查Node的健康狀態(tài),標(biāo)識(shí)出(失效|未失效)的Node節(jié)點(diǎn)。
  • Namespace Controller:管理維護(hù)Namespace,定期清理無(wú)效的Namespace,包括Namesapce下的API對(duì)象,比如Pod、Service等。
  • Service Controller:管理維護(hù)Service,提供負(fù)載以及服務(wù)代理。
  • EndPoints Controller:管理維護(hù)Endpoints,關(guān)聯(lián)Service和Pod,創(chuàng)建Endpoints為Service的后端,當(dāng)Pod發(fā)生變化時(shí),實(shí)時(shí)更新Endpoints。
  • Service Account Controller:管理維護(hù)Service Account,為每個(gè)Namespace創(chuàng)建默認(rèn)的Service Account,同時(shí)為Service Account創(chuàng)建Service Account Secret。
  • Persistent Volume Controller:管理維護(hù)Persistent Volume和Persistent Volume Claim,為新的Persistent Volume Claim分配Persistent Volume進(jìn)行綁定,為釋放的Persistent Volume執(zhí)行清理回收。
  • Daemon Set Controller:管理維護(hù)Daemon Set,負(fù)責(zé)創(chuàng)建Daemon Pod,保證指定的Node上正常的運(yùn)行Daemon Pod。
  • Deployment Controller:管理維護(hù)Deployment,關(guān)聯(lián)Deployment和Replication Controller,保證運(yùn)行指定數(shù)量的Pod。當(dāng)Deployment更新時(shí),控制實(shí)現(xiàn)Replication Controller和Pod的更新。
  • Job Controller:管理維護(hù)Job,為Jod創(chuàng)建一次性任務(wù)Pod,保證完成Job指定完成的任務(wù)數(shù)目
  • Pod Autoscaler Controller:實(shí)現(xiàn)Pod的自動(dòng)伸縮,定時(shí)獲取監(jiān)控?cái)?shù)據(jù),進(jìn)行策略匹配,當(dāng)滿足條件時(shí)執(zhí)行Pod的伸縮動(dòng)作。

簡(jiǎn)述Kubernetes RC的機(jī)制?

Replication Controller用來(lái)管理Pod的副本,保證集群中存在指定數(shù)量的Pod副本。當(dāng)定義了RC并提交至Kubernetes集群中之后,Master節(jié)點(diǎn)上的Controller Manager組件獲悉,并同時(shí)巡檢系統(tǒng)中當(dāng)前存活的目標(biāo)Pod,并確保目標(biāo)Pod實(shí)例的數(shù)量剛好等于此RC的期望值,若存在過(guò)多的Pod副本在運(yùn)行,系統(tǒng)會(huì)停止一些Pod,反之則自動(dòng)創(chuàng)建一些Pod。

簡(jiǎn)述Kubernetes Replica Set 和 Replication Controller 之間有什么區(qū)別?

Replica Set 和 Replication Controller 類(lèi)似,都是確保在任何給定時(shí)間運(yùn)行指定數(shù)量的 Pod 副本。不同之處在于RS 使用基于集合的選擇器,而 Replication Controller 使用基于權(quán)限的選擇器。

簡(jiǎn)述kube-proxy作用?

kube-proxy 運(yùn)行在所有節(jié)點(diǎn)上,它監(jiān)聽(tīng) apiserver 中 service 和 endpoint 的變化情況,創(chuàng)建路由規(guī)則以提供服務(wù) IP 和負(fù)載均衡功能。簡(jiǎn)單理解此進(jìn)程是Service的透明代理兼負(fù)載均衡器,其核心功能是將到某個(gè)Service的訪問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到后端的多個(gè)Pod實(shí)例上。

簡(jiǎn)述kube-proxy iptables原理?

Kubernetes從1.2版本開(kāi)始,將iptables作為kube-proxy的默認(rèn)模式。iptables模式下的kube-proxy不再起到Proxy的作用,其核心功能:通過(guò)API Server的Watch接口實(shí)時(shí)跟蹤Service與Endpoint的變更信息,并更新對(duì)應(yīng)的iptables規(guī)則,Client的請(qǐng)求流量則通過(guò)iptables的NAT機(jī)制“直接路由”到目標(biāo)Pod。

簡(jiǎn)述kube-proxy ipvs原理?

IPVS在Kubernetes1.11中升級(jí)為GA穩(wěn)定版。IPVS則專門(mén)用于高性能負(fù)載均衡,并使用更高效的數(shù)據(jù)結(jié)構(gòu)(Hash表),允許幾乎無(wú)限的規(guī)模擴(kuò)張,因此被kube-proxy采納為最新模式。

在IPVS模式下,使用iptables的擴(kuò)展ipset,而不是直接調(diào)用iptables來(lái)生成規(guī)則鏈。iptables規(guī)則鏈?zhǔn)且粋€(gè)線性的數(shù)據(jù)結(jié)構(gòu),ipset則引入了帶索引的數(shù)據(jù)結(jié)構(gòu),因此當(dāng)規(guī)則很多時(shí),也可以很高效地查找和匹配。

可以將ipset簡(jiǎn)單理解為一個(gè)IP(段)的集合,這個(gè)集合的內(nèi)容可以是IP地址、IP網(wǎng)段、端口等,iptables可以直接添加規(guī)則對(duì)這個(gè)“可變的集合”進(jìn)行操作,這樣做的好處在于可以大大減少iptables規(guī)則的數(shù)量,從而減少性能損耗。

簡(jiǎn)述kube-proxy ipvs和iptables的異同?

iptables與IPVS都是基于Netfilter實(shí)現(xiàn)的,但因?yàn)槎ㄎ徊煌哂兄举|(zhì)的差別:iptables是為防火墻而設(shè)計(jì)的;IPVS則專門(mén)用于高性能負(fù)載均衡,并使用更高效的數(shù)據(jù)結(jié)構(gòu)(Hash表),允許幾乎無(wú)限的規(guī)模擴(kuò)張。

與iptables相比,IPVS擁有以下明顯優(yōu)勢(shì):

  • 1、為大型集群提供了更好的可擴(kuò)展性和性能;
  • 2、支持比iptables更復(fù)雜的復(fù)制均衡算法(最小負(fù)載、最少連接、加權(quán)等);
  • 3、支持服務(wù)器健康檢查和連接重試等功能;
  • 4、可以動(dòng)態(tài)修改ipset的集合,即使iptables的規(guī)則正在使用這個(gè)集合。

簡(jiǎn)述Kubernetes中什么是靜態(tài)Pod?

靜態(tài)pod是由kubelet進(jìn)行管理的僅存在于特定Node的Pod上,他們不能通過(guò)API Server進(jìn)行管理,無(wú)法與ReplicationController、Deployment或者DaemonSet進(jìn)行關(guān)聯(lián),并且kubelet無(wú)法對(duì)他們進(jìn)行健康檢查。靜態(tài)Pod總是由kubelet進(jìn)行創(chuàng)建,并且總是在kubelet所在的Node上運(yùn)行。

簡(jiǎn)述Kubernetes中Pod可能位于的狀態(tài)?

  • Pending:API Server已經(jīng)創(chuàng)建該P(yáng)od,且Pod內(nèi)還有一個(gè)或多個(gè)容器的鏡像沒(méi)有創(chuàng)建,包括正在下載鏡像的過(guò)程。
  • Running:Pod內(nèi)所有容器均已創(chuàng)建,且至少有一個(gè)容器處于運(yùn)行狀態(tài)、正在啟動(dòng)狀態(tài)或正在重啟狀態(tài)。
  • Succeeded:Pod內(nèi)所有容器均成功執(zhí)行退出,且不會(huì)重啟。
  • Failed:Pod內(nèi)所有容器均已退出,但至少有一個(gè)容器退出為失敗狀態(tài)。
  • Unknown:由于某種原因無(wú)法獲取該P(yáng)od狀態(tài),可能由于網(wǎng)絡(luò)通信不暢導(dǎo)致。

簡(jiǎn)述Kubernetes創(chuàng)建一個(gè)Pod的主要流程?

Kubernetes中創(chuàng)建一個(gè)Pod涉及多個(gè)組件之間聯(lián)動(dòng),主要流程如下:

  • 1、客戶端提交Pod的配置信息(可以是yaml文件定義的信息)到kube-apiserver。
  • 2、Apiserver收到指令后,通知給controller-manager創(chuàng)建一個(gè)資源對(duì)象。
  • 3、Controller-manager通過(guò)api-server將pod的配置信息存儲(chǔ)到ETCD數(shù)據(jù)中心中。
  • 4、Kube-scheduler檢測(cè)到pod信息會(huì)開(kāi)始調(diào)度預(yù)選,會(huì)先過(guò)濾掉不符合Pod資源配置要求的節(jié)點(diǎn),然后開(kāi)始調(diào)度調(diào)優(yōu),主要是挑選出更適合運(yùn)行pod的節(jié)點(diǎn),然后將pod的資源配置單發(fā)送到node節(jié)點(diǎn)上的kubelet組件上。
  • 5、Kubelet根據(jù)scheduler發(fā)來(lái)的資源配置單運(yùn)行pod,運(yùn)行成功后,將pod的運(yùn)行信息返回給scheduler,scheduler將返回的pod運(yùn)行狀況的信息存儲(chǔ)到etcd數(shù)據(jù)中心。

簡(jiǎn)述Kubernetes中Pod的重啟策略?

Pod重啟策略(RestartPolicy)應(yīng)用于Pod內(nèi)的所有容器,并且僅在Pod所處的Node上由kubelet進(jìn)行判斷和重啟操作。當(dāng)某個(gè)容器異常退出或者健康檢查失敗時(shí),kubelet將根據(jù)RestartPolicy的設(shè)置來(lái)進(jìn)行相應(yīng)操作。

Pod的重啟策略包括Always、OnFailure和Never,默認(rèn)值為Always。

  • Always:當(dāng)容器失效時(shí),由kubelet自動(dòng)重啟該容器;
  • OnFailure:當(dāng)容器終止運(yùn)行且退出碼不為0時(shí),由kubelet自動(dòng)重啟該容器;
  • Never:不論容器運(yùn)行狀態(tài)如何,kubelet都不會(huì)重啟該容器。

同時(shí)Pod的重啟策略與控制方式關(guān)聯(lián),當(dāng)前可用于管理Pod的控制器包括ReplicationController、Job、DaemonSet及直接管理kubelet管理(靜態(tài)Pod)。

不同控制器的重啟策略限制如下:

  • RC和DaemonSet:必須設(shè)置為Always,需要保證該容器持續(xù)運(yùn)行;
  • Job:OnFailure或Never,確保容器執(zhí)行完成后不再重啟;
  • kubelet:在Pod失效時(shí)重啟,不論將RestartPolicy設(shè)置為何值,也不會(huì)對(duì)Pod進(jìn)行健康檢查。

簡(jiǎn)述Kubernetes中Pod的健康檢查方式?

對(duì)Pod的健康檢查可以通過(guò)兩類(lèi)探針來(lái)檢查:LivenessProbe和ReadinessProbe。

  • LivenessProbe探針:用于判斷容器是否存活(running狀態(tài)),如果LivenessProbe探針探測(cè)到容器不健康,則kubelet將殺掉該容器,并根據(jù)容器的重啟策略做相應(yīng)處理。若一個(gè)容器不包含LivenessProbe探針,kubelet認(rèn)為該容器的LivenessProbe探針?lè)祷刂涤糜谑恰癝uccess”。
  • ReadineeProbe探針:用于判斷容器是否啟動(dòng)完成(ready狀態(tài))。如果ReadinessProbe探針探測(cè)到失敗,則Pod的狀態(tài)將被修改。Endpoint Controller將從Service的Endpoint中刪除包含該容器所在Pod的Eenpoint。
  • startupProbe探針:?jiǎn)?dòng)檢查機(jī)制,應(yīng)用一些啟動(dòng)緩慢的業(yè)務(wù),避免業(yè)務(wù)長(zhǎng)時(shí)間啟動(dòng)而被上面兩類(lèi)探針kill掉。

簡(jiǎn)述Kubernetes Pod的LivenessProbe探針的常見(jiàn)方式?

kubelet定期執(zhí)行LivenessProbe探針來(lái)診斷容器的健康狀態(tài),通常有以下三種方式:

  • ExecAction:在容器內(nèi)執(zhí)行一個(gè)命令,若返回碼為0,則表明容器健康。
  • TCPSocketAction:通過(guò)容器的IP地址和端口號(hào)執(zhí)行TCP檢查,若能建立TCP連接,則表明容器健康。
  • HTTPGetAction:通過(guò)容器的IP地址、端口號(hào)及路徑調(diào)用HTTP Get方法,若響應(yīng)的狀態(tài)碼大于等于200且小于400,則表明容器健康。

簡(jiǎn)述Kubernetes Pod的常見(jiàn)調(diào)度方式?

Kubernetes中,Pod通常是容器的載體,主要有如下常見(jiàn)調(diào)度方式:

  • Deployment或RC:該調(diào)度策略主要功能就是自動(dòng)部署一個(gè)容器應(yīng)用的多份副本,以及持續(xù)監(jiān)控副本的數(shù)量,在集群內(nèi)始終維持用戶指定的副本數(shù)量。
  • NodeSelector:定向調(diào)度,當(dāng)需要手動(dòng)指定將Pod調(diào)度到特定Node上,可以通過(guò)Node的標(biāo)簽(Label)和Pod的nodeSelector屬性相匹配。
  • NodeAffinity親和性調(diào)度:親和性調(diào)度機(jī)制極大的擴(kuò)展了Pod的調(diào)度能力,目前有兩種節(jié)點(diǎn)親和力表達(dá):
  • requiredDuringSchedulingIgnoredDuringExecution:硬規(guī)則,必須滿足指定的規(guī)則,調(diào)度器才可以調(diào)度Pod至Node上(類(lèi)似nodeSelector,語(yǔ)法不同)。
  • preferredDuringSchedulingIgnoredDuringExecution:軟規(guī)則,優(yōu)先調(diào)度至滿足的Node的節(jié)點(diǎn),但不強(qiáng)求,多個(gè)優(yōu)先級(jí)規(guī)則還可以設(shè)置權(quán)重值。
  • Taints和Tolerations(污點(diǎn)和容忍):
  • Taint:使Node拒絕特定Pod運(yùn)行;
  • Toleration:為Pod的屬性,表示Pod能容忍(運(yùn)行)標(biāo)注了Taint的Node。

簡(jiǎn)述Kubernetes初始化容器(init container)?

init container的運(yùn)行方式與應(yīng)用容器不同,它們必須先于應(yīng)用容器執(zhí)行完成,當(dāng)設(shè)置了多個(gè)init container時(shí),將按順序逐個(gè)運(yùn)行,并且只有前一個(gè)init container運(yùn)行成功后才能運(yùn)行后一個(gè)init container。當(dāng)所有init container都成功運(yùn)行后,Kubernetes才會(huì)初始化Pod的各種信息,并開(kāi)始創(chuàng)建和運(yùn)行應(yīng)用容器。

簡(jiǎn)述Kubernetes deployment升級(jí)過(guò)程?

  • 初始創(chuàng)建Deployment時(shí),系統(tǒng)創(chuàng)建了一個(gè)ReplicaSet,并按用戶的需求創(chuàng)建了對(duì)應(yīng)數(shù)量的Pod副本。
  • 當(dāng)更新Deployment時(shí),系統(tǒng)創(chuàng)建了一個(gè)新的ReplicaSet,并將其副本數(shù)量擴(kuò)展到1,然后將舊ReplicaSet縮減為2。
  • 之后,系統(tǒng)繼續(xù)按照相同的更新策略對(duì)新舊兩個(gè)ReplicaSet進(jìn)行逐個(gè)調(diào)整。
  • 最后,新的ReplicaSet運(yùn)行了對(duì)應(yīng)個(gè)新版本Pod副本,舊的ReplicaSet副本數(shù)量則縮減為0。

簡(jiǎn)述Kubernetes deployment升級(jí)策略?

在Deployment的定義中,可以通過(guò)spec.strategy指定Pod更新的策略,目前支持兩種策略:Recreate(重建)和RollingUpdate(滾動(dòng)更新),默認(rèn)值為RollingUpdate。

  • Recreate:設(shè)置spec.strategy.type=Recreate,表示Deployment在更新Pod時(shí),會(huì)先殺掉所有正在運(yùn)行的Pod,然后創(chuàng)建新的Pod。
  • RollingUpdate:設(shè)置spec.strategy.type=RollingUpdate,表示Deployment會(huì)以滾動(dòng)更新的方式來(lái)逐個(gè)更新Pod。同時(shí),可以通過(guò)設(shè)置spec.strategy.rollingUpdate下的兩個(gè)參數(shù)(maxUnavailable和maxSurge)來(lái)控制滾動(dòng)更新的過(guò)程。

簡(jiǎn)述Kubernetes DaemonSet類(lèi)型的資源特性?

DaemonSet資源對(duì)象會(huì)在每個(gè)Kubernetes集群中的節(jié)點(diǎn)上運(yùn)行,并且每個(gè)節(jié)點(diǎn)只能運(yùn)行一個(gè)pod,這是它和deployment資源對(duì)象的最大也是唯一的區(qū)別。因此,在定義yaml文件中,不支持定義replicas。

它的一般使用場(chǎng)景如下:

  • 在去做每個(gè)節(jié)點(diǎn)的日志收集工作。
  • 監(jiān)控每個(gè)節(jié)點(diǎn)的的運(yùn)行狀態(tài)。

簡(jiǎn)述Kubernetes自動(dòng)擴(kuò)容機(jī)制?

Kubernetes使用Horizontal Pod Autoscaler(HPA)的控制器實(shí)現(xiàn)基于CPU使用率進(jìn)行自動(dòng)Pod擴(kuò)縮容的功能。HPA控制器周期性地監(jiān)測(cè)目標(biāo)Pod的資源性能指標(biāo),并與HPA資源對(duì)象中的擴(kuò)縮容條件進(jìn)行對(duì)比,在滿足條件時(shí)對(duì)Pod副本數(shù)量進(jìn)行調(diào)整。

  • HPA原理

Kubernetes中的某個(gè)Metrics Server(Heapster或自定義Metrics Server)持續(xù)采集所有Pod副本的指標(biāo)數(shù)據(jù)。HPA控制器通過(guò)Metrics Server的API(Heapster的API或聚合API)獲取這些數(shù)據(jù),基于用戶定義的擴(kuò)縮容規(guī)則進(jìn)行計(jì)算,得到目標(biāo)Pod副本數(shù)量。

當(dāng)目標(biāo)Pod副本數(shù)量與當(dāng)前副本數(shù)量不同時(shí),HPA控制器就向Pod的副本控制器(Deployment、RC或ReplicaSet)發(fā)起scale操作,調(diào)整Pod的副本數(shù)量,完成擴(kuò)縮容操作。

簡(jiǎn)述Kubernetes Service類(lèi)型?

通過(guò)創(chuàng)建Service,可以為一組具有相同功能的容器應(yīng)用提供一個(gè)統(tǒng)一的入口地址,并且將請(qǐng)求負(fù)載分發(fā)到后端的各個(gè)容器應(yīng)用上。其主要類(lèi)型有:

  • ClusterIP:虛擬的服務(wù)IP地址,該地址用于Kubernetes集群內(nèi)部的Pod訪問(wèn),在Node上kube-proxy通過(guò)設(shè)置的iptables規(guī)則進(jìn)行轉(zhuǎn)發(fā);
  • NodePort:使用宿主機(jī)的端口,使能夠訪問(wèn)各Node的外部客戶端通過(guò)Node的IP地址和端口號(hào)就能訪問(wèn)服務(wù);
  • LoadBalancer:使用外接負(fù)載均衡器完成到服務(wù)的負(fù)載分發(fā),需要在spec.status.loadBalancer字段指定外部負(fù)載均衡器的IP地址,通常用于公有云。

簡(jiǎn)述Kubernetes Service分發(fā)后端的策略?

Service負(fù)載分發(fā)的策略有:RoundRobin和SessionAffinity

  • RoundRobin:默認(rèn)為輪詢模式,即輪詢將請(qǐng)求轉(zhuǎn)發(fā)到后端的各個(gè)Pod上。
  • SessionAffinity:基于客戶端IP地址進(jìn)行會(huì)話保持的模式,即第1次將某個(gè)客戶端發(fā)起的請(qǐng)求轉(zhuǎn)發(fā)到后端的某個(gè)Pod上,之后從相同的客戶端發(fā)起的請(qǐng)求都將被轉(zhuǎn)發(fā)到后端相同的Pod上。

簡(jiǎn)述Kubernetes Headless Service?

在某些應(yīng)用場(chǎng)景中,若需要人為指定負(fù)載均衡器,不使用Service提供的默認(rèn)負(fù)載均衡的功能,或者應(yīng)用程序希望知道屬于同組服務(wù)的其他實(shí)例。Kubernetes提供了Headless Service來(lái)實(shí)現(xiàn)這種功能,即不為Service設(shè)置ClusterIP(入口IP地址),僅通過(guò)Label Selector將后端的Pod列表返回給調(diào)用的客戶端。

簡(jiǎn)述Kubernetes外部如何訪問(wèn)集群內(nèi)的服務(wù)?

對(duì)于Kubernetes,集群外的客戶端默認(rèn)情況,無(wú)法通過(guò)Pod的IP地址或者Service的虛擬IP地址:虛擬端口號(hào)進(jìn)行訪問(wèn)。通??梢酝ㄟ^(guò)以下方式進(jìn)行訪問(wèn)Kubernetes集群內(nèi)的服務(wù):

  • 映射Pod到物理機(jī):將Pod端口號(hào)映射到宿主機(jī),即在Pod中采用hostPort方式,以使客戶端應(yīng)用能夠通過(guò)物理機(jī)訪問(wèn)容器應(yīng)用。
  • 映射Service到物理機(jī):將Service端口號(hào)映射到宿主機(jī),即在Service中采用nodePort方式,以使客戶端應(yīng)用能夠通過(guò)物理機(jī)訪問(wèn)容器應(yīng)用。
  • 映射Sercie到LoadBalancer:通過(guò)設(shè)置LoadBalancer映射到云服務(wù)商提供的LoadBalancer地址。這種用法僅用于在公有云服務(wù)提供商的云平臺(tái)上設(shè)置Service的場(chǎng)景。

簡(jiǎn)述Kubernetes ingress?

Kubernetes的Ingress資源對(duì)象,用于將不同URL的訪問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到后端不同的Service,以實(shí)現(xiàn)HTTP層的業(yè)務(wù)路由機(jī)制。

Kubernetes使用了Ingress策略和Ingress Controller,兩者結(jié)合并實(shí)現(xiàn)了一個(gè)完整的Ingress負(fù)載均衡器。使用Ingress進(jìn)行負(fù)載分發(fā)時(shí),Ingress Controller基于Ingress規(guī)則將客戶端請(qǐng)求直接轉(zhuǎn)發(fā)到Service對(duì)應(yīng)的后端Endpoint(Pod)上,從而跳過(guò)kube-proxy的轉(zhuǎn)發(fā)功能,kube-proxy不再起作用,全過(guò)程為:ingress controller + ingress 規(guī)則 ----> services。

同時(shí)當(dāng)Ingress Controller提供的是對(duì)外服務(wù),則實(shí)際上實(shí)現(xiàn)的是邊緣路由器的功能。

簡(jiǎn)述Kubernetes鏡像的下載策略?

K8s的鏡像下載策略有三種:Always、Never、IFNotPresent。

  • Always:鏡像標(biāo)簽為latest時(shí),總是從指定的倉(cāng)庫(kù)中獲取鏡像。
  • Never:禁止從倉(cāng)庫(kù)中下載鏡像,也就是說(shuō)只能使用本地鏡像。
  • IfNotPresent:僅當(dāng)本地沒(méi)有對(duì)應(yīng)鏡像時(shí),才從目標(biāo)倉(cāng)庫(kù)中下載。默認(rèn)的鏡像下載策略是:當(dāng)鏡像標(biāo)簽是latest時(shí),默認(rèn)策略是Always;當(dāng)鏡像標(biāo)簽是自定義時(shí)(也就是標(biāo)簽不是latest),那么默認(rèn)策略是IfNotPresent。

簡(jiǎn)述Kubernetes的負(fù)載均衡器?

負(fù)載均衡器是暴露服務(wù)的最常見(jiàn)和標(biāo)準(zhǔn)方式之一。

根據(jù)工作環(huán)境使用兩種類(lèi)型的負(fù)載均衡器,即內(nèi)部負(fù)載均衡器或外部負(fù)載均衡器。內(nèi)部負(fù)載均衡器自動(dòng)平衡負(fù)載并使用所需配置分配容器,而外部負(fù)載均衡器將流量從外部負(fù)載引導(dǎo)至后端容器。

簡(jiǎn)述Kubernetes各模塊如何與API Server通信?

Kubernetes API Server作為集群的核心,負(fù)責(zé)集群各功能模塊之間的通信。集群內(nèi)的各個(gè)功能模塊通過(guò)API Server將信息存入etcd,當(dāng)需要獲取和操作這些數(shù)據(jù)時(shí),則通過(guò)API Server提供的REST接口(用GET、LIST或WATCH方法)來(lái)實(shí)現(xiàn),從而實(shí)現(xiàn)各模塊之間的信息交互。

如kubelet進(jìn)程與API Server的交互:每個(gè)Node上的kubelet每隔一個(gè)時(shí)間周期,就會(huì)調(diào)用一次API Server的REST接口報(bào)告自身狀態(tài),API Server在接收到這些信息后,會(huì)將節(jié)點(diǎn)狀態(tài)信息更新到etcd中。

如kube-controller-manager進(jìn)程與API Server的交互:kube-controller-manager中的Node Controller模塊通過(guò)API Server提供的Watch接口實(shí)時(shí)監(jiān)控Node的信息,并做相應(yīng)處理。

如kube-scheduler進(jìn)程與API Server的交互:Scheduler通過(guò)API Server的Watch接口監(jiān)聽(tīng)到新建Pod副本的信息后,會(huì)檢索所有符合該P(yáng)od要求的Node列表,開(kāi)始執(zhí)行Pod調(diào)度邏輯,在調(diào)度成功后將Pod綁定到目標(biāo)節(jié)點(diǎn)上。

簡(jiǎn)述Kubernetes Scheduler作用及實(shí)現(xiàn)原理?

Kubernetes Scheduler是負(fù)責(zé)Pod調(diào)度的重要功能模塊,Kubernetes Scheduler在整個(gè)系統(tǒng)中承擔(dān)了“承上啟下”的重要功能,“承上”是指它負(fù)責(zé)接收Controller Manager創(chuàng)建的新Pod,為其調(diào)度至目標(biāo)Node;“啟下”是指調(diào)度完成后,目標(biāo)Node上的kubelet服務(wù)進(jìn)程接管后繼工作,負(fù)責(zé)Pod接下來(lái)生命周期。

Kubernetes Scheduler的作用是將待調(diào)度的Pod(API新創(chuàng)建的Pod、Controller Manager為補(bǔ)足副本而創(chuàng)建的Pod等)按照特定的調(diào)度算法和調(diào)度策略綁定(Binding)到集群中某個(gè)合適的Node上,并將綁定信息寫(xiě)入etcd中。

在整個(gè)調(diào)度過(guò)程中涉及三個(gè)對(duì)象,分別是待調(diào)度Pod列表、可用Node列表,以及調(diào)度算法和策略。

Kubernetes Scheduler通過(guò)調(diào)度算法調(diào)度為待調(diào)度Pod列表中的每個(gè)Pod從Node列表中選擇一個(gè)最適合的Node來(lái)實(shí)現(xiàn)Pod的調(diào)度。隨后,目標(biāo)節(jié)點(diǎn)上的kubelet通過(guò)API Server監(jiān)聽(tīng)到Kubernetes Scheduler產(chǎn)生的Pod綁定事件,然后獲取對(duì)應(yīng)的Pod清單,下載Image鏡像并啟動(dòng)容器。

簡(jiǎn)述Kubernetes Scheduler使用哪兩種算法將Pod綁定到worker節(jié)點(diǎn)?

Kubernetes Scheduler根據(jù)如下兩種調(diào)度算法將 Pod 綁定到最合適的工作節(jié)點(diǎn):

  • 預(yù)選(Predicates):輸入是所有節(jié)點(diǎn),輸出是滿足預(yù)選條件的節(jié)點(diǎn)。kube-scheduler根據(jù)預(yù)選策略過(guò)濾掉不滿足策略的Nodes。如果某節(jié)點(diǎn)的資源不足或者不滿足預(yù)選策略的條件則無(wú)法通過(guò)預(yù)選。如“Node的label必須與Pod的Selector一致”。
  • 優(yōu)選(Priorities):輸入是預(yù)選階段篩選出的節(jié)點(diǎn),優(yōu)選會(huì)根據(jù)優(yōu)先策略為通過(guò)預(yù)選的Nodes進(jìn)行打分排名,選擇得分最高的Node。例如,資源越富裕、負(fù)載越小的Node可能具有越高的排名。

簡(jiǎn)述Kubernetes kubelet的作用?

在Kubernetes集群中,在每個(gè)Node(又稱Worker)上都會(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上注冊(cè)節(jié)點(diǎn)自身的信息,定期向Master匯報(bào)節(jié)點(diǎn)資源的使用情況,并通過(guò)cAdvisor監(jiān)控容器和節(jié)點(diǎn)資源。

簡(jiǎn)述Kubernetes kubelet監(jiān)控Worker節(jié)點(diǎn)資源是使用什么組件來(lái)實(shí)現(xiàn)的?

kubelet使用cAdvisor對(duì)worker節(jié)點(diǎn)資源進(jìn)行監(jiān)控。在 Kubernetes 系統(tǒng)中,cAdvisor 已被默認(rèn)集成到 kubelet 組件內(nèi),當(dāng) kubelet 服務(wù)啟動(dòng)時(shí),它會(huì)自動(dòng)啟動(dòng) cAdvisor 服務(wù),然后 cAdvisor 會(huì)實(shí)時(shí)采集所在節(jié)點(diǎn)的性能指標(biāo)及在節(jié)點(diǎn)上運(yùn)行的容器的性能指標(biāo)。

簡(jiǎn)述Kubernetes如何保證集群的安全性?

Kubernetes通過(guò)一系列機(jī)制來(lái)實(shí)現(xiàn)集群的安全控制,主要有如下不同的維度:

  • 基礎(chǔ)設(shè)施方面:保證容器與其所在宿主機(jī)的隔離;
  • 權(quán)限方面:
    • 最小權(quán)限原則:合理限制所有組件的權(quán)限,確保組件只執(zhí)行它被授權(quán)的行為,通過(guò)限制單個(gè)組件的能力來(lái)限制它的權(quán)限范圍。
    • 用戶權(quán)限:劃分普通用戶和管理員的角色。
  • 集群方面:
    • API Server的認(rèn)證授權(quán):Kubernetes集群中所有資源的訪問(wèn)和變更都是通過(guò)Kubernetes API Server來(lái)實(shí)現(xiàn)的,因此需要建議采用更安全的HTTPS或Token來(lái)識(shí)別和認(rèn)證客戶端身份(Authentication),以及隨后訪問(wèn)權(quán)限的授權(quán)(Authorization)環(huán)節(jié)。
    • API Server的授權(quán)管理:通過(guò)授權(quán)策略來(lái)決定一個(gè)API調(diào)用是否合法。對(duì)合法用戶進(jìn)行授權(quán)并且隨后在用戶訪問(wèn)時(shí)進(jìn)行鑒權(quán),建議采用更安全的RBAC方式來(lái)提升集群安全授權(quán)。
    • 敏感數(shù)據(jù)引入Secret機(jī)制:對(duì)于集群敏感數(shù)據(jù)建議使用Secret方式進(jìn)行保護(hù)。
    • AdmissionControl(準(zhǔn)入機(jī)制):對(duì)kubernetes api的請(qǐng)求過(guò)程中,順序?yàn)椋合冉?jīng)過(guò)認(rèn)證 & 授權(quán),然后執(zhí)行準(zhǔn)入操作,最后對(duì)目標(biāo)對(duì)象進(jìn)行操作。

簡(jiǎn)述Kubernetes準(zhǔn)入機(jī)制?

在對(duì)集群進(jìn)行請(qǐng)求時(shí),每個(gè)準(zhǔn)入控制代碼都按照一定順序執(zhí)行。如果有一個(gè)準(zhǔn)入控制拒絕了此次請(qǐng)求,那么整個(gè)請(qǐng)求的結(jié)果將會(huì)立即返回,并提示用戶相應(yīng)的error信息。

準(zhǔn)入控制(AdmissionControl)準(zhǔn)入控制本質(zhì)上為一段準(zhǔn)入代碼,在對(duì)kubernetes api的請(qǐng)求過(guò)程中,順序?yàn)椋合冉?jīng)過(guò)認(rèn)證 & 授權(quán),然后執(zhí)行準(zhǔn)入操作,最后對(duì)目標(biāo)對(duì)象進(jìn)行操作。常用組件(控制代碼)如下:

  • AlwaysAdmit:允許所有請(qǐng)求
  • AlwaysDeny:禁止所有請(qǐng)求,多用于測(cè)試環(huán)境。
  • ServiceAccount:它將serviceAccounts實(shí)現(xiàn)了自動(dòng)化,它會(huì)輔助serviceAccount做一些事情,比如如果pod沒(méi)有serviceAccount屬性,它會(huì)自動(dòng)添加一個(gè)default,并確保pod的serviceAccount始終存在。
  • LimitRanger:觀察所有的請(qǐng)求,確保沒(méi)有違反已經(jīng)定義好的約束條件,這些條件定義在namespace中LimitRange對(duì)象中。
  • NamespaceExists:觀察所有的請(qǐng)求,如果請(qǐng)求嘗試創(chuàng)建一個(gè)不存在的namespace,則這個(gè)請(qǐng)求被拒絕。

簡(jiǎn)述Kubernetes RBAC及其特點(diǎn)(優(yōu)勢(shì))?

RBAC是基于角色的訪問(wèn)控制,是一種基于個(gè)人用戶的角色來(lái)管理對(duì)計(jì)算機(jī)或網(wǎng)絡(luò)資源的訪問(wèn)的方法。

相對(duì)于其他授權(quán)模式,RBAC具有如下優(yōu)勢(shì):

  • 對(duì)集群中的資源和非資源權(quán)限均有完整的覆蓋。
  • 整個(gè)RBAC完全由幾個(gè)API對(duì)象完成, 同其他API對(duì)象一樣, 可以用kubectl或API進(jìn)行操作。
  • 可以在運(yùn)行時(shí)進(jìn)行調(diào)整,無(wú)須重新啟動(dòng)API Server。

簡(jiǎn)述Kubernetes Secret作用?

Secret對(duì)象,主要作用是保管私密數(shù)據(jù),比如密碼、OAuth Tokens、SSH Keys等信息。將這些私密信息放在Secret對(duì)象中比直接放在Pod或Docker Image中更安全,也更便于使用和分發(fā)。

簡(jiǎn)述Kubernetes Secret有哪些使用方式?

創(chuàng)建完secret之后,可通過(guò)如下三種方式使用:

  • 在創(chuàng)建Pod時(shí),通過(guò)為Pod指定Service Account來(lái)自動(dòng)使用該Secret。
  • 通過(guò)掛載該Secret到Pod來(lái)使用它。
  • 在Docker鏡像下載時(shí)使用,通過(guò)指定Pod的spc.ImagePullSecrets來(lái)引用它。

簡(jiǎn)述Kubernetes PodSecurityPolicy機(jī)制?

Kubernetes PodSecurityPolicy是為了更精細(xì)地控制Pod對(duì)資源的使用方式以及提升安全策略。在開(kāi)啟PodSecurityPolicy準(zhǔn)入控制器后,Kubernetes默認(rèn)不允許創(chuàng)建任何Pod,需要?jiǎng)?chuàng)建PodSecurityPolicy策略和相應(yīng)的RBAC授權(quán)策略(Authorizing Policies),Pod才能創(chuàng)建成功。

簡(jiǎn)述Kubernetes PodSecurityPolicy機(jī)制能實(shí)現(xiàn)哪些安全策略?

在PodSecurityPolicy對(duì)象中可以設(shè)置不同字段來(lái)控制Pod運(yùn)行時(shí)的各種安全策略,常見(jiàn)的有:

  • 特權(quán)模式:privileged是否允許Pod以特權(quán)模式運(yùn)行。
  • 宿主機(jī)資源:控制Pod對(duì)宿主機(jī)資源的控制,如hostPID:是否允許Pod共享宿主機(jī)的進(jìn)程空間。
  • 用戶和組:設(shè)置運(yùn)行容器的用戶ID(范圍)或組(范圍)。
  • 提升權(quán)限:AllowPrivilegeEscalation:設(shè)置容器內(nèi)的子進(jìn)程是否可以提升權(quán)限,通常在設(shè)置非root用戶(MustRunAsNonRoot)時(shí)進(jìn)行設(shè)置。
  • SELinux:進(jìn)行SELinux的相關(guān)配置。

簡(jiǎn)述Kubernetes網(wǎng)絡(luò)模型?

Kubernetes網(wǎng)絡(luò)模型中每個(gè)Pod都擁有一個(gè)獨(dú)立的IP地址,并假定所有Pod都在一個(gè)可以直接連通的、扁平的網(wǎng)絡(luò)空間中。所以不管它們是否運(yùn)行在同一個(gè)Node(宿主機(jī))中,都要求它們可以直接通過(guò)對(duì)方的IP進(jìn)行訪問(wèn)。設(shè)計(jì)這個(gè)原則的原因是,用戶不需要額外考慮如何建立Pod之間的連接,也不需要考慮如何將容器端口映射到主機(jī)端口等問(wèn)題。

同時(shí)為每個(gè)Pod都設(shè)置一個(gè)IP地址的模型使得同一個(gè)Pod內(nèi)的不同容器會(huì)共享同一個(gè)網(wǎng)絡(luò)命名空間,也就是同一個(gè)Linux網(wǎng)絡(luò)協(xié)議棧。這就意味著同一個(gè)Pod內(nèi)的容器可以通過(guò)localhost來(lái)連接對(duì)方的端口。

在Kubernetes的集群里,IP是以Pod為單位進(jìn)行分配的。一個(gè)Pod內(nèi)部的所有容器共享一個(gè)網(wǎng)絡(luò)堆棧(相當(dāng)于一個(gè)網(wǎng)絡(luò)命名空間,它們的IP地址、網(wǎng)絡(luò)設(shè)備、配置等都是共享的)。

簡(jiǎn)述Kubernetes CNI模型?

CNI提供了一種應(yīng)用容器的插件化網(wǎng)絡(luò)解決方案,定義對(duì)容器網(wǎng)絡(luò)進(jìn)行操作和配置的規(guī)范,通過(guò)插件的形式對(duì)CNI接口進(jìn)行實(shí)現(xiàn)。CNI僅關(guān)注在創(chuàng)建容器時(shí)分配網(wǎng)絡(luò)資源,和在銷(xiāo)毀容器時(shí)刪除網(wǎng)絡(luò)資源。在CNI模型中只涉及兩個(gè)概念:容器和網(wǎng)絡(luò)。

  • 容器(Container):是擁有獨(dú)立Linux網(wǎng)絡(luò)命名空間的環(huán)境,例如使用Docker或rkt創(chuàng)建的容器。容器需要擁有自己的Linux網(wǎng)絡(luò)命名空間,這是加入網(wǎng)絡(luò)的必要條件。
  • 網(wǎng)絡(luò)(Network):表示可以互連的一組實(shí)體,這些實(shí)體擁有各自獨(dú)立、唯一的IP地址,可以是容器、物理機(jī)或者其他網(wǎng)絡(luò)設(shè)備(比如路由器)等。

對(duì)容器網(wǎng)絡(luò)的設(shè)置和操作都通過(guò)插件(Plugin)進(jìn)行具體實(shí)現(xiàn),CNI插件包括兩種類(lèi)型:CNI Plugin和IPAM(IP Address  Management)Plugin。CNI Plugin負(fù)責(zé)為容器配置網(wǎng)絡(luò)資源,IPAM Plugin負(fù)責(zé)對(duì)容器的IP地址進(jìn)行分配和管理。IPAM Plugin作為CNI Plugin的一部分,與CNI Plugin協(xié)同工作。

簡(jiǎn)述Kubernetes網(wǎng)絡(luò)策略?

為實(shí)現(xiàn)細(xì)粒度的容器間網(wǎng)絡(luò)訪問(wèn)隔離策略,Kubernetes引入Network Policy。

Network Policy的主要功能是對(duì)Pod間的網(wǎng)絡(luò)通信進(jìn)行限制和準(zhǔn)入控制,設(shè)置允許訪問(wèn)或禁止訪問(wèn)的客戶端Pod列表。Network Policy定義網(wǎng)絡(luò)策略,配合策略控制器(Policy Controller)進(jìn)行策略的實(shí)現(xiàn)。

簡(jiǎn)述Kubernetes網(wǎng)絡(luò)策略原理?

Network Policy的工作原理主要為:policy controller需要實(shí)現(xiàn)一個(gè)API Listener,監(jiān)聽(tīng)用戶設(shè)置的Network Policy定義,并將網(wǎng)絡(luò)訪問(wèn)規(guī)則通過(guò)各Node的Agent進(jìn)行實(shí)際設(shè)置(Agent則需要通過(guò)CNI網(wǎng)絡(luò)插件實(shí)現(xiàn))。

簡(jiǎn)述Kubernetes中flannel的作用?

Flannel可以用于Kubernetes底層網(wǎng)絡(luò)的實(shí)現(xiàn),主要作用有:

  • 它能協(xié)助Kubernetes,給每一個(gè)Node上的Docker容器都分配互相不沖突的IP地址。
  • 它能在這些IP地址之間建立一個(gè)覆蓋網(wǎng)絡(luò)(Overlay Network),通過(guò)這個(gè)覆蓋網(wǎng)絡(luò),將數(shù)據(jù)包原封不動(dòng)地傳遞到目標(biāo)容器內(nèi)。

簡(jiǎn)述Kubernetes Calico網(wǎng)絡(luò)組件實(shí)現(xiàn)原理?

Calico是一個(gè)基于BGP的純?nèi)龑拥木W(wǎng)絡(luò)方案,與OpenStack、Kubernetes、AWS、GCE等云平臺(tái)都能夠良好地集成。

Calico在每個(gè)計(jì)算節(jié)點(diǎn)都利用Linux Kernel實(shí)現(xiàn)了一個(gè)高效的vRouter來(lái)負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā)。每個(gè)vRouter都通過(guò)BGP協(xié)議把在本節(jié)點(diǎn)上運(yùn)行的容器的路由信息向整個(gè)Calico網(wǎng)絡(luò)廣播,并自動(dòng)設(shè)置到達(dá)其他節(jié)點(diǎn)的路由轉(zhuǎn)發(fā)規(guī)則。

Calico保證所有容器之間的數(shù)據(jù)流量都是通過(guò)IP路由的方式完成互聯(lián)互通的。Calico節(jié)點(diǎn)組網(wǎng)時(shí)可以直接利用數(shù)據(jù)中心的網(wǎng)絡(luò)結(jié)構(gòu)(L2或者L3),不需要額外的NAT、隧道或者Overlay Network,沒(méi)有額外的封包解包,能夠節(jié)約CPU運(yùn)算,提高網(wǎng)絡(luò)效率。

簡(jiǎn)述Kubernetes共享存儲(chǔ)的作用?

Kubernetes對(duì)于有狀態(tài)的容器應(yīng)用或者對(duì)數(shù)據(jù)需要持久化的應(yīng)用,因此需要更加可靠的存儲(chǔ)來(lái)保存應(yīng)用產(chǎn)生的重要數(shù)據(jù),以便容器應(yīng)用在重建之后仍然可以使用之前的數(shù)據(jù)。因此需要使用共享存儲(chǔ)。

簡(jiǎn)述Kubernetes數(shù)據(jù)持久化的方式有哪些?

Kubernetes通過(guò)數(shù)據(jù)持久化來(lái)持久化保存重要數(shù)據(jù),常見(jiàn)的方式有:

  • EmptyDir(空目錄):沒(méi)有指定要掛載宿主機(jī)上的某個(gè)目錄,直接由Pod內(nèi)保部映射到宿主機(jī)上。類(lèi)似于docker中的manager volume。

  • 場(chǎng)景:

    • 只需要臨時(shí)將數(shù)據(jù)保存在磁盤(pán)上,比如在合并/排序算法中;
    • 作為兩個(gè)容器的共享存儲(chǔ)。
  • 特性:

    • 同個(gè)pod里面的不同容器,共享同一個(gè)持久化目錄,當(dāng)pod節(jié)點(diǎn)刪除時(shí),volume的數(shù)據(jù)也會(huì)被刪除。
    • emptyDir的數(shù)據(jù)持久化的生命周期和使用的pod一致,一般是作為臨時(shí)存儲(chǔ)使用。
  • Hostpath:將宿主機(jī)上已存在的目錄或文件掛載到容器內(nèi)部。類(lèi)似于docker中的bind mount掛載方式。

    • 特性:增加了pod與節(jié)點(diǎn)之間的耦合。

PersistentVolume(簡(jiǎn)稱PV):如基于NFS服務(wù)的PV,也可以基于GFS的PV。它的作用是統(tǒng)一數(shù)據(jù)持久化目錄,方便管理。

簡(jiǎn)述Kubernetes PV和PVC?

PV是對(duì)底層網(wǎng)絡(luò)共享存儲(chǔ)的抽象,將共享存儲(chǔ)定義為一種“資源”。

PVC則是用戶對(duì)存儲(chǔ)資源的一個(gè)“申請(qǐng)”。

簡(jiǎn)述Kubernetes PV生命周期內(nèi)的階段?

某個(gè)PV在生命周期中可能處于以下4個(gè)階段(Phaes)之一。

  • Available:可用狀態(tài),還未與某個(gè)PVC綁定。
  • Bound:已與某個(gè)PVC綁定。
  • Released:綁定的PVC已經(jīng)刪除,資源已釋放,但沒(méi)有被集群回收。
  • Failed:自動(dòng)資源回收失敗。

簡(jiǎn)述Kubernetes所支持的存儲(chǔ)供應(yīng)模式?

Kubernetes支持兩種資源的存儲(chǔ)供應(yīng)模式:靜態(tài)模式(Static)和動(dòng)態(tài)模式(Dynamic)。

  • 靜態(tài)模式:集群管理員手工創(chuàng)建許多PV,在定義PV時(shí)需要將后端存儲(chǔ)的特性進(jìn)行設(shè)置。
  • 動(dòng)態(tài)模式:集群管理員無(wú)須手工創(chuàng)建PV,而是通過(guò)StorageClass的設(shè)置對(duì)后端存儲(chǔ)進(jìn)行描述,標(biāo)記為某種類(lèi)型。此時(shí)要求PVC對(duì)存儲(chǔ)的類(lèi)型進(jìn)行聲明,系統(tǒng)將自動(dòng)完成PV的創(chuàng)建及與PVC的綁定。

簡(jiǎn)述Kubernetes CSI模型?

Kubernetes CSI是Kubernetes推出與容器對(duì)接的存儲(chǔ)接口標(biāo)準(zhǔn),存儲(chǔ)提供方只需要基于標(biāo)準(zhǔn)接口進(jìn)行存儲(chǔ)插件的實(shí)現(xiàn),就能使用Kubernetes的原生存儲(chǔ)機(jī)制為容器提供存儲(chǔ)服務(wù)。CSI使得存儲(chǔ)提供方的代碼能和Kubernetes代碼徹底解耦,部署也與Kubernetes核心組件分離,顯然,存儲(chǔ)插件的開(kāi)發(fā)由提供方自行維護(hù),就能為Kubernetes用戶提供更多的存儲(chǔ)功能,也更加安全可靠。

CSI包括CSI Controller和CSI Node:

  • CSI Controller的主要功能是提供存儲(chǔ)服務(wù)視角對(duì)存儲(chǔ)資源和存儲(chǔ)卷進(jìn)行管理和操作。
  • CSI Node的主要功能是對(duì)主機(jī)(Node)上的Volume進(jìn)行管理和操作。

簡(jiǎn)述Kubernetes Worker節(jié)點(diǎn)加入集群的過(guò)程?

通常需要對(duì)Worker節(jié)點(diǎn)進(jìn)行擴(kuò)容,從而將應(yīng)用系統(tǒng)進(jìn)行水平擴(kuò)展。主要過(guò)程如下:

  • 1、在該Node上安裝Docker、kubelet和kube-proxy服務(wù);
  • 2、然后配置kubelet和kubeproxy的啟動(dòng)參數(shù),將Master URL指定為當(dāng)前Kubernetes集群Master的地址,最后啟動(dòng)這些服務(wù);
  • 3、通過(guò)kubelet默認(rèn)的自動(dòng)注冊(cè)機(jī)制,新的Worker將會(huì)自動(dòng)加入現(xiàn)有的Kubernetes集群中;
  • 4、Kubernetes Master在接受了新Worker的注冊(cè)之后,會(huì)自動(dòng)將其納入當(dāng)前集群的調(diào)度范圍。

簡(jiǎn)述Kubernetes Pod如何實(shí)現(xiàn)對(duì)節(jié)點(diǎn)的資源控制?

Kubernetes集群里的節(jié)點(diǎn)提供的資源主要是計(jì)算資源,計(jì)算資源是可計(jì)量的能被申請(qǐng)、分配和使用的基礎(chǔ)資源。當(dāng)前Kubernetes集群中的計(jì)算資源主要包括CPU、GPU及Memory。CPU與Memory是被Pod使用的,因此在配置Pod時(shí)可以通過(guò)參數(shù)CPU Request及Memory Request為其中的每個(gè)容器指定所需使用的CPU與Memory量,Kubernetes會(huì)根據(jù)Request的值去查找有足夠資源的Node來(lái)調(diào)度此Pod。

通常,一個(gè)程序所使用的CPU與Memory是一個(gè)動(dòng)態(tài)的量,確切地說(shuō),是一個(gè)范圍,跟它的負(fù)載密切相關(guān):負(fù)載增加時(shí),CPU和Memory的使用量也會(huì)增加。

簡(jiǎn)述Kubernetes Requests和Limits如何影響Pod的調(diào)度?

當(dāng)一個(gè)Pod創(chuàng)建成功時(shí),Kubernetes調(diào)度器(Scheduler)會(huì)為該P(yáng)od選擇一個(gè)節(jié)點(diǎn)來(lái)執(zhí)行。對(duì)于每種計(jì)算資源(CPU和Memory)而言,每個(gè)節(jié)點(diǎn)都有一個(gè)能用于運(yùn)行Pod的最大容量值。調(diào)度器在調(diào)度時(shí),首先要確保調(diào)度后該節(jié)點(diǎn)上所有Pod的CPU和內(nèi)存的Requests總和,不超過(guò)該節(jié)點(diǎn)能提供給Pod使用的CPU和Memory的最大容量值。

簡(jiǎn)述Kubernetes Metric Service?

在Kubernetes從1.10版本后采用Metrics Server作為默認(rèn)的性能數(shù)據(jù)采集和監(jiān)控,主要用于提供核心指標(biāo)(Core Metrics),包括Node、Pod的CPU和內(nèi)存使用指標(biāo)。

對(duì)其他自定義指標(biāo)(Custom Metrics)的監(jiān)控則由Prometheus等組件來(lái)完成。

簡(jiǎn)述Kubernetes中,如何使用EFK實(shí)現(xiàn)日志的統(tǒng)一管理?

在Kubernetes集群環(huán)境中,通常一個(gè)完整的應(yīng)用或服務(wù)涉及組件過(guò)多,建議對(duì)日志系統(tǒng)進(jìn)行集中化管理,通常采用EFK實(shí)現(xiàn)。

EFK是 Elasticsearch、Fluentd 和 Kibana 的組合,其各組件功能如下:

  • Elasticsearch:是一個(gè)搜索引擎,負(fù)責(zé)存儲(chǔ)日志并提供查詢接口;
  • Fluentd:負(fù)責(zé)從 Kubernetes 搜集日志,每個(gè)node節(jié)點(diǎn)上面的fluentd監(jiān)控并收集該節(jié)點(diǎn)上面的系統(tǒng)日志,并將處理過(guò)后的日志信息發(fā)送給Elasticsearch;
  • Kibana:提供了一個(gè) Web GUI,用戶可以瀏覽和搜索存儲(chǔ)在 Elasticsearch 中的日志。

通過(guò)在每臺(tái)node上部署一個(gè)以DaemonSet方式運(yùn)行的fluentd來(lái)收集每臺(tái)node上的日志。Fluentd將docker日志目錄/var/lib/docker/containers和/var/log目錄掛載到Pod中,然后Pod會(huì)在node節(jié)點(diǎn)的/var/log/pods目錄中創(chuàng)建新的目錄,可以區(qū)別不同的容器日志輸出,該目錄下有一個(gè)日志文件鏈接到/var/lib/docker/contianers目錄下的容器日志輸出。

簡(jiǎn)述Kubernetes如何進(jìn)行優(yōu)雅的節(jié)點(diǎn)關(guān)機(jī)維護(hù)?

由于Kubernetes節(jié)點(diǎn)運(yùn)行大量Pod,因此在進(jìn)行關(guān)機(jī)維護(hù)之前,建議先使用kubectl drain將該節(jié)點(diǎn)的Pod進(jìn)行驅(qū)逐,然后進(jìn)行關(guān)機(jī)維護(hù)。

簡(jiǎn)述Kubernetes集群聯(lián)邦?

Kubernetes集群聯(lián)邦可以將多個(gè)Kubernetes集群作為一個(gè)集群進(jìn)行管理。因此,可以在一個(gè)數(shù)據(jù)中心/云中創(chuàng)建多個(gè)Kubernetes集群,并使用集群聯(lián)邦在一個(gè)地方控制/管理所有集群。

簡(jiǎn)述Helm及其優(yōu)勢(shì)?

Helm 是 Kubernetes 的軟件包管理工具。類(lèi)似 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 一樣。

Helm能夠?qū)⒁唤MK8S資源打包統(tǒng)一管理, 是查找、共享和使用為Kubernetes構(gòu)建的軟件的最佳方式。

Helm中通常每個(gè)包稱為一個(gè)Chart,一個(gè)Chart是一個(gè)目錄(一般情況下會(huì)將目錄進(jìn)行打包壓縮,形成name-version.tgz格式的單一文件,方便傳輸和存儲(chǔ))。

  • Helm優(yōu)勢(shì)

在 Kubernetes中部署一個(gè)可以使用的應(yīng)用,需要涉及到很多的 Kubernetes 資源的共同協(xié)作。使用helm則具有如下優(yōu)勢(shì):

  • 統(tǒng)一管理、配置和更新這些分散的 k8s 的應(yīng)用資源文件;
  • 分發(fā)和復(fù)用一套應(yīng)用模板;
  • 將應(yīng)用的一系列資源當(dāng)做一個(gè)軟件包管理。
  • 對(duì)于應(yīng)用發(fā)布者而言,可以通過(guò) Helm 打包應(yīng)用、管理應(yīng)用依賴關(guān)系、管理應(yīng)用版本并發(fā)布應(yīng)用到軟件倉(cāng)庫(kù)。
    對(duì)于使用者而言,使用 Helm 后不用需要編寫(xiě)復(fù)雜的應(yīng)用部署文件,可以以簡(jiǎn)單的方式在 Kubernetes 上查找、安裝、升級(jí)、回滾、卸載應(yīng)用程序。

END -

「技術(shù)分享」某種程度上,是讓作者和讀者,不那么孤獨(dú)的東西。歡迎關(guān)注我的微信公眾號(hào):「Kirito的技術(shù)分享」


瀏覽 68
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 少妇熟女一区| 中文字幕乱码视频| 国产人妖TS重口系列网站观看| 中文字幕天天干| 怡红院AV| 国产精品一级A片| 国产21区| 欧美日韩精品一区二区| 蜜臀在线视频| WWW亚洲视频| 麻豆成人精品国产免费| 97A片在线观看播放| 97日韩天堂| xxxx日韩| 国产成人免费做爰视频| 操逼动漫| 肉色超薄丝袜脚交一区二区| 欧美精品亚洲| www.日韩精品| 亚洲激情成人| 黄色视频免费网站| 一区二区黄色| 在线观看亚洲无码视频| 国产亚洲一区二区三区| 欧美又粗又大AAA片| 成人性生活片| mm131亚洲国产精品久久| 青青免费在线视频| 免费无码成人片在线播放| 国产在线拍揄自揄拍无码视频| 亚洲无码一区二区三| 3d动漫精品一区二区三区在线观看| 日韩欧美高清第一期| 亚洲AV自拍| 91在线欧美| 天天搞天天搞| 人妻日韩| AA精品| 中文字幕在线不卡视频| 高清无码在线观看视频| 无码精品一区二区免费| 久久伊人草| 久久黄色视频| 乱伦乱码| 欧美性爱视频免费看| 91蝌蚪视频在线| 欧美激情影院| 性爱免费视频| 中文在线A∨在线| 北条麻妃91| 69堂在线观看| 精品孕妇孕交无码专区| 俺去也| 免费成人视频在线观看| 青青草操逼视频| 人妻免费在线视频| 国产免费一区| 91爱看| 久久午夜福利电影| 思思久久高颜值| 国产又粗又猛又爽又黄91精品| 中文字幕亞洲高清手機版第617| 日韩无码第四页| 国产7777| 亚洲激情成人| 久草热视频| 麻豆MD传媒MD0071| 日日骚av一区二区三区| 无码免费视频| 欧美成人大片| 欧美激情网站| 无码伦理| 久久国产大奶| 日本人妻在线视频| 五月天av在线观看| 一本色综合亚洲精品| 日本AI高清无码在线观看网址| 青草一区| 天天干天天插| 欧美黄色精品| 午夜亚洲国产一区视频网站| 五月丁香婷婷激情| 久久黄色免费看| 亚洲高清无码视频在线| 四虎色情| 久草中文网| 国产成人小视频在线观看| 欧美精品日韩在线观看| 日韩欧美黄色片| 伊人成年网| 久操影视| 中文电视剧字幕在线播放免费视频| 国产特黄级AAAAA片免| 成人乱妇无码AV在线| 日本中文字幕中文翻译歌词| 国产乱码精品一区二区三区的特点| 奇米色色色| 91人人妻人人操| 4080yy午夜理论片成人| 中文字幕一区二区三区四虎在线| 日韩人妻无码电影| 可以免费观看的AV| 欧美77777| 无码中文字幕在线视频| 午夜福利h| 成人视频免费在线观看| 97久久人人| 亚洲日皮| 日韩美在线视频| 自拍偷拍一区二区| 国产青草视频在线观看| 午夜成人福利电影| 91精品国产综合久久久蜜臀主演| 狠狠色噜噜狠狠狠888| 特级西西人体444WWw高清大胆| 色欲影音| 91无码电影| 中文无码一区二区三区四区| 黄色性视频| 日韩一区无码| 日皮视频在线| 吃奶做爱视频| 少妇BBBBBB| 91黄色电影| 特黄AAAAAAAAA真人毛片| 在线A片免费观看| 2019中文字幕在线免费观看| 999这里只有精品| 黄片免费看| 色老板最新地址| 欧美日韩群交| 日本欧美在线观看高清| 美女网站黄a| 国产精品久久久一区二区三区| A片久久久| 欧美视频综合网| 一级a在线| 欲色av| 日韩在线观看网站| 中国极品少妇XXX| 天天看天天色| 精品无码一区二区三区蜜桃李宗瑞| 天天干天天日天天射| 一本一道伊人99久久综| 亚洲无码视频一区| 国产黄色免费看| 亚洲中文无码第一页| 激情网站免费| 日批网站在线| 少妇bbb搡bbbb搡bbbb| 岛国AV在线播放| 黄色A片免费观看| 高清无码在线免费观看视频| 国产香蕉av| 精品一区二区久久久久久久网站| 黄色日逼片| 欧美大香蕉网| 午夜性爱福利| 中文AV第一页| 高清无码片| 亚洲一区高清无码| 麻豆传媒免费观看| 黄色免费观看网站| 北条麻妃青青久久| 欧美拍拍| 亚洲精品456| 国产乱子伦-区二区三区| 亚洲性爱片| 人人摸人人操人人爱| 九九久久免费视频| 手机在线观看av| 大香蕉伊人av| 强伦轩人妻一区二区三区70后| 亚洲福利电影| 正在播放ADN156松下纱荣子 | 激情自拍偷拍| AV大香蕉| 国产香蕉91| 想要xx视频| 欧美一级久久| 日本超碰在线| 久久久久国产一区二区三区| 久色性爱视频| 东京亚洲无码| 中文字幕东京热加勒比| 蜜桃成人久久| 我爱大香蕉| 呦小BBBB小小BBBB| 三级毛片视频| 无码不卡在线| 国产精品人妻AⅤ在线看| 中文字幕亚洲有码| 亚洲一区无码| 欧洲三级片网站| 亚洲色图图片| 免费一级黄色片| 亚欧成人在线视频| 日韩高清无码免费观看| 国产美女在线播放| 日韩中文字幕无码| 久久中文娱乐网| 亚洲欲色| 四川搡BBBBB搡BBB| 在线无码免费观看| 黄网站在线播放| 最近最经典中文MV字幕| 裸体黄色一极大片| 动漫日逼| 亚洲AV无码高清| 日韩v欧美v日本v亚洲v国产v| 日本一区二区三区免费看| www.国产精品| 精品国内视频| 欧美男女操逼视频| 天天日天天综合| 黄色一级片在线看| 91精品人妻一区二区三区蜜桃| 自拍偷拍第一页| 国产A级成人婬片1976| 免费观看黄片网站| 亚洲秘av无码一区二区| 日韩熟妇无码中文字幕| 六月婷婷五月丁香| 亚洲性图第一页| 日欧内射| 国产91精品在线观看| 高清无码在线观看视频| 热无码av| 亚洲理论| 黄色直播在线观看| 亚洲AV无码成人精品| av福利在线观看| 无码人妻久久一区二区三区蜜桃| 午夜啊啊啊| 久久精品视频18| 2025最新偷拍| ww成人| 日本A在线观看| 无码人妻丰满熟妇区毛片视频| 佳佳女王footjob超级爽| 综合黄色| 色视频在线观看免费| 中国字幕在线观看韩国电影| 国内精品久久久久久久久久| 波多野结衣无码高清视频| 高h视频在线观看| 日韩三级片AV| 乱伦激情视频| 成人无码人妻| 日韩无码网| 成人做爱黄片| 国产18毛片18水多精品| 亚洲性爱视频在线观看| 日本午夜三级视频| 51精品日本| 精品A区| 黄色毛片网站| 国产一二三四| 色五月婷婷基地| 在线视频91| 亚洲成人人妻| 欧美A在线观看| 国产女人18毛片水真多18精品| 最美孕交vivoestv另类| 17c白丝喷水自慰| 97人妻人人揉人人躁人人| 在线看片a| 18性XXXXX性猛交| 91蝌蚪在线观看| 欧美精品99久久久| 久操香蕉| 成人免费视频一区二区| 婷婷综合视频| 狠狠操夜夜操| 人人操人人摸人人看| 操逼操逼操逼| 人妖和人妖互交性XXXX视频| 亚洲字幕在线观看| 亚洲天堂成人| 看免费黄色录像| 麻豆AV无码| 欧美激情一区| 九九re精品视频在线观看| 午夜男人天堂| 欧美成人综合| 爱爱日韩| 午夜性爱网站| 丝袜人妻被操视频| 久操久干| 久久久久亚洲AV成人网人人软件| 老鸭窝av免费入口在线观看 | 国产精品一区二区三区在线| 午夜激情视频在线观看| 精品国产AV鲁一鲁一区| 亚洲视频在线视频| 国产AV天堂| 996热re视频精品视频这里| 蜜桃精品视频在线观看| 乱伦中文| 日韩无码AV中文字幕| 色色国产| 人妻少妇一区二区| 久久国产精品免费视频| av在线精品| 影音先锋av网| 97精品人人妻人人| 老妇性BBWBBWBBWBBW| 一级黄色性爱视频| 自拍偷拍国产| 亚洲天堂女人| 亚洲午夜在线观看| 极品美女援交在线| 超碰人人妻| 五月丁香欧美| 精品国产999久久久免费| 久久免费视频播放| 中文字幕永久在线5| 就要干就要操| 国产第四页| 人人摸人人摸人人| 天天操天天插| 欧美黄色网视频| 91人妻人人澡人人爽人妻| 一区二区三区不卡视频| 骚逼日本| 91狠狠| 蜜臀av一区| 可以在线观看的av| 日韩美毛片| 日韩中文字幕精品| 大香蕉国产精品| 日韩在线91| 91九九九| 日p视频在线观看| 中文字幕2018第一页| 欧美又粗又大AAA片| 一级a免一级a做免费线看内祥| 天天操夜夜爽| eeuss在线| 日本色色| 最新亚洲无码在线观看| 色五月综合网| 国产av影音| 青青草国产亚洲精品久久| 亚洲AV无码成人精品区东京热| 亚洲激情一区| 国产AV无码区亚洲| av无码免费| 日韩成人无码一区二区视频| 久久精品久| 尤物视频在线观看| 天天干天天操天天爽| 91免费视频在线| 国产精品美女久久久久久久久| 激情丁香五月天| 北条麻妃无码视频在线| 91欧美在线| 久久成人久久| 国产足交| 老司机午夜电影| 国产乱妇乱子伦视频免费观看让女人 | 久草精品视频| 国产精品视频瘾无码| 99ri精品| 欧洲三级片网站| 亚洲欧美成人电影| 午夜视频99| 在线日韩av| 国产成人a亚洲精品www| 青青国产在线| 青青草黄色片| 丁香五月大香蕉| 亚洲国产av一区| 狼人狠狠干| 成人午夜小电影| 精品码一区二在线观看| 成人无码自拍| 黄色影片在线观看| 国产精品啪啪啪啪| 中文字幕在线网站| 精品人妻一区二区三区蜜桃| 黄片免费看| 免费播放黄色成人片| 久草福利在线观看| 操逼视频高清无码| 人人射| 成人视频你懂的| 一级黄色蜜芽视频| 999大香蕉| 国产香蕉视频免费| 成人肏屄视频| 五月婷婷中文版| 亚洲三级在线播放| 亚洲婷婷在线观看| 中文字幕福利| 男女乱伦视频| 色多多毛片| 精品成人视频| 狠狠撸狠狠撸| 激情丁香五月天| 国产日韩一区二区三免费高清| www.sese| 日本国产视频| 日韩无码专区| Japanese在线观看| 在线亚洲免费观看| 日韩欧美A片| 无码欧精品亚洲日韩一区| 69免费视频| 免费无码蜜臀在线观看| 四川美女网久草| 99热3| 免费观看成人片| 丁香六月天| 四虎www| 中文字幕亚洲视频| 最新中文字幕在线观看视频| 日韩大码无码| 日韩日屄视频| 亚洲五月天色| 高潮视频在线观看| 久久婷香| 欧美熟女一区二区| 国产草逼视频| 国产亚洲无码激情| 三级片久久| 九九精品视频在线观看| 久草三级片| 国产在线不卡| 88在线无码精品秘入口九色| 日本免费高清视频在线观看一区| 黄色操屄视频| 国产一级AA片| 水蜜桃视频网| 人人做人人操| 成人性生活影视av| 一级黄色视频在线观看| 亚洲熟女一区二区| 青草中文娱乐网在线| 蜜桃视频一区二区三区四区使用方法 | 伊人天天操| 在线伊人网| 麻豆久久| 日韩精品一区二区三区中文在线| 无码人妻丰满熟妇啪啪| 日韩欧美在线视频观看| 欧美性爱免费在线视频| 黄色福利视频| 91探花在线播放| 亚洲成av人无码| 欧美黄色电影网站| 丁香花激情网| 黄色视频在线免费观看高清视频| 日本高清无码在线| 欧美性生活视频| 久久久久大香蕉| 亚洲操逼电影| 欧美色一级| 精品视频99| 九九九视频在线观看| 91视频在线| 九九色九九| 99re这里只有精品6| 国产成人一区| AV片在线免费观看| 蜜桃影院| 久久亚洲日韩天天做日日做综合亚洲 | 免费看黄色毛片| 三级网站在线| 无码白浆| 亚洲午夜成人精品一区二区| 白虎高清无码大尺度免费在线观看| 无码人妻中文字幕| av在线三级| 美女网站黄a| 嘿嘿午夜| 狠狠躁日日躁夜夜躁A片小说免费| 亚洲在线无码播放| 大鸡吧在线| 成人免费视频国产免费麻豆, | 久久丁香五月| 国产成人三级视频| 丰满人妻一区二区免费看| 亚洲视频免费播放| 麻豆成人网| 日韩v亚洲| 日韩一级A片| 3D动漫啪啪精品一区二区中文字幕 | 操久久| 韩国无码一区二区三区| 九草在线| 91视频在线免费观看app| 国产AV福利| 一级片免费视频| 牛牛AV在线| 蜜桃无码在线| 91站街农村熟女露脸| 日韩在线视频91| 99色综合网| 波多野结衣一区二区| 蜜桃av色偷偷av老熟女| 欧美成人高清无码| 一区无码精品| 韩日无码人妻| 欧美精品久久久久久久多人混战| 国产午夜在线视频| 东京热视频免费观看| 99精品国自产在线| 免费观看高清无码视频| 中文字幕亚洲视频| 国产在线中文字幕| 天天艹夜夜| 蜜桃人妻无码AV天堂三区| 青青草AV| 中文字幕第八页| 欧美精品区| 在线观看黄视频| 风间由美大荫蒂无码AV| 精品成人Av一区二区三区 | 亚洲欧洲中文字幕| 97大香蕉视频| 超碰精品| 一级特黄大片录像i| 亚洲高清无码免费观看| 中文字幕在线一区二区a| 四虎最新地址| 色AV网| 久操播放器| 欧美成人精品AAA| 四川女人毛多水多A片| 国产尤物视频| 玖玖爱在线精品视频| 中文字幕无码观看| 国产suv精品一区二区6精华液| 中日韩欧美一级A片免费| 男女www| 一区二区三区无码在线观看| 日韩欧美人妻| 欧美69影院| 一本道精品在线| 波多野结衣视频在线观看| 久久综合九九| 蜜桃视频网站| 丰滿老婦BBwBBwBBw| 日韩人妻无码视频| 泄火熟妇2-ThePorn| 九九热精品在线视频| 中文字幕久久无码| 国产suv精品一区二区6| 亚州AV| 欧美三P囗交做爰| 东京热精品| 欧美成人视频在线观看| 日韩黄色电影在线观看| 国产91无码网站在线观看| 国产无码电影| 无码激情视频| 欧美猛男的大鷄巴| 美日韩在线观看| 麻豆蜜桃wwww精品无码| a在线观看免费| 久久久女女女女999久久| 性爱无码AV| 亚洲欧美激情小说另类| AV天堂影视在线观看| 国产一级婬片A片免费妖精视频 | 影音先锋一区二区三区| 午夜黄色视频| 少妇人妻偷人精品无码视频新浪 | 蜜桃视频在线观看18| 正在播放国产精品| 四虎性爱| 中文字幕人妻日韩在线| 日本一区二区三区免费视频| 操逼网页| 果冻传媒A片一二三区| 精品蜜桃一区二区三区| 免费在线观看av| 天天射天天干| 久久1234| 91爱看| 黄片中文| 99免费热视频| 中韩日美免费看的电影| 亚洲一级黄色大片| 自拍亚洲欧美| 波多野结衣亚洲视频| 在线内射| 国产综合久久777777麻豆| 天天爽天天射| 亚洲第一色网站| 嫩草在线精品| 国内无码| 伊人久综合| 黄网站欧美内射| 国产色婷婷精品综合在线播放| 黄色小说视频| 亚洲V无码| 麻豆自拍偷拍| 北条麻妃无码视频在线观看| 亚洲久久视频| 黄色激情网站| WWW.豆花视频精品| 婷婷少妇激情| 男女成人视频| 婷婷激情视频| 日批免费视频| www.国产在线| 超碰精品| 午夜久操| 日韩AV无码高清| 人人人妻人人人操| 草草影院第一页YYCCC| 特级西西444WWW高清| 玖玖99视频| 狠狠操综合| 丁香五月网| 中文字幕码精品视频网站| 操逼地址| 高清无码在线免费观看视频| 丝瓜av| 陈冠希和张柏芝mv| 亚洲在线视频| 欧美成人乱码一区二区三区| 特级毛片AAAAAA蜜桃| 热久久最新地址| 波多野结衣一二三区| 中文字幕2025年最好看电视剧| 国产欧美性爱| 少妇在线观看| 国产午夜福利视频在线观看| 色视频免费在线观看| 五月天AV在线| 重庆美女揉BBBB搡BBBB| 中文字幕福利电影| 日p视频在线观看| 日本中文字幕中文翻译歌词| 四虎精品成人无码A片| 色色色777| 内射视频网站| 欧美成人午夜影院| 国产成人亚洲综合AV婷婷| 影音先锋在线视频| 亚洲日韩精品中文字幕| 学生妹作爱片| 国产精品久久毛片| 手机成人在线视频| 无码视频免费在线观看| 91精品国产闺蜜国产在线闺蜜 | 大香蕉在线伊| 丁香婷婷色五月| 天天干天天射天天| 亚洲精品视频免费观看| 国产在线拍揄自揄拍无码福利| 亚洲福利女神成人福利| 人人舔人人爱| 亚洲成人无码一区| 18XXX亚洲HD护士JD| 欧美一区电影| 国产在线播放91| 中国字幕在线观看韩国电影| 台湾省成人网站| 成人H动漫精品一区二区无码| 日韩av中文字幕在线| 五月天操逼| 亚洲福利视频电影精| 成人天堂一区二区三区| Chinese搡老女人| 丁香五月婷婷五月| 日韩无码人妻一区| 日本AⅤ在线观看| 西西444www大胆高清图片| 激情五月天开心网| 日日拍夜夜拍| 雾水情缘电影港片| 三级A片视频| 亚洲精品第一页| 日韩草比| 黄色一级片免费观看| 亚洲午夜福利电影| 成人影片亚洲| 免费中文字幕av| 亚洲高清在线视频| 五月天久久综合| 中文字幕在线日亚洲9| 大草AV| 色色色热| 狠狠操在线视频| 91无码一区二区| 无码囯无精品毛片大码| 六月丁香欧美综合| 一级黄色电影免费| 亚洲AV成人无码精在线| 亚洲无码久久网| 九色国产在线| 性爱网站免费看| 五月丁香激情婷婷| 免费在线观看a| 翔田千里无码视频| 亚洲www在线观看| 成人大战香蕉最新视频| 亚洲综合色网站| 91站街农村熟女露脸| 高圆圆一区二区三区| 欧美日韩操逼视频| 91AV免费看| 免费视频一区二区三区四区| 91视频美女内射| 91福利网站| 91成人片| 五月天婷婷影院影院| 免费无码在线观看| 亚洲一级a片| 国产资源av| 91精品国产91久久久久久吃药| 国产AV不卡| 成人黄片网| 中文字幕在线观看网址最新地址| 久久久久三级| 先锋影音中文字幕| 大香蕉伊人成人网| 亚洲人妻一区二区| 在线观看免费视频无码| 国产男女啪啪视频| 国产麻豆精品ThePorn| 粉嫩av一区二区白浆| www.啪啪| 精品少妇人妻一区二区| 一本在线| 欧美日韩在线看| 苗条一区小视频| 日韩一级黄色毛片| 最新免费毛片| 国产三级午夜理伦三级| 免费看黄片| 久久精品国产99精品国产亚洲性色| 国产精品一区二区黑人巨大| 欧美日韩精品一区二区| 日韩AV成人无码久久电影| 91aaa在线观看| 精品人妻在线| 亚洲视频一区二区三区| 国内不卡一卡二视频| 日韩在线不卡| 欧洲第一无人区观看| 欧美色一级| 大香蕉黄色网| 久久久久亚洲AV无码专区成人| 欧美黄色性爱视频| 中文字幕综合在线| 老司机免费视频| 北条麻妃在线视频| 成人黄色网| 亚洲黄色一区| 国产AV一卡| 99久久精品国产一区色| 欧美久久久久久久| 亚洲猛男操逼欧美国产视频| 偷拍欧美日韩| 午夜资源站| 一区不卡| 91福利视频在线观看| 91爱看| 九九偷拍| 大香蕉黄色片| 午夜亚洲AV永久无码精品蜜芽| 日韩欧美二区| 99无码精品| 人人操人人色| 亚洲天堂在线观看免费| 中文字幕乱在线| 欧美色图在线视频| 人人色人人看| 波多野结衣被操| 91大片| 伊人69| 精品人人操| 人人草人人干| 欧美成人在线视频网站| 色就操| 日日干干| 视色影院| 国产欧美日韩综合在线视频| 日韩无码免费视频| 性饥渴熟妇乱子伦| 在线久操| 日韩午夜欧美精品一二三区| 自拍av在线| 波多野吉衣高清无码| 一级成人视频| 狠狠躁日日躁夜夜躁A片无码视频 强伦轩一区二区三区四区播放方式 | 成人精品福利| 成人免费Av| 国产成人免费在线| 中文在线一区| 中文字幕第一页亚洲| 久久久成人网| 无码人妻系列| 黄色搞逼视频| 黄色毛片网站| 国产熟妇婬乱A片免费看牛牛| 日韩99在线| 亚州一级二级| 天天干天天插| 中文字幕一区二区三区四区在线视频| 四房五月婷婷| 国产精品久久久久的角色| 亚洲中文无码在线| 国产成人无码区亚洲A片356p | 五月天福利网| 详情:绿帽夫妻多人运动开淫啪-91n| 亚洲成人视频免费观看| 亚洲精品午夜| 蜜臀久久99久久久久久宅男| 成人a级网站| 亚洲黄片免费观看| 澳门毛片| 口工视频| 天天干天天操天天拍| 婷婷综合缴情亚洲另类在线| 伊人网在线视频观看| 日本视频一区二区三区| 翔田千里无码播放| 国产性受XXXXXYX性爽| 欧美日本成人网站入口| 毛片内射| 国产色五月| 国内久久婷婷| 欧美AA级毛片| 亚洲欧美日韩在线| 欧美天堂成人三级| 国产福利91精品一区二区三区 | 无码高清在线| 日韩欧美在线视频观看| 国产无码免费在线观看| 国产一区二区电影| 久久黄色视屏| 国产亚洲婷婷| 男人的天堂av网站| 91探花足浴店按摩店| 豆花成人视频| 福利网站在线观看| 国产v视频| 国产主播中文字幕| 日本一级特级毛片视频| 操日韩美女| 日韩一级片子| 日韩一级在线观看| 婷婷五月天激情四射| 操逼亚洲| 亚洲性爱影院| 69er小视频| 日本中文字幕中文翻译歌词| 亚洲偷拍视频| 久久久精品一区| 亚洲五月激情| 国产18女人水真多免费看| 无码一区二区三区四区| www99热| 国产无码高清视频| 人人操在线播放| 日日碰日日摸| 青草一区| 另类老妇极品BBWBBw| 五月天无码免费视频| 欧美三级欧美一级| 国产高清激情| www.黄色在线| 欧美激情婷婷| 亚洲国产成人精品综合99| 三级片在线看片AV| 久久精品大屁股| 日韩无码高清视频| 日韩一区二区三区在线观看| 男女激情网站| 麻豆AV96熟妇人妻| 三级片中文字幕| 国产熟女乱伦视频| 久久AV片| 一区二区三区无码在线观看| 老司机免费福利视频| 亚洲精品97久久中文字幕| 天堂成人在线| 黄色小网站在线观看| 色婷婷AV一区二区三区软件| 日本爱爱小视频| 麻豆视频一区二区| 无码一区三区| 亚洲精品一区二区三区在线观看| 午夜高清无码视频| 三级三级久久三级久久18| 人妻少妇无码视频| 五月精品| 操毛| 成人做爰A片一区二区| 影音先锋一区二区三区| 欧美午夜福利| 青草av在| 蜜桃久久久久久久| 骚视频网站|