成视频年人黄网站视频福利_欧美日韩国产亚洲精品一级A片_国产精品香蕉成人网_亚洲欧美精品综合一区_亚洲成AV人综合在线观看

Linux運(yùn)維工程師面試題(8) 時(shí)訊

來源: 嗶哩嗶哩

Linux運(yùn)維工程師面試題(8)1 docker 的網(wǎng)絡(luò)類型,使用場景2 CMD 和 ENTRYPOINT 的區(qū)別3 怎么減小 dokcer 鏡像的大小4 現(xiàn)有一個(gè)正在運(yùn)行的容器,容器中沒有 ps、top、netstat、ss、ip、lsof等命令,怎么查看容器內(nèi)進(jìn)程及pid和打開的端口5 如何臨時(shí)退出?個(gè)正在交互的容器的終端,而不終止它?6 如果只有鏡像或者在運(yùn)行的容器,沒有 dockerfile,現(xiàn)在有需求需要借助這個(gè)鏡像或容器重寫 dockerfile,怎么查看這個(gè)鏡像或容器之前的構(gòu)建過程。7 COPY 和 ADD 的區(qū)別8 制作鏡像方式9 K8S 有那些組件,都是干什么用的10 K8S 創(chuàng)建一個(gè)pod的流程

Linux運(yùn)維工程師面試題(8)

祝各位小伙伴們早日找到自己心儀的工作。持續(xù)學(xué)習(xí)才不會被淘汰。地球不爆炸,我們不放假。機(jī)會總是留給有有準(zhǔn)備的人的。加油,打工人!


(相關(guān)資料圖)

1 docker 的網(wǎng)絡(luò)類型,使用場景

none:在使用none模式后,Docker容器不會進(jìn)行任何網(wǎng)絡(luò)配置,沒有網(wǎng)卡、沒有IP也沒有路由,因此默認(rèn)無法與外界通信,需要手動添加網(wǎng)卡配置IP等,所以極少使用。

bridge:默認(rèn)模式??梢院屯獠烤W(wǎng)絡(luò)之間進(jìn)行通信,通過SNAT訪問外網(wǎng),使用DNAT可以讓容器被外部主機(jī)訪問,所以此模式也稱為NAT模式。

host:此模式由于直接使用宿主機(jī)的網(wǎng)絡(luò)無需轉(zhuǎn)換,網(wǎng)絡(luò)性能最高,但是各容器內(nèi)使用的端口不能相同,適用于運(yùn)行容器端口比較固定的業(yè)務(wù)。

container:使用此模式創(chuàng)建的容器需指定和一個(gè)已經(jīng)存在的容器共享一個(gè)網(wǎng)絡(luò),而不是和宿主機(jī)共享網(wǎng),新創(chuàng)建的容器不會創(chuàng)建自己的網(wǎng)卡也不會配置自己的IP,而是和一個(gè)被指定的已經(jīng)存在的容器共享IP和端口范圍,因此這個(gè)容器的端口不能和被指定容器的端口沖突,除了網(wǎng)絡(luò)之外的文件系統(tǒng)、進(jìn)程信息等仍然保持相互隔離,兩個(gè)容器的進(jìn)程可以通過lo網(wǎng)卡進(jìn)行通信。

2 CMD 和 ENTRYPOINT 的區(qū)別

No ENTRYPOINTENTRYPOINT exec_entry p1_entryENTRYPOINT [“exec_entry”, “p1_entry”]No CMDerror, not allowed/bin/sh -c exec_entry p1_entryexec_entry p1_entryCMD [“exec_cmd”, “p1_cmd”]exec_cmd p1_cmd/bin/sh -c exec_entry p1_entryexec_entry p1_entry exec_cmd p1_cmdCMD exec_cmd p1_cmd/bin/sh -c exec_cmd p1_cmd/bin/sh -c exec_entry p1_entryexec_entry p1_entry /bin/sh -c exec_cmd p1_cmd

3 怎么減小 dokcer 鏡像的大小

盡量選取滿足需求但較小的基礎(chǔ)系統(tǒng)鏡像;

清理編譯生成的文件、安裝包的緩存等臨時(shí)文件;

安裝各個(gè)軟件時(shí)候要指定準(zhǔn)確的版本號、并避免引入不需要的依賴;

減少鏡像層數(shù),合并相同的命令,比如RUN命令;

使用 Dockerfile 創(chuàng)建鏡像時(shí)候要添加 dockerignore 文件或使用干凈的工具目錄;

4 現(xiàn)有一個(gè)正在運(yùn)行的容器,容器中沒有 ps、top、netstat、ss、ip、lsof等命令,怎么查看容器內(nèi)進(jìn)程及pid和打開的端口

可以使用 docker ps 命令查看容器內(nèi)進(jìn)程的和port。也可以使用 docker top 命令查看容器內(nèi)的相關(guān)進(jìn)程,包括它們的PID和其它信息。可以使用docker port命令查看容器暴露的端口。

也可以進(jìn)入容器。在/proc目錄下查看進(jìn)程pid和其他信息。下面是/proc/pid目錄中可能包含的文件和目錄的一些例子:

cmdline:該文件包含了進(jìn)程啟動時(shí)的完整命令行參數(shù)。

cwd:該文件包含了進(jìn)程當(dāng)前的工作目錄。

environ:該文件包含了進(jìn)程環(huán)境變量列表。

exe:該文件是進(jìn)程的可執(zhí)行文件的符號鏈接,可以通過它來找到進(jìn)程的可執(zhí)行文件。

fd:該目錄包含了進(jìn)程打開的文件列表,每個(gè)文件都以符號鏈接的形式出現(xiàn)在該目錄下。

5 如何臨時(shí)退出?個(gè)正在交互的容器的終端,而不終止它?

同時(shí)按三個(gè)鍵,ctrl+p+q。如果按Ctrl+c 會使容器內(nèi)的應(yīng)用進(jìn)程終止、進(jìn)而會使容器終止。

6 如果只有鏡像或者在運(yùn)行的容器,沒有 dockerfile,現(xiàn)在有需求需要借助這個(gè)鏡像或容器重寫 dockerfile,怎么查看這個(gè)鏡像或容器之前的構(gòu)建過程。

使用docker history或者docker image history命令進(jìn)行查看。也可以使用docker inspect命令查看相關(guān)信息。

7 COPY 和 ADD 的區(qū)別

COPY 命令會將文件的所有元數(shù)據(jù)(如所有者、權(quán)限等)都復(fù)制到容器中,而ADD則不會。這意味著在使用ADD時(shí),您可能需要手動設(shè)置文件的元數(shù)據(jù)。

ADD 命令支持在拷貝文件時(shí)自動解壓縮tar文件,而 COPY 不支持。

ADD 命令支持將 URL 作為源文件,并自動下載并將其復(fù)制到容器中。

8 制作鏡像方式

docker commit ? # 通過修改現(xiàn)有容器,將之手動構(gòu)建為鏡像

docker build ? # 通過Dockerfile文件,批量構(gòu)建為鏡像

9 K8S 有那些組件,都是干什么用的

master:

kube-apiserver:API 服務(wù)器為 REST 操作提供服務(wù),公開 Kubernetes API,負(fù)責(zé)處理接受請求的工作。 并為集群的共享狀態(tài)提供前端, 所有其他組件都通過該前端進(jìn)行交互。

kube-controller-manager:負(fù)責(zé)運(yùn)行控制器進(jìn)程,負(fù)責(zé)集群內(nèi)的Node 、Pod 副本、服務(wù)端點(diǎn)( Endpoint )、命名空間(Namespace )、服務(wù)賬號( ServiceAccount )、資源定額( ResourceQuota )的管理,當(dāng)某個(gè) Node 意外宕機(jī)時(shí), Controller Manager 會及時(shí)發(fā)現(xiàn)并執(zhí)行自動化修復(fù)流程,確保集群始終處于預(yù)期的工作狀態(tài)。

kube-scheduler: 負(fù)責(zé)監(jiān)視新創(chuàng)建的、未指定運(yùn)行節(jié)點(diǎn)(node)的 Pods, 并選擇節(jié)點(diǎn)來讓 Pod 在上面運(yùn)行。

etcd:一致且高可用的鍵值存儲,用作 Kubernetes 所有集群數(shù)據(jù)的后臺數(shù)據(jù)庫。

node:

kubelet:它保證容器(containers)都運(yùn)行在 Pod 中。向 master 匯報(bào) node 節(jié)點(diǎn)的狀態(tài)信息;接受指令并在 Pod 中創(chuàng)建 docker 容器;準(zhǔn)備 Pod 所需的數(shù)據(jù)卷;返回 pod 的運(yùn)行狀態(tài);在 node 節(jié)點(diǎn)執(zhí)行容器健康檢查

kube-proxy:集群中每個(gè)節(jié)點(diǎn)(node)上所運(yùn)行的網(wǎng)絡(luò)代理, 實(shí)現(xiàn) Kubernetes 服務(wù)(Service) 概念的一部分。

容器運(yùn)行時(shí)(Container Runtime):容器運(yùn)行環(huán)境是負(fù)責(zé)運(yùn)行容器的軟件。

10 K8S 創(chuàng)建一個(gè)pod的流程

準(zhǔn)備好對應(yīng)的yaml文件,通過kubectl發(fā)送到Api Server中;

Api Server接收到客戶端的請求將請求內(nèi)容保存到etcd中;

Scheduler會監(jiān)測etcd,發(fā)現(xiàn)沒有分配節(jié)點(diǎn)的pod對象通過過濾和打分篩選出最適合的節(jié)點(diǎn)運(yùn)行pod;

節(jié)點(diǎn)會通過conteiner runntime 運(yùn)行對應(yīng)pod的容器以及創(chuàng)建對應(yīng)的副本數(shù);

節(jié)點(diǎn)上的kubelet會對自己節(jié)點(diǎn)上的容器進(jìn)行管理;

controler會監(jiān)測集群中的每個(gè)節(jié)點(diǎn),發(fā)現(xiàn)期望狀態(tài)和實(shí)際狀態(tài)不符合的話,就會通知對應(yīng)的節(jié)點(diǎn);

節(jié)點(diǎn)收到通知,會通過container runtime來對pod內(nèi)的容器進(jìn)行收縮或者擴(kuò)張。

以上面試題僅僅個(gè)人總結(jié),想到什么就寫什么,沒有任何順序,寫的有什么不對的地方請各位大佬評論、留言,我會及時(shí)更正。

原文鏈接: [Linux運(yùn)維工程師面試題(8)](/2023/03/25/1365/).

相關(guān)新聞
嫩豆腐可以生吃么?

可以。嫩豆腐生吃時(shí),可以搭配醬料直接吃,也可以搭配皮蛋等食材涼拌吃