目錄[隱藏][顯示]
- 1. 什麼是 Kubernetes?
- 2. Kubernetes中的容器是什麼意思?
- 3. Kubernetes的主要組件有哪些?
- 4. kubernetes 中的編排是什麼意思?
- 5. 什麼是 Kubernetes 集群?
- 6. Kubernetes如何讓容器化部署變得更簡單?
- 7. Kubernetes 和 Docker Swarm 之間存在哪些根本區別?
- 8. 什麼是 Kubernetes 中的命名空間?
- 9. Kubernetes etcd master組件到底是什麼?
- 10. Kubernetes上的API安全有哪些解決方案?
- 11.部署在宿主機和容器上的應用有什麼區別?
- 12. 你所說的 Minikube 到底是什麼意思?
- 13、Kubernetes集群如何監控?
- 14. Kubernetes節點有什麼作用?
- 15. 詳細描述潮人。
- 16.描述Kubernetes主節點的運行。
- 17. Container 和 Pod 有什麼區別?
- 18. 你對 Kubernetes 中的負載均衡器的理解是什麼?
- 19. Kube-API server 有什麼作用?
- 20. Kubernetes 的stateful sets 是什麼意思?
- 21. 你如何檢查 pod 的中央日誌?
- 22. ClusterIP:它是什麼?
- 23. 告訴我有關複製控制器的信息?
- 24. Ingress 網絡是如何運作的,它是什麼?
- 25. Kubernetes 中的 Prometheus:它有什麼用?
- 26.什麼是無頭服務?
- 27. 要在本地運行 Kubernetes 架構,我需要什麼?
- 28. 你對Stateful set的理解是什麼?
- 29. 在Kubernetes中,minions是什麼意思?
- 30. 服務在 Kubernetes 組件中執行哪些功能?
- 31.Helm到底是什麼?
- 32.解釋PVC
- 結論
谷歌最初於 2014 年創建了開源容器編排技術 Kubernetes。容器化應用程序的部署、擴展和管理都旨在實現自動化。
隨著時間的推移,Kubernetes 已經發展成為業界事實上的容器編排標準,並被各種規模的企業廣泛用於管理容器中的工作負載。
Kubernetes 在現代世界的重要性在於它能夠提供一種一致的方法來大規模管理容器化應用程序,跨越各種集群和雲環境。 因此,企業可以管理、擴展和 部署他們的應用程序 快速有效地。
Kubernetes 廣泛的功能集(包括自我修復、自動擴展和滾動升級)進一步簡化了容器化應用程序的維護。
隨著越來越多的企業使用容器化和微服務來加速他們的應用程序開發和部署過程,Kubernetes 的範圍預計將在未來不斷擴大。
雲原生技術的採用以及向多雲和混合雲系統的普遍遷移都將在很大程度上依賴於 Kubernetes。 隨著越來越多的設備連接到互聯網,Kubernetes 也將越來越多地用於 邊緣計算 和物聯網。
我假設您已經了解這些細節,因為您正在閱讀這篇關於 Kubernetes 面試問題的帖子,它將告訴您最常被問到的面試問題。 讓我們開始。
1. 什麼是 Kubernetes?
Kubernetes 是一個 開源框架 用於容器化應用程序編排和管理。 它使一致且有效地部署、擴展和維護容器化應用程序成為可能。
Kubernetes 提供了一種用於大規模管理容器化應用程序的單一方法,旨在跨各種集群和雲環境運行。
自我修復、自動擴展和滾動升級只是使管理容器化應用程序變得更加容易的部分功能。
2. Kubernetes中的容器是什麼意思?
容器是一種可移植、輕量級且自給自足的打包和運行軟件的方法。 使用容器在 Kubernetes 中一致有效地完成應用程序打包和部署。
為了使自己與其他容器和宿主機保持距離,每個容器只執行一個進程。 應用程序的依賴項、庫和配置文件都包含在用作容器定義的容器映像中。
由於 Kubernetes 使用容器編排來管理和擴展容器,因此容器的預期數量的副本始終在運行。 這使開發人員可以輕鬆地跨多個集群和雲環境管理和部署他們的應用程序。
3. Kubernetes的主要組件有哪些?
以下是 kubeneters 的主要組件:
- Kubernetes master:該組件還包括controller manager和scheduler、etcd(分佈式key-value store)、API server等組件,負責管理整個集群。
- 節點:這些是執行容器化程序的工作站。 kubelet 與 master 交互以維護集群的預期狀態,與容器運行時(例如 Docker)一起在每個節點上執行。
- Pod:Kubernetes 對像模型中最小和最基本的元素是 Pod,它充當一個或多個容器的宿主。
- 服務:服務為 pod 提供一致的端點並啟用負載平衡和服務發現。
- 複製控制器:它們保證所需數量的 Pod 副本始終在運行。
- Secrets 和 ConfigMaps:這些資源用於維護 Pod 和其他集群對象的配置數據和機密。
4. kubernetes 中的編排是什麼意思?
在 Kubernetes 中,術語“編排”是指容器及其連接的資源的自動化管理和協調。 它涉及的活動包括網絡、可擴展性、部署和自我修復。 Kubernetes 使用 pod、服務和復制控制器等對象來編排應用程序。
可容納一個或多個容器的 Pod 是最小的可部署單元。 服務管理 負載均衡 和服務發現並為 pod 提供可靠的端點。 由於復制控制器,pod 的副本始終以所需數量的副本運行。
5. 什麼是 Kubernetes 集群?
一組跨不同環境和機器(基於雲、物理、虛擬和本地)運行容器化應用程序的節點構成了 Kubernetes 集群。 它促進了應用程序的簡單管理和遷移以及它們的創建。
6. Kubernetes如何讓容器化部署變得更簡單?
由於典型的應用程序會在許多主機上的容器集群中運行,因此所有這些容器都需要相互通信。
因此,為了實現這一點,需要一個可以擴展、負載平衡和監控容器的大型系統。 您必須使用 Kubernetes 來簡化容器化部署,因為它與云無關並且可以在任何公共或私有提供商上運行。
7. Kubernetes 和 Docker Swarm 之間存在哪些根本區別?
使用 Docker Swarm 調度和集群 Docker 容器,Docker Swarm 是 Docker 的原生開源容器編排工具。 以下特徵使 Swarm 有別於 Kubernetes:
- 雖然 Kubernetes 和 Docker Swarm 都缺乏自動縮放功能,但 Docker 的縮放速度是 Kubernetes 的五倍。
- Kubernetes 以儀表板的形式提供了 GUI,但 Docker Swarm 沒有。
- 相對於Kubernetes更難架設但提供強大集群保障,Docker Swarm更易於安裝但沒有穩定的集群。
- 雖然 Kubernetes 包含用於日誌記錄和監控的內置功能,但 Docker 需要外部工具,如 ELK 堆棧。
- 可以通過 Docker 部署滾動更新,但不能自動回滾; 可以使用 Kubernetes 部署滾動更新和自動回滾。
8. 什麼是 Kubernetes 中的命名空間?
Kubernetes 命名空間用於有多個用戶在廣闊的地理區域從事多個項目的環境。 命名空間將集群資源劃分給多個用戶。
9. Kubernetes etcd master組件到底是什麼?
Etcd 是 Kubernetes 主服務器的重要組成部分。 此外,它還充當 Kubernetes 集群的中心,其中項目存儲在分佈式鍵值存儲中。
複製技術與算法結合使用,以在服務器之間保存保存在 etcd 中的數據。 在 etcd 服務器之間比較和交換數據時,樂觀貨幣用於最小化鎖定情況並提高服務器速度。
10. Kubernetes上的API安全有哪些解決方案?
可以通過以下方式提供 API 安全性:
- 通過API認證方式
- 為API服務器認證模式選擇合適的認證模式=Node、RBAC
- 跟踪 RBAC 錯誤
- 確保使用 TLS 來保護流量
- 使用 authorization-mode=Webhook 確保 Kubeless 保護其 API
- 消除默認服務帳戶權限
- 使用 kube 的最新版本
- 確保 kube-dashboard 遵循嚴格的 RBAC 策略
- 實施 pod 安全策略以限制容器訪問並保護節點
11.部署在宿主機和容器上的應用有什麼區別?
操作系統和架構構成了已部署的應用程序。 操作系統將有一個內核,其中包含應用程序所需的多個庫。
運行進程容器的機器稱為容器主機。 由於此類軟件不同於其他程序,因此應用程序必須包含必要的庫。 二進製文件不能侵犯任何其他軟件的權利,因為它們與系統的其餘部分是分開的。
12. 你所說的 Minikube 到底是什麼意思?
借助 Minikube,Kubernetes 可以輕鬆地在本地運行。 這允許虛擬機託管具有單個節點的 Kubernetes 集群。
13、Kubernetes集群如何監控?
可以使用多種方法跟踪在 Kubernetes 下運行的容器的運行和狀態。 Prometheus 是最常用的樂器之一,包含許多部件,這些部件在下面的部分中進行了細分。
- Prometheus 服務器收集和存儲時間序列數據。
- 它包括有助於檢測應用程序代碼的客戶端庫。
- 它具有一個可以支持臨時工作的推送網關。
- 有些導出器具有針對各種容器服務的專門功能,例如 StatsD、HAProxy、Graphite 等。
- 此外,您將收到一個警報管理器來處理各種支持系統上的通知。
14. Kubernetes節點有什麼作用?
對於 pod 的運行,Node 提供了至關重要的功能。 Nods,也稱為 minions,可以根據集群在任何真實或虛擬計算機上運行。
在 Kubernetes 中,節點是主要的工作計算機,而主組件單獨監督每個節點。
15. 詳細描述潮人。
Heapster 結合了在每個節點上執行的 Kubelet 生成的整個集群中的數據。 這個容器管理工具由這個 Kubernetes 集群原生支持,它像集群中的任何其他 pod 一樣作為一個 pod 運行。
基本上,這需要定位集群中的每個節點並利用機器上的 Kubernetes 代理從集群的 Kubernetes 節點查詢數據。
16.描述Kubernetes主節點的運行。
主節點提升工作節點的統治和控制節點。 這類似於 Kubernetes 集群。 這些節點負責集群管理以及用於配置和管理集合資源的 API。 由於專用 Pod 的優勢,Kubernetes 主節點可以與 Kubernetes 本身一起運行。
17. Container 和 Pod 有什麼區別?
作為複制單元,Kubernetes 使用 pod,它是一組容器。 容器是應用程序的 pod 應創建的代碼集合。 在同一個 pod 中,容器可以相互通信。
18. 你對 Kubernetes 中的負載均衡器的理解是什麼?
最普遍和接受的服務公開方法之一是負載平衡器。 根據工作環境的不同,負載均衡器可以是內部負載均衡器,也可以是外部負載均衡器。
當外部負載均衡器將流量從外部負載路由到後端 pod 時,內部負載均衡器會自動平衡負載並為 pod 分配必要的配置。
19. Kube-API server 有什麼作用?
對於 API 對象,此類型驗證並提供配置信息。 它由複制控制器、服務和 Pod 組成。 此外,它還提供 REST 操作和集群的接口。 所有其他組件都通過這種通用的前端集群狀態相互通信。
20. Kubernetes 的stateful sets 是什麼意思?
稱為有狀態集的工作負載 API 對像用於管理有狀態應用程序。 它用於擴展 pod 集和管理部署。 在鏈接到有狀態集的磁盤存儲中,有狀態 Pod 的狀態信息和其他彈性數據被保存並保持最新。
21. 你如何檢查 pod 的中央日誌?
要從 pod 中檢索中央日誌,您可以使用兩種日誌記錄方式之一。
- 在節點級別使用日誌代理。
- 流中的邊車容器
- 將日誌記錄代理與邊車容器一起使用。
- 直接從程序導出日誌
22. ClusterIP:它是什麼?
默認的 Kubernetes 服務 ClusterIP 提供集群中的其他應用程序可以訪問的內部集群服務(沒有外部訪問)。
23. 告訴我有關複製控制器的信息?
對於所有長時間運行的 pod,複製控制器充當主管。 它保證在任何時刻所需數量的 pod 處於活動狀態,並且每個 pod 或 pod 組具有一致的結構。
如果 pod 的數量多於預期數量,則多餘的 pod 將被終止。 此外,控制器將立即更換任何有故障的吊艙。
24. Ingress 網絡是如何運作的,它是什麼?
由於名為入口的項目,用戶可以從 Kubernetes 集群外部訪問您的 Kubernetes 服務。 通過建立指定哪些入站連接到達特定服務的規則,用戶可以配置訪問。
這個 API 對象提供了控制 Kubernetes 集群中的服務如何被集群外部的訪問者通過 HTTPS/HTTP 訪問所需的路由規則。 有了這個,用戶可以快速有效地建立流量路由規則,而無需製作多個負載均衡器或將每個服務暴露給節點。
25. Kubernetes 中的 Prometheus:它有什麼用?
一個名為 Prometheus 的開源工具包用於根據指標監控應用程序並發出警告。 它提供數據模式和查詢語言,並能夠提供指標信息和操作。 它使語言能夠用於許多工具性目的。
除了 Alertmanager 和 Grafana,Prometheus operator 還提供對部署和 K8s 服務的簡單監控。
26.什麼是無頭服務?
無頭服務是一種使用 IP 地址但提供有關已連接 Pod 的信息而不是負載平衡的服務。
27. 要在本地運行 Kubernetes 架構,我需要什麼?
對於 Kubernetes 集成,一些本地基礎設施已經進行了重構。 需要高級專業知識才能將存儲、服務器和網絡集成到一個無縫系統中。
選擇合適的網絡和存儲硬件對於 Kubernetes 至關重要,因為它可以與存儲資源、負載均衡器等進行交互。自動化網絡和存儲組件是 Kubernetes 價值主張的關鍵組成部分。
28. 你對Stateful set的理解是什麼?
稱為有狀態集的工作負載 API 項用於管理有狀態應用程序。 它還可用於擴展 pod 集和管理部署。 連接到有狀態集的磁盤存儲包含有狀態 Pod 的狀態信息和其他數據。
29. 在Kubernetes中,minions是什麼意思?
在 Kubernetes 中,節點被稱為工作機器; 以前,它被稱為 minion。 基於集群,可以是虛擬機,也可以是真機。
每個節點都由 Kubernetes 主組件管理,並包含操作 pod 所需的服務。 容器運行時、kubelet 和 Kube-proxy 包含在節點提供的服務中。
30. 服務在 Kubernetes 組件中執行哪些功能?
通過提供虛擬 IP 地址,服務作為 Pod 的抽象。 虛擬 IP 地址有助於用戶連接到在 pod 內運行的容器。 它是一個組件,用於確定容器在 pod 中的排列方式。
31.Helm到底是什麼?
CNF 維護的 Helm 應用程序包管理註冊表可用於 Kubernetes。 預配置 掌舵圖 可以下載並部署在您的 Kubernetes 系統中。 這是 Kubernetes 環境中最受歡迎的包管理解決方案之一。 DevOps 團隊可以將應用程序部署到生產和開發環境中,對它們進行版本控制,並使用現有圖表跟踪它們的進度。
32.解釋PVC
PVC 是 Persistent Volume Claim 的縮寫。 它是 Kubernetes 為 Pod 請求的存儲。 用戶無需了解底層供應。 形成 pod 的名稱空間和應該進行此聲明的位置應該匹配。
結論
Kubernetes 面試題及答案完整。
毫無疑問,關於 Kubernetes 的知識還有很多,這項尖端技術使管理和運行數以千計的容器成為可能,但這是一個堅實的起點。 如需面試準備方面的幫助,請參閱 Hashdork的採訪系列.
發表評論