docker与k8s面试题基础
目錄
1.docker與虛擬機(jī)的區(qū)別
2.虛擬機(jī)常用有幾種網(wǎng)絡(luò)模式?
3.什么是容器:
4.什么是Docker容器?
5.容器技術(shù)的原理:
6.容器技術(shù)都有哪些應(yīng)用:
7.容器的簡(jiǎn)單安裝使用過(guò)程
8.docker能干些什么?
9.docker三大核心
10.virsh命令工具是提供管理各虛擬機(jī)的命令接口
11.自定義docker鏡像倉(cāng)庫(kù)
12.docker自定義鏡像,如果寫(xiě)了多條CMD,那么默認(rèn)執(zhí)行時(shí)會(huì)執(zhí)行哪一條命令呢?
13.docker如何做持久化存儲(chǔ)
14.容器的六大命名空間
15.dockerfifile中ADD和Copy區(qū)別
16.docker命令
17.docker怎樣實(shí)現(xiàn)容器件的獨(dú)立
18.什么是ELK
19.微服務(wù):
20.K8S架構(gòu):
21.Kubectl管理命令
22.K8S的POD
23.pod的創(chuàng)建過(guò)程:
24.控制器-Deployment:
25.K8S的監(jiān)控
1.docker與虛擬機(jī)的區(qū)別
1)docker啟動(dòng)快速,屬于秒級(jí)別.虛擬機(jī)啟動(dòng)通常需要幾分鐘 2)docker需要的資源更少,docker在操作系統(tǒng)級(jí)別進(jìn)行虛擬化,docker容器和內(nèi)核交互,幾乎沒(méi)有性 能損耗,性能優(yōu)于虛擬機(jī) 3)docker更輕量級(jí),docker的架構(gòu)可以共用一個(gè)內(nèi)核與共享應(yīng)用程序庫(kù),占用內(nèi)存極小.同樣的硬件 環(huán)境,docker運(yùn)行的鏡像數(shù)量遠(yuǎn)多于虛擬機(jī)數(shù)量,對(duì)系統(tǒng)的利用率更高 4)與虛擬機(jī)相比,docker的隔離性更弱,docker屬于進(jìn)程之間的隔離,虛擬機(jī)可以實(shí)現(xiàn)系統(tǒng)級(jí)別的隔離 5)安全性:docker的安全性更弱,docker的租戶root和宿主機(jī)root等同,一旦容器內(nèi)的用戶從普通用 戶權(quán)限提升為root權(quán)限,他就直接具備了宿主機(jī)的root權(quán)限,進(jìn)而可進(jìn)行無(wú)限制的操作.虛擬機(jī)租戶 root權(quán)限和宿主機(jī)的root虛擬機(jī)的權(quán)限是分離的 6)可管理性:docker的集中化管理工具還不算成熟,各種虛擬化技術(shù)都有成熟的管理工具,例 如:VMware等 7)高可用和可恢復(fù)性:docker對(duì)業(yè)務(wù)的高可用支持是通過(guò)快速部署實(shí)現(xiàn)的.虛擬機(jī)具備負(fù)載均衡,高可用,容錯(cuò)性,遷移和數(shù)據(jù)保護(hù)等成熟的熟的保障機(jī)制,保障業(yè)務(wù)的連續(xù)性 8)快速創(chuàng)建、刪除:虛擬化的創(chuàng)建是分鐘級(jí)別的,docker容器創(chuàng)建是秒級(jí)別的,docker的快速迭代性決定了無(wú)論是開(kāi)發(fā)、測(cè)試部署都可以節(jié)約大量時(shí)間 9)交付、部署:虛擬機(jī)可以通過(guò)鏡像實(shí)現(xiàn)環(huán)境交付的一致性,但鏡像分發(fā)無(wú)法體系化,docker在 dockerfifile中記錄了容器的構(gòu)建過(guò)程,可在集群中實(shí)現(xiàn)快速分發(fā)和快速部署2.虛擬機(jī)常用有幾種網(wǎng)絡(luò)模式?
有橋接模式、隔離模式(自定義模式)、NAT模式、路由模式橋接模式:Guest與Host連接到同一個(gè)交換機(jī)上;通過(guò)橋接物理網(wǎng)卡,相當(dāng)于直連到Host所在網(wǎng) 絡(luò)。 隔離模式:允許Guest訪問(wèn)同一虛擬交換機(jī)上的其他Guest;但是不能訪問(wèn)Host所在的外部網(wǎng)絡(luò)。 NAT模式(默認(rèn)):將Guest虛擬機(jī)的默認(rèn)網(wǎng)關(guān)指向Host物理機(jī)的virtbr0接口的IP地址;Guest共 享真機(jī)的網(wǎng)絡(luò)連接,以地址轉(zhuǎn)換的方式訪問(wèn)外網(wǎng)。 路由模式:由Host物理機(jī)充當(dāng)路由器,開(kāi)啟轉(zhuǎn)發(fā);需要額外設(shè)置外網(wǎng)與Guest虛擬機(jī)之間互訪的路由條目,Guest以路由轉(zhuǎn)發(fā)的方式訪問(wèn)外網(wǎng)(需要在真機(jī)配置iptables規(guī)則)。3.什么是容器:
容器就是將軟件打包成標(biāo)準(zhǔn)戶單元,用于開(kāi)發(fā)、交付和部署,是應(yīng)用程序封裝和交付的核心技術(shù)。
4.什么是Docker容器?
Docker容器包括應(yīng)用程序及其所有依賴項(xiàng),但與其他容器共享內(nèi)核, 在主機(jī)操作系統(tǒng)的用戶空間中作為獨(dú)立進(jìn)程運(yùn)行。Docker容器是Docker鏡像的實(shí)例5.容器技術(shù)的原理:
利用Cgroups和Namespace兩大機(jī)制,前者是將進(jìn)程分組管理的內(nèi)核功能,通過(guò)Cgroups隔離進(jìn)程,控制進(jìn)程的資源占用(cpu,內(nèi)存等)情況在操作系統(tǒng)底層限制物理資源,起到集裝箱/容器的作用;后者是讓每個(gè)進(jìn)程組有獨(dú)立的PID,IPC和網(wǎng)絡(luò)空間,起到隔離的作用。
還有一個(gè)SELinux 安全
6.容器技術(shù)都有哪些應(yīng)用:
1.容器化傳統(tǒng)應(yīng)用:容器不僅能提高現(xiàn)有應(yīng)用的安全性和可移植性,還能節(jié)約成本。
2.持續(xù)集成和持續(xù)部署 (CI/CD) 通過(guò) Docker 加速應(yīng)用管道自動(dòng)化和應(yīng)用部署,提升交付速度
3.微服務(wù) 加速應(yīng)用架構(gòu)現(xiàn)代化進(jìn)程。核心:拆分服務(wù)(nginx+php-fpm)
4.IT 基礎(chǔ)設(shè)施優(yōu)化 充分利用基礎(chǔ)設(shè)施,節(jié)省資金。
將微服務(wù)應(yīng)用放置在容器中,帶來(lái)了快速與可移植性。從開(kāi)發(fā)、測(cè)試、上線,實(shí)現(xiàn)了“一次編寫(xiě),到處運(yùn)行”。
總之,通過(guò)容器、微服務(wù)的有效結(jié)合應(yīng)用,最終幫助企業(yè)應(yīng)用演進(jìn)到互聯(lián)網(wǎng)架構(gòu),實(shí)現(xiàn)IT投資和收益的最優(yōu)化。
7.容器的簡(jiǎn)單安裝使用過(guò)程
環(huán)境準(zhǔn)備:需要64位操作系統(tǒng),centos7以上版本,關(guān)閉防火墻,開(kāi)啟路由轉(zhuǎn)發(fā),開(kāi)放iptable的FORWARD默認(rèn)規(guī)則
安裝軟件:docke-ce*+依賴包(多數(shù)需要連上阿里云等網(wǎng)絡(luò)yum源安裝)
導(dǎo)入鏡像:#docker load -i ?鏡像.tar.gz
啟動(dòng)容器:#docker run -itd ?+鏡像名:標(biāo)簽 ?/bin/bash
8.docker能干些什么?
1)加速本地開(kāi)發(fā)(通過(guò)Docker能夠快速搭建好開(kāi)發(fā)和運(yùn)行環(huán)境,并且該環(huán)境可以直接傳遞給測(cè) 試和產(chǎn)品部署) 2)自動(dòng)打包和部署應(yīng)用 3)創(chuàng)建輕量、私有的PasS環(huán)境 4)自動(dòng)化測(cè)試和持續(xù)集成部署 5)部署并擴(kuò)展Web應(yīng)用、數(shù)據(jù)庫(kù)和后端服務(wù) 6)創(chuàng)建安全沙盒(使容器隔離) 7)輕量級(jí)的桌面虛擬化9.docker三大核心
docker主要包括三大核心概念,理解了這三個(gè)核心概念,就能理解docker的整個(gè)生命周期: 1)鏡像:類似于虛擬機(jī)鏡像,可以將它理解為一個(gè)面向Docker引擎的只讀模板,包含了文件系統(tǒng),鏡像是創(chuàng)建Docker容器的基礎(chǔ)。 2)容器:類似于一個(gè)輕量級(jí)的沙箱,Docker利用容器來(lái)運(yùn)行和隔離應(yīng)用。容器是從鏡像的應(yīng)用運(yùn)行實(shí)例,可以將其啟動(dòng),開(kāi)始,停止,刪除,而這些容器都是相互隔離,互不可見(jiàn)的。鏡像自 身是只讀的,容器從鏡像啟動(dòng)的時(shí)候,Docker會(huì)在鏡像的最上層創(chuàng)建一個(gè)可寫(xiě)層,鏡像本身保持不變。 3)倉(cāng)庫(kù):類似于代碼倉(cāng)庫(kù),是docker集中存放鏡像文件的場(chǎng)所。10.virsh命令工具是提供管理各虛擬機(jī)的命令接口
– 支持交互模式,查看/創(chuàng)建/停止/關(guān)閉 .. .. 格式:virsh 控制指令 [虛擬機(jī)名稱] [參數(shù)] virsh nodeinfo #//查看KVM節(jié)點(diǎn)(服務(wù)器)信息 virsh list #//列出正在運(yùn)行的虛擬機(jī) virsh list --all #//列出所有的虛擬機(jī) virsh net-list--all #//列出虛擬網(wǎng)絡(luò) virsh dominfo 虛擬機(jī)名稱 #查看挃定虛擬機(jī)的信息 運(yùn)行|重啟|關(guān)閉挃定的虛擬機(jī) virsh start|reboot|shutdown 虛擬機(jī)名稱11.自定義docker鏡像倉(cāng)庫(kù)
1)創(chuàng)建存放Dockerfifile的目錄 2)書(shū)寫(xiě)Dockerfifile FROM:基礎(chǔ)鏡像 MAINTAINER:鏡像創(chuàng)建者的信息 EXPOSE:開(kāi)放的端口 ENV:設(shè)置變量 ADD:復(fù)制文件到鏡像 RUN:制作鏡像時(shí)執(zhí)行的命令,可以有多個(gè) WORKDIR:容器默認(rèn)的工作目錄 CMD:容器啟動(dòng)時(shí)執(zhí)行的命令,僅可以有一條CMD 3)執(zhí)行docker命令創(chuàng)建鏡像倉(cāng)庫(kù) docker build 容器名:標(biāo)簽 .(當(dāng)前)12.docker自定義鏡像,如果寫(xiě)了多條CMD,那么默認(rèn)執(zhí)行時(shí)會(huì)執(zhí)行哪一條命令呢?
如果寫(xiě)入了多條CMD,那么執(zhí)行時(shí)默認(rèn)或執(zhí)行最后一條命令13.docker如何做持久化存儲(chǔ)
1)Bind mounts:可以實(shí)現(xiàn)將Host中的任意路徑掛載到容器中,可以存儲(chǔ)在任意位置,非 Docker的進(jìn)程或者容器可能隨時(shí)對(duì)其進(jìn)行修改,存在一定的風(fēng)險(xiǎn)。 在單容器情況下,使用Bind mount可以用 -v 或者 --volume,在swarm集群中,我們使用 -- mount,在Docker17.06之后,可以統(tǒng)一使用 --mount 2)Volumes:實(shí)現(xiàn)將Docker中的某一個(gè)volume掛載到容器中,存儲(chǔ)在Docker Host文件系統(tǒng)的某一個(gè)路徑下,默認(rèn)是/var/lib/docker/volumes,由Docker進(jìn)行管理,非Docker的進(jìn)程不能修改該路徑下的文件,比較安全。VOlumes和bind的對(duì)比: Volumes 的備份和遷移更加容易。 可以使用 Docker CLI 或者 Docker API 管理 volumes。 Volumes 既可以在 Linux 的容器中使用,也可以在 Windows 的容器中使用。 Volumes 在多容器中共享更加的安全。 Volume drivers 允許我們把數(shù)據(jù)存儲(chǔ)在遠(yuǎn)程主或云提供商。| 不同點(diǎn) | bind mount | volume |
| source位置 | 可以任意指定 | NarlibdockerNolimes/ |
| Host源地址為空 | 覆蓋掉有容器的內(nèi)容 | 容器內(nèi)數(shù)據(jù)復(fù)制到volume |
| 是否支持單個(gè)文件 | 支持 | 不支持,只能是目錄 |
| 權(quán)限控制 | 讀寫(xiě)或者只讀 | 讀寫(xiě)或者只讀 |
| 移值性 | 弱,與host path綁定 | 強(qiáng),無(wú)需指定host目錄 |
| Key | Value |
| type | bind,volume,tmpfs,如不指定默認(rèn)為volume |
| destination(或者dst/target) | 容器中的路徑 |
| tmpfs-type(或者tmpfs-mode) | 附加參數(shù) |
14.容器的六大命名空間
六大命名空間:主機(jī)名空間、文件系統(tǒng)、用戶、網(wǎng)絡(luò)、進(jìn)程、信號(hào)向量15.dockerfifile中ADD和Copy區(qū)別
COPY指令和ADD指令的區(qū)別在于是否支持從遠(yuǎn)程URL獲取資源。 COPY指令只能從執(zhí)行docker build所在的主機(jī)上讀取資源并復(fù)制到鏡像中。COPY不能對(duì)壓 縮文件進(jìn)行自動(dòng)解壓,COPY只能對(duì)一些較小的文件進(jìn)行操作,不能對(duì)大文件操作 ADD指令還支持通過(guò)URL從遠(yuǎn)程服務(wù)器讀取資源并復(fù)制到鏡像中。ADD可以對(duì)壓縮文件進(jìn)行 自動(dòng)解壓并安裝build16.docker命令
容器生命周期管理 — docker[run|start|stop|restart|kill|rm|pause|unpause] 容器操作運(yùn)維 — docker[ps|inspect|top|attach|events|logs|wait|export|port] 容器 rootfs命令 — docker[commit|cp|diffff] 鏡像倉(cāng)庫(kù) — docker[login|pull|push|search] 本地鏡像管理 — docker[images|rmi|tag|build|history|save|import] 其他命令 — docker[info|version]17.docker怎樣實(shí)現(xiàn)容器件的獨(dú)立
1)pidnamespace 不同用戶的進(jìn)程就是通過(guò) pidnamespace隔離開(kāi)的,且不同 namespace中可以有相同pid。所有的LXC 進(jìn)程在 docker中的父進(jìn)程為 docker進(jìn)程,每個(gè) lxc進(jìn)程具有不同的 namespace。 2)netnamespace 有了 pidnamespace,每個(gè) namespace中的 pid能夠相互隔離,但是網(wǎng)絡(luò)端口還是共享host的端 口。網(wǎng)絡(luò)隔離是通過(guò) netnamespace實(shí)現(xiàn)的,每個(gè) netnamespace有獨(dú)立的network devices,IP addresses,IP routing tables,/proc/net目錄。這樣每個(gè)container的網(wǎng)絡(luò)就能隔離開(kāi)來(lái)。docker 默認(rèn)采用 veth的方式將 container中的虛擬網(wǎng)卡同 host上的一個(gè) dockerbridge:docker0連接在一起。 3)ipcnamespace container 中 進(jìn) 程 交 互 還 是 采 用 linux 常 見(jiàn) 的 進(jìn) 程 間 交 互 方 法 (interprocess communication- IPC),包括常見(jiàn)的信號(hào)量、消息隊(duì)列和共享內(nèi)存。 container的進(jìn)程間交互實(shí)際上還是host上具有相同pidnamespace中的進(jìn)程間交互。 4)mntnamespace 類 似 chroot,將 一 個(gè) 進(jìn) 程 放 到 一 個(gè) 特 定 的 目 錄 執(zhí) 行 。 mnt namespace 允 許 不 同 namespace的進(jìn)程看到的文件結(jié)構(gòu)不同,這樣每個(gè) namespace中的進(jìn)程所看到的文件目錄就被隔離開(kāi)了。在 container里頭,看到的文件系統(tǒng),就是一個(gè)完整的 linux系統(tǒng),有 /etc、/lib等,通過(guò)chroot實(shí)現(xiàn)。 5)utsnamespaceUTS("UNIX Time-sharing System")namespace允許每個(gè) container擁有獨(dú)立的hostname和domainname,使其在網(wǎng)絡(luò)上可以被視作一個(gè)獨(dú)立的節(jié)點(diǎn)而非 Host上的一個(gè)進(jìn)程。 6)usernamespace 每個(gè) container可以有不同的 user和 groupid,也就是說(shuō)可以在 container內(nèi)部用container內(nèi)部的用戶執(zhí)行程序而非 Host上的用戶。 有了以上 6種 namespace從進(jìn)程、網(wǎng)絡(luò)、IPC、文件系統(tǒng)、UTS 和用戶角度的隔離,一個(gè) container就可以對(duì)外展現(xiàn)出一個(gè)獨(dú)立計(jì)算機(jī)的能力,并且不同 container從 OS 層面實(shí)現(xiàn)了隔離.然而不同 namespace之間資源還是相互競(jìng)爭(zhēng)的,仍然需要類似 ulimit來(lái)管理每個(gè) container所能使用的資源 - -cgroup。 cgroups(Controlgroups)實(shí)現(xiàn)了對(duì)資源的配額和度量。18.什么是ELK
三大組件 Elasticsearch:負(fù)責(zé)日志檢索和儲(chǔ)存 Logstash:負(fù)責(zé)日志收集和分析、處理 Kibana:負(fù)責(zé)日志的可視化 ELK可用于解決: 分布式日志數(shù)據(jù)集中式查詢和管理 系統(tǒng)監(jiān)控,包含系統(tǒng)硬件和應(yīng)用各個(gè)組件的監(jiān)控 故障排查 安全信息和事件管理 報(bào)表功能 Elasticsearch特點(diǎn): 實(shí)時(shí)分析 分布式實(shí)時(shí)文件存儲(chǔ),將每個(gè)字段都編入索引 文檔導(dǎo)向,所有的對(duì)象全部是文檔高可用性,易擴(kuò)展,支持集群(Cluster)、分片和復(fù)制(shards和Replicas) 接口友好,支持JSON Logstash特點(diǎn): 所有類型的數(shù)據(jù)集中處理 不同模式和格式數(shù)據(jù)的正常化 自定義日志格式的迅速擴(kuò)展 為自定義數(shù)據(jù)源輕松添加插件 Kibana特點(diǎn): 靈活的分析和可 視化平臺(tái) 實(shí)時(shí)總結(jié)流量和數(shù)據(jù)的圖表 為不同的用戶顯示直觀的界面 及時(shí)分享和嵌入的儀表板19.微服務(wù):
微服務(wù)架構(gòu)也是從Monolithic架構(gòu)演進(jìn)來(lái)的。Monolithic應(yīng)用中按照職責(zé)的不同,拆分解耦成一個(gè)個(gè)的單獨(dú)微服務(wù)(Micro Services),每個(gè)微服務(wù)都對(duì)應(yīng)了一個(gè)獨(dú)立的業(yè)務(wù)功能,也只定義了該功必須的一些操作。微服務(wù)獨(dú)自或者共同部署在多臺(tái)應(yīng)用服務(wù)器上,微服務(wù)之間通過(guò)標(biāo)準(zhǔn)的Restful接口實(shí)現(xiàn)訪問(wèn)。這樣當(dāng)一個(gè)微服務(wù)出現(xiàn)問(wèn)題時(shí),并不會(huì)影響到其他的服務(wù)。而且,微服務(wù)可以基于資源的需求進(jìn)行獨(dú)立擴(kuò)展,可以被部署在更小的主機(jī)上。各個(gè)微服務(wù)使用的開(kāi)發(fā)語(yǔ)言也可以不同,只要保持接口協(xié)議統(tǒng)一。
Monolithic架構(gòu)天然的不具備健壯性,因?yàn)橐坏┠硞€(gè)組件出現(xiàn)問(wèn)題,整個(gè)服務(wù)基本上就掛了。自身不具備分布式服務(wù)能力,通常需要依賴于負(fù)載均衡器、數(shù)據(jù)庫(kù)HA等來(lái)實(shí)現(xiàn)服務(wù)的分布化和負(fù)載分擔(dān)。相對(duì)而言,互聯(lián)網(wǎng)架構(gòu)優(yōu)勢(shì)在于分布式、去中心化,支持彈性伸縮。其核心是輕應(yīng)用、微服務(wù)。
20.K8S架構(gòu):
主要由master組件丶node節(jié)點(diǎn)組件丶image鏡像倉(cāng)庫(kù)組成
?master組件又分很多組件:
????????api server整個(gè)系統(tǒng)的對(duì)外接口
???????? scheduler 系統(tǒng)資源調(diào)度器
???????? controller manager 管理控制器
????????? etcd 負(fù)責(zé)節(jié)點(diǎn)間的服務(wù)發(fā)現(xiàn)和配置共享
?flannel 網(wǎng)絡(luò)插件,實(shí)現(xiàn)不同主機(jī)的容器間互聯(lián)互通
K8S集群管理:管理命令kubectl,啟動(dòng)容器服務(wù),查看資源,查看節(jié)點(diǎn)狀態(tài)等
POD:K8S中最小的部署單元,不是進(jìn)程/程序,而是一個(gè)環(huán)境,包括容器,存儲(chǔ),網(wǎng)絡(luò),配置等.pod是臨時(shí)性的.資源文件:定義了如何啟動(dòng)PDO,如何運(yùn)行,啟動(dòng)副本等功能的文件,叫資源文件.可以用來(lái)創(chuàng)建,刪除,管理資源對(duì)象.
node計(jì)算節(jié)點(diǎn)安裝:
????????docker-ce
????????kubelet,
????????kube-proxy,
IPVS模式,daemon.json,master主機(jī)的token值和證書(shū).
安裝網(wǎng)絡(luò)插件flannel:實(shí)現(xiàn)不同主機(jī)的容器間互聯(lián)互通.
21.Kubectl管理命令
補(bǔ)全kubectl命令的Tab鍵:
\# kubectl completion bash >/etc/bash_completion.d/kubectl
\# kubeadm completion bash >/etc/bash_completion.d/kubeadm
kubectl get命令:
\#kubectl get nodes(查詢節(jié)點(diǎn)狀態(tài)) ?#kubectl get deployment(查詢資源名稱)
\#kubectl get pods -o wide #查詢pod容器資源和主機(jī)信息
kubectl exec命令:
\#kubectl exec -it 容器id /bin/bash ?#啟動(dòng)新命令,進(jìn)入一個(gè)正在運(yùn)行的容器中
kubectl describe命令:
\#kubectl describe 資源類型 資源名稱 ?#查詢資源詳細(xì)信息(多用于拍錯(cuò))
kubectl logs和attach命令:
\#kubectl logs 資源名稱 ??#輸出操作日志信息
kubectl delete命令:
\#kubectl delete 資源類型 資源名稱 ?#刪除資源(直接刪除pod會(huì)自動(dòng)創(chuàng)建pod,刪除資源則不會(huì))
集群擴(kuò)容命令:
\#kubectl scale 資源名稱 --replicas=1/2/3 ??#pod伸縮
查看K8S日志命令:
22.K8S的POD
k8s中的最小部署單元,不是一個(gè)程序/進(jìn)程,而是一個(gè)環(huán)境(包括容器、存儲(chǔ)、網(wǎng)絡(luò)ip:port、容器配置)。
其中可以運(yùn)行1個(gè)或多個(gè)容器(docker或其他容器),在一個(gè)pod內(nèi)部的容器共享所有資源,包括共享pod的ip:port和磁盤(pán)。
pod是臨時(shí)性的,用完即丟棄的,當(dāng)pod中的進(jìn)程結(jié)束、node故障,或者資源短缺時(shí),pod會(huì)被干掉。基于此,用戶很少直接創(chuàng)建一個(gè)獨(dú)立的pods,而會(huì)通過(guò)k8s中的controller來(lái)對(duì)pod進(jìn)行管理。
23.pod的創(chuàng)建過(guò)程:
1)kubectl 向api server(提供各種資源對(duì)象)發(fā)起一個(gè)create pod 請(qǐng)求
2)api server接收到pod創(chuàng)建請(qǐng)求后,生成一個(gè)包含創(chuàng)建信息的yaml
3)api server將剛才的yaml信息寫(xiě)入etcd數(shù)據(jù)庫(kù)
4)scheduler(資源調(diào)度器) 查看 api server,類似于通知機(jī)制
5)kubelet(node節(jié)點(diǎn)架構(gòu)之一,監(jiān)控容器的) 通過(guò)監(jiān)測(cè)etcd數(shù)據(jù)庫(kù),發(fā)現(xiàn)api server 中有了個(gè)新的Node;調(diào)用node中的docker api,創(chuàng)建容器
24.控制器-Deployment:
支持?jǐn)U容/收縮,支持應(yīng)用服務(wù)更新與回滾
25.K8S的監(jiān)控
metrics-server:監(jiān)控系統(tǒng)資源使用的插件,監(jiān)控node節(jié)點(diǎn)上cpu,內(nèi)存使用率等,啟用監(jiān)控需要kubelet證書(shū)
Dashboard:基于網(wǎng)頁(yè)的Kubernetes用戶界面,可以對(duì)容器應(yīng)用拍錯(cuò),管理集群資源,展示了K8S集群中的資源狀態(tài)信息和所有報(bào)錯(cuò)信息.
Prometheus:監(jiān)控系統(tǒng)和時(shí)間序列數(shù)據(jù)庫(kù),目前常用里監(jiān)控K8S容器管理系統(tǒng).
總結(jié)
以上是生活随笔為你收集整理的docker与k8s面试题基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 网络基本面试题
- 下一篇: 监控zabbix面试题