?【推薦收藏】68道常見的Kubernetes面試題總結
本內容節選自:github.com/0voice/k8s_awesome_docu...
如果想學習更多關於雲原生、K8s的知識,可以點選訂閱更新,關注本Github。
?跟大廠一起認識K8s
- Kubernetes 的概述—官方
- Kubernetes是什麼?—紅帽redhat
- Kubernetes是什麼?—mirantis
- 深入研究 Kubernetes 核心概念—阿里巴巴
- Kubernetes 開源知識—華為
- 深入淺出Kubernetes實戰手冊(阿里雲)
?核心元件
etcd cluster –儲存Kubernetes叢集資料的分散式金鑰值儲存
kube-apiserver – 接收所有修改叢集元素的REST請求的中央管理實體
kube-controller-manager – 執行控制器程式,如複製控制器(設定pod中的副本數量)和端點控制器(填充服務、pod和其他物件)
cloud-controller-manager – 負責管理依賴於底層雲提供商的控制器流程
kube-scheduler– 幫助根據資源利用率排程叢集節點上的pod(應用程式程式在其中執行的一組共存的容器)
?論K8s的重要性
在中國,Kubernetes 已經成為約定俗成的容器編排器。82% 的單位在生產中使用 Kubernetes,和上一次調查的 72%相比有所增長。
各單位使用 Kubernetes 叢集的數量也在增加。調查物件最傾向於選擇 2-5 個 Kubernetes 生產叢集,今年和去年 35% 的使用者都選擇了 2-5 個的生產叢集配置。使用 50 個以上容器的單位數量也有增長,從 2019 年的 13% 增長到 21%,比 2018 年增長了 320%。
分隔 Kubernetes 應用程式 Separating Kubernetes Applications
在使用 Kubernetes 的單位中,84% 使用名稱空間分隔應用程式,比 2019 年的 71%增加了。58% 使用分隔叢集,比 2019 年的 42% 增加了。26% 僅使用標籤,數量與去年持平。
有多個團隊的機構中,80% 使用名稱空間分隔 Kubernetes 應用程式,比去年的 68%有所增加。60% 使用分隔叢集,比去年的 46% 有所增加;還有 22% 僅用標籤,比去年的 25% 有所減少。
打包 Packaging
Helm 再次成為最受歡迎的打包 Kubernetes 的方法,成為 64% 的使用者選擇,比去年的 54%有所增長。
Kubernetes 環境 Kubernetes Environments
在本地容器開發期間,37% 的調查物件稱他們願意選擇 Docker Kubernetes。與去年相比,這一數字比去年的 42%有所下降。雲供應商管理的 Kubernetes 成為 28% 調查物件的選擇,比去年的 14%有增長,且超過了去年排名第二的 Minikube,今年選擇 Minikube 的使用者佔 21%,排名第三。
工作負載自動伸縮 Autoscaling Workloads
在計劃伸縮 Kubernetes 工作負載的使用者中,69% 期望自動伸縮無狀態應用,比去年的 54% 有所增長;35% 計劃伸縮任務/佇列處理,比去年的 26% 有增長;34% 計劃自動伸縮有狀態應用,比去年的 23% 有增長。
在沒有使用 Kubernetes 自動伸縮功能的使用者中,31% 已經建立了自己的解決方案,28% 使用第三方解決方案。在上一次調查中,28% 的使用者不希望自動伸縮任何工作,但隨著越來越多的單位在生產中使用 Kubernetes,這一數字已經下降到了 13%。
?雲原生圖書編年史
雲原生領域歷代發行的圖書,目前以中文圖書為主。圖書資料來自京東、豆瓣。
2014 年
2014 年 12 月,《第一本 Docker 書》,James Turnbull 著,李兆海 劉斌 巨震 譯,人民郵電出版社
2015 年
2015 年 8 月,《Docker 原始碼解析》,孫巨集亮 著,機械工業出版社
2015 年 9 月,《Docker:容器與容器雲》,浙江大學 SEL 實驗室 著,人民郵電出版社
2016 年
2016 年 1 月,《Kubernetes權威指南 : 從 Docker 到 Kubernetes 實踐全接觸》,龔正 吳治輝 王偉 崔秀龍 閆健勇 崔曉寧 劉曉紅 著
2014 年 4 月,《第一本 Docker 書修訂版》,James Turnbull 著,李兆海 劉斌 巨震 譯,人民郵電出版社
2016 年 10 月,《Docker 容器與容器雲(第2版)》,浙江大學 SEL 實驗室 著,人民郵電出版社
2016 年 10 月,《Kubernetes 權威指南:從 Docker 到 Kubernetes 實踐全接觸(第二版)》,龔正 吳治輝 王偉 崔秀龍 閆健勇 崔曉寧 劉曉紅 著,電子工業出版社
2016 年 11 月,《Docker 實戰》,Jeff Nickoloff 著,胡震 譯,電子工業出版社
2016 年 11 月,《循序漸進學 Docker》,李金榜,尹燁,劉天斯,陳純 著,電子工業出版社
2017 年
2017 年 3 月,《Docker 技術入門與實戰(第二版)》,楊保華,戴王劍,曹亞侖 著,機械工業出版社
2017 年 6 月,《開源容器雲 OpenShift:構建基於 Kubernetes 的企業應用雲平臺》,陳耿 著,機械工業出版社
2017 年 6 月,《Serverless 架構:無伺服器單頁應用開發》,Ben Rady 著,鄭美贊 簡傳挺 譯
2017 年 7 月,《自己動手寫 Docker》,陳顯鷺 王炳燊 秦妤嘉 著,電子工業出版社
2017 年 8 月,《Docker 從入門到實戰》,黃靖鈞 著,機械工業出版社
2017 年 8 月,《Cloud Native Go:構建基於Go和React的雲原生Web應用與服務》,Kevin Hoffman、Dan Nemeth 著,宋淨超、吳迎鬆、馬超、徐蓓 譯
2017 年 8 月,《雲原生應用架構實踐》,網易雲基礎服務架構團隊 著,電子工業出版社
2017 年 9 月,《Kubernetes權威指南:從Docker到Kubernetes實踐全接觸(紀念版)》,閆健勇,龔正,吳治輝,王偉,崔秀龍 著,電子工業出版社
2018年
2018 年 3 月,《每天 5 分鐘玩轉 Kubernetes》,CloudMan 著,清華大學出版社
2018 年 4 月,《容器即服務:從零構建企業級容器叢集》,林帆 著,電子工業出版社
2018 年 4 月,《Serverless 架構》,Cagatay Gurturk 著,周翀 欒雲傑 姜明魁 譯
2018 年 7 月:《Python 雲原生——構建應對海量使用者資料的高可擴充套件 Web 應用》,Manish Sathi 著,宋淨超 譯,電子工業出版社
2018 年 7 月,《雲原生 Java——Spring Boot、Spring Cloud 與 Cloud Foundry 彈性系統設計》,Josh Long & Kenny Bastani 著,張若飛 宋淨超 譯,電子工業出版社
2018 年 8 月,《Kubernetes 權威指南:企業級容器雲實戰》,閆健勇 龔正 吳治輝 劉曉紅 崔秀龍 等 著,電子工業出版社
2018 年 9 月,《雲原生基礎架構:構建和管理現代可擴充套件基礎架構的模式及實踐》,Justin Garrision & Kris Nova 著,孫杰、肖力 譯,機械工業出版社
2018 年 8 月,《Serverless架構:無伺服器應用與AWS Lambda》,Peter Sbarski, Sam Kroonenburg 著,覃宇 譯
2018 年 9 月,《基礎設施即程式碼:雲伺服器管理》,Kief Morris 著,金明,錢偉,馬博文,黃博文,禚嫻靜 譯,人民郵電出版社
2018 年 9 月,《基於 Kubernetes 的容器雲平臺實戰》,陸平 左奇 付光 張晗 著,機械工業出版社
2018 年 9 月,《Docker 技術入門與實戰(第三版)》,楊保華,戴王劍,曹亞侖 著,機械工業出版社
2018 年 10 月,《Kubernetes 經典例項》,Sébastien Goasguen & Michael Hausenblas 著,馬晶慧 譯,中國電力出版社
2018 年 11 月,《持續演進的 Cloud Native:雲原生架構下微服務最佳實踐》,王啟軍 著,電子工業出版社
2018 年 11 月,《雲原生分散式儲存基石:etcd 深入解析》,華為容器服務團隊 杜軍 等著,機械工業出版社
2018 年 11 月,《Docker 微服務架構實戰》,蔣彪 著,電子工業出版社
2018 年 12月:《Kubernetes 即學即用》,Kelsey Hightower & Brendan Burns & Joe Beda 著,韓波 譯,中國電力出版社
2018 年 12 月,《Kubernetes 進階實戰》,馬永亮 著,機械工業出版社
2018 年 12 月,《Service Mesh 實戰:基於Linkerd 和 Kubernetes 的微服務實踐》,楊章顯 著,機械工業出版社
2019 年 1 月,《深入淺出 Istio:Service Mesh 快速入門與實踐》,崔秀龍 著,電子工業出版社
2019 年
2019 年 1 月,《Kubernetes in Action 中文版》,Marko Luksa 著,七牛容器雲團隊 譯,電子工業出版社
2019 年 1 月,《深入淺出 Serverless:技術原理與應用實踐》,陳耿 著,機械工業出版社
2019 年 2 月,《容器雲運維實戰:Docker 與 Kubernetes 叢集》,黃靖鈞、馮立燦 著,電子工業出版社
2019 年 4 月,《未來架構:從服務化到雲原生》,張亮 吳晟 敖小劍 宋淨超 著,電子工業出版社
2019 年 4 月,《深入淺出 Docker》,Nigel Poulton 著,李瑞豐、劉康 譯,人民郵電出版社
2019 年 4 月,《Istio 入門與實戰》,毛廣獻 著,機械工業出版社
2019 年 4 月,《深入淺出 Prometheus:原理、應用、原始碼與擴充詳解》,陳曉宇、楊川胡、陳嘯 著,電子工業出版社
2019 年 6 月,《Kubernetes 權威指南:從 Docker 到 Kubernetes 實踐全接觸(第4版)》,龔正,吳治輝,崔秀龍,閆健勇 著,電子工業出版社
2019 年 7 月,《雲原生服務網格 Istio:原理、實踐、架構與原始碼解析》,張超盟,章鑫,徐中虎,徐飛 編,電子工業出版社
2019 年 7 月,《基於 Kubernetes 的 DevOps 實踐:容器加速軟體交付》,Hideto Saito 著,史天 譯,電子工業出版社
2019 年 8 月,《Prometheus 監控實戰》,James Turnbull 著,史天,張媛,肖力 譯,機械工業出版社
2019 年 8 月,《再也不踩坑的 Kubernetes 實戰指南》,杜寬 著,清華大學出版社
2019 年 9 月,《Istio 實戰指南》,馬若飛 著,人民郵電出版社
2019 年 11 月,《Kubernetes 網路權威指南:基礎、原理與實踐》,杜軍 著,電子工業出版社
2020 年
2020 年 3 月,《Istio 服務網格技術解析與實踐》,王夕寧 著,機械工業出版社
2020 年 4 月,《Docker + Kubernetes 應用開發與快速上雲》,李文強 著,機械工業出版社
2020 年 4 月,《雲原生安全與 DevOps 保障》,Julien,Vehent(朱利安・威漢特) 著,覃宇 譯
2020 年 5 月,《雲原生:運用容器、函式計算和資料構建下一代應用》,Boris Scholl 著,季奔牛 譯,機械工業出版社
2020 年 6 月,《Kubernetes 原始碼剖析》,鄭東旭 著,電子工業出版社
2020 年 8 月,《雲原生模式:設計擁抱變化的軟體》,Cornelia Davis 著,張若飛、宋淨超 譯,電子工業出版社
2020 年 11 月,《Prometheus 雲原生監控》,朱政科 著,機械工業出版社
電子書籍
《Docker技術入門與實戰(第3版)》楊保華
《Kubernetes_in_Action中文版》七牛容器雲團隊譯
《Kubernetes進階實戰》馬永亮
《Kubernetes經典例項》馬晶慧譯
《Kubernetes權威指南_企業級容器雲實戰》閆健勇等
《Kubernetes實戰》
《基於Kubernetes的容器雲平臺實戰》陸平等
《紀念版_Kubernetes權威指南_從Docker到Kubernetes實踐全接觸》
《沒什麼難的Docker入門與開發實戰》
《每天5分鐘玩轉Kubernetes》
《Docker進階與實戰 (容器技術系列)》
本內容節選自:github.com/0voice/k8s_awesome_docu...
如果想學習更多關於雲原生、K8s的知識,可以點選訂閱更新,關注本Github。
?文章精選
一文了解 Kubernetes
備戰雙 11!螞蟻金服萬級規模 K8s 叢集管理系統如何設計?
一文帶你理解14個K8S必備基礎概念
?學習視訊(提取碼:1024)
《AWS re-Invent 2017- Mastering Kubernetes on AWS (CON308)》
《K8s 為 AI 應用提供大規模 GPU 算力之實踐 - QCon》
《【IBM雲講堂】擁抱 K8s 打造現代化 IT》
《Kubernetes上手之前,你還需要知道這些》
《從平臺構建到領域深耕- Kubernetes在華為雲的實踐與發展 - ArchSummit》
《基於Istio on Kubernetes雲原生應用的最佳實踐丨Archsummit》
《Kubernetes 和 Docker 容器在領英的落地實踐丨QCon》
《基於 Kubernetes 的跨雲 AI 訓練平臺構建與展望 - ArchSummit》
阿里開發者課程
第1 章 : 第一堂“雲原生”課
第2 章 : 容器基本概念
第3 章 : Kubernetes 核心概念
第4 章 : 理解 Pod 和容器設計模式
第5 章 : 應用編排與管理:核心原理
第6 章 : 應用編排與管理: Deployment
第7 章 : 應用編排與管理:Job 和 DaemonSet
第8 章 : 應用配置管理
第9 章 : 應用儲存和持久化資料卷:核心知識
第10 章 : 應用儲存和持久化資料卷:儲存快照與拓撲排程
第11 章 : 可觀測性:你的應用健康嗎
第12 章 : 可觀測性:監控與日誌
第13 章 : Kubernetes網路概念及策略控制
第14 章 : Kubernetes Services
第15 章 : 深入剖析 Linux 容器
第16 章 : 深入理解 etcd - 基本原理解析
第17 章 : 深入理解etcd:etcd效能優化實踐
第18 章 : Kubernetesdi排程和資源管理
第19 章 : 排程器的排程流程和演算法介紹
第20 章 : GPU管理和Device Plugin工作機制
第21 章 : Kubernetes 儲存架構及外掛使用
第22 章 : 有狀態應用編排:StatefulSet
第23 章 : KubernetesAPI程式設計正規化
第24 章 : KubernetesAPI程式設計利器:Operator和OperatorFramework
第25 章 : Kubernetes網路模型進階
第26 章 : 理解CNI和CNI外掛
第27 章 : Kubernetes安全之訪問控制
第28 章 : 理解容器執行時介面CRI
第29 章 : 安全容器技術
第30 章 : 理解RuntimeClass與使用多容器執行時
?文件庫(提取碼:1024)
《白皮書:Kubernetes如何拯救OpenStack》
《2021年雲原生行業研究報告》
《石墨文件Go在K8S上微服務的實踐-彭友順》
《K8s 為 AI 應用提供大規模 GPU 算力之實踐-李程》
《kubernetes在深度學習場景下的優化以及使用-薛磊》
《K8S在華為雲的實踐與發展-王澤鋒》
《基於Istio+on+Kubernetes雲原生應用的最佳實踐-王夕寧》
?68 道面試題
1、簡述etcd及其特點
2、簡述etcd適應的場景
3、簡述什麼是Kubernetes
4、簡述Kubernetes和Docker的關係
5、簡述Minikube、Kubectl、Kubelet分別是什麼
6、簡述Kubernetes常見的部署方式
7、簡述Kubernetes如何實現叢集管理
8、簡述Kubernetes的優勢、適應場景及其特點
9、簡述Kubernetes的缺點或當前的不足之處
10、簡述Kubernetes相關基礎概念
11、簡述Kubernetes叢集相關元件
12、簡述Kubernetes RC的機制
13、簡述Kubernetes Replica Set和Replication Controller之間有什麼區別
14、簡述kube-proxy的作用
15、簡述kube-proxy iptables的原理
16、簡述kube-proxy ipvs的原理
17、簡述kube-proxy ipvs和iptables的異同
18、簡述Kubernetes中什麼是靜態Pod
19、簡述Kubernetes中Pod可能位於的狀態
20、簡述Kubernetes建立一個Pod的主要流程?
21、簡述Kubernetes中Pod的重啟策略
22、簡述Kubernetes中Pod的健康檢查方式
23、簡述Kubernetes Pod的LivenessProbe探針的常見方式
24、簡述Kubernetes Pod的常見排程方式
25、簡述Kubernetes初始化容器(init container)
26、簡述Kubernetes deployment升級過程
27、簡述Kubernetes deployment升級策略
28、簡述Kubernetes DaemonSet型別的資源特性
29、簡述Kubernetes自動擴容機制
30、簡述Kubernetes Service型別
31、簡述Kubernetes Service分發後端的策略
32、簡述Kubernetes Headless Service
33、簡述Kubernetes外部如何訪問叢集內的服務
34、簡述Kubernetes ingress
35、簡述Kubernetes映象的下載策略
36、簡述Kubernetes的負載均衡器
37、簡述Kubernetes各模組如何與API Server通訊
38、簡述Kubernetes Scheduler作用及實現原理
39、簡述Kubernetes Scheduler使用哪兩種演算法將Pod繫結到worker節點
40、簡述Kubernetes kubelet的作用
41、簡述Kubernetes kubelet監控Worker節點資源是使用什麼元件來實現的
42、簡述Kubernetes如何保證叢集的安全性
43、簡述Kubernetes准入機制
44、簡述Kubernetes RBAC及其特點(優勢)
45、簡述Kubernetes Secret作用
46、簡述Kubernetes Secret有哪些使用方式
47、簡述Kubernetes PodSecurityPolicy機制
48、簡述Kubernetes PodSecurityPolicy機制能實現哪些安全策略
49、簡述Kubernetes網路模型
50、簡述Kubernetes CNI模型
51、簡述Kubernetes網路策略
52、簡述Kubernetes網路策略原理
53、簡述Kubernetes中flannel的作用
54、簡述Kubernetes Calico網路元件實現原理
55、簡述Kubernetes共享儲存的作用
56、簡述Kubernetes資料持久化的方式有哪些
57、簡述Kubernetes PV和PVC
58、簡述Kubernetes PV生命週期內的階段
59、簡述Kubernetes所支援的儲存供應模式
60、簡述Kubernetes CSI模型
61、簡述Kubernetes Worker節點加入叢集的過程
62、簡述Kubernetes Pod如何實現對節點的資源控制
63、簡述Kubernetes Requests和Limits如何影響Pod的排程
64、簡述Kubernetes Metric Service
65、簡述Kubernetes中,如何使用EFK實現日誌的統一管理
66、簡述Kubernetes如何進行優雅的節點關機維護
67、簡述Kubernetes叢集聯邦
68、簡述Helm及其優勢
本內容節選自:github.com/0voice/k8s_awesome_docu...
如果想學習更多關於雲原生、K8s的知識,可以點選訂閱更新,關注本Github。
?相關開源專案
etcd-io/etcd—Etcd是分散式系統中最關鍵的資料的分散式可靠的鍵值儲存
knative/docs—基於kubernetes的平臺來部署和管理現代的無伺服器工作負載。
K8s叢集部署工具
Kubespray—Kubespray為Kubernetes的部署和配置提供了一組Ansible角色。Kubespray可以使用AWS、GCE、Azure、OpenStack或裸金屬基礎設施即服務(IaaS)平臺。Kubespray是一個開放開發模型的開源專案。對於已經瞭解Ansible的人來說,這個工具是一個很好的選擇,因為不需要使用其他工具來進行配置和編排。Kubespray在引擎蓋下使用了kubeadm。
Minikube—Minikube允許您在本地安裝和試用Kubernetes。該工具是Kubernetes探索的一個很好的起點。在膝上型電腦上的虛擬機器(VM)中輕鬆啟動單節點Kubernetes叢集。Minikube支援Windows、Linux和OSX作業系統。在短短5分鐘內,您將能夠探索Kubernetes的主要功能。只需一個命令就可以直接啟動Minikube儀表板。
Kubeadm—Kubeadm是Kubernetes的1.4版釋出工具。該工具有助於在現有基礎設施上引導最佳實踐Kubernetes叢集。但是Kubeadm不能為你提供基礎設施。它的主要優勢是能夠在任何地方啟動最小可行的Kubernetes叢集。外掛和網路設定都超出了Kubeadm的範圍,所以您需要手動安裝或使用其他工具。
Kops—Kops幫助您從命令列建立、銷燬、升級和維護生產級高可用的Kubernetes叢集。Amazon Web Services (AWS)目前得到官方支援,GCE支援測試版,VMware vSphere支援測試版,其他平臺支援也在計劃之中。Kops允許您控制Kubernetes叢集的完整生命週期;從基礎設施配置到叢集刪除。
Bootkube—Kube-AWS是CoreOS提供的控制檯工具,使用AWS CloudFormation部署一個功能齊全的Kubernetes叢集。Kube-AWS允許您部署一個傳統的Kubernetes叢集,並自動提供帶有本地AWS特性的每個k8服務(例如,ELB、S3和Auto Scaling,等等)。
JAAS—JAAS是Juju作為一種服務,它簡化了配置、擴充套件和操作當今複雜軟體的方式。Juju部署在任何地方:公共雲或私有云。JAAS將您的工作負載部署到您選擇的雲。
Conjure-up—Conjure-up是另一個Canonical產品,它允許你用幾個簡單的命令部署“Kubernetes在Ubuntu上的Canonical分佈”。支援AWS、GCE、Azure、Joyent、OpenStack、VMware、裸金屬、本地主機部署。Juju, MAAS和LXD是magic -up的基礎技術。
Amazon EKS—Amazon Elastic Container Service for Kubernetes (Amazon EKS)是一種託管服務,可以使用Kubernetes簡單地部署、管理和擴充套件容器化應用。Amazon EKS跨多個AWS可用區管理您的Kubernetes基礎設施,同時自動檢測和替換不健康的控制平面節點,並提供按需升級和補丁。您只需提供工作節點並將它們連線到所提供的Amazon EKS端點。
監控工具
Kubebox—Kubebox是Kubernetes叢集的終端控制檯,它允許您使用漂亮的老式介面來管理和監控叢集活動狀態。Kubebox顯示pod資源使用情況、叢集監控和容器日誌等。此外,您可以輕鬆導航到所需的名稱空間,並執行到所需的容器中,以便快速進行故障排除/恢復。
Kubernetes Operational View (Kube-ops-view)—Kube-ops-view是用於多個k8叢集的只讀系統儀表板。使用Kube-ops-view,您可以輕鬆地在叢集和監視節點之間導航,以及pod的健康狀況。Kube-ops-view動畫一些Kubernetes過程,如pod的建立和終止。
Kubetail—Kubetail是一個小型的bash指令碼,它允許您將多個pod的日誌聚合到一個流中。最初的Kubetail版本沒有過濾或突出顯示功能,但在Github上有一個額外的Kubetail分叉。這可以使用多尾工具形成和執行日誌著色。
Kubewatch—Kubewatch是Kubernetes的一個觀察者,它可以將K8s事件釋出到團隊溝通應用Slack上。Kubewatch作為Kubernetes叢集中的pod執行,監控系統中發生的更改。您可以通過編輯配置檔案來指定要接收的通知。
Weave Scope—Weave Scope是一個用於Docker和Kubernetes叢集的故障排除和監控工具。它可以自動生成應用程式和基礎結構拓撲,幫助您輕鬆識別應用程式效能瓶頸。您可以將Weave Scope作為獨立應用部署在本地伺服器/膝上型電腦上,也可以在Weave Cloud上選擇Weave Scope Software as a Service (SaaS)解決方案。使用Weave Scope,您可以使用名稱、標籤和/或資源消耗輕鬆地對容器進行分組、篩選或搜尋。
prometheus—prometheus是雲本地計算基金會的一個專案,是一個系統和服務監控系統。它以給定的時間間隔從配置的目標收集指標,計算規則表示式,顯示結果,並在觀察到指定的條件時觸發警報。
Searchlight—Searchlight by AppsCode是Kubernetes的Icinga運營商。Searchlight定期對Kubernetes叢集進行各種檢查,如果出現問題,會通過電子郵件、簡訊或聊天提醒你。Searchlight包括一套預設的支票,專門為Kubernetes寫的。此外,它還可以通過外部黑箱監視增強Prometheus監視,並在內部系統完全失敗時充當後備。
cAdvisor—CAdvisor預設安裝在所有叢集節點上,用於收集Kubernetes關於執行容器和節點的指標。CAdvisor Kubelet通過Kubelet api公開這些指標(預設解析度為1分鐘)。Metrics Server識別所有可用節點,並在通過Kubernetes聚合API公開指標之前呼叫Kubelet API來獲取容器和節點資源的使用情況。
Kube-state-metrics—kube-state-metrics從Kubernetes API物件生成度量,而不需要通過偵聽Kubernetes API伺服器進行修改。它不太關注單個Kubernetes元件的健康狀況,而是關注內部各種物件(如部署、節點和莢)的健康狀況。
Sumo Logic App—Sumo Logic Kubernetes應用程式提供了對叢集中的工作節點及其應用程式日誌的完整可見性。該應用程式允許使用者監視容器執行狀況、複製、負載平衡、pod狀態和硬體資源分配並排除故障。應用程式利用Falco事件來監視和檢測異常的容器、應用程式、主機和網路活動。
Dynatrace—Dynatrace OneAgent是容器感知的,並內建了對Kubernetes開箱即用監控的支援。Dynatrace為Kubernetes提供全棧監控,即從應用程式到基礎設施層的監控。但是,如果您不能訪問基礎設施層,Dynatrace還提供了只監視應用程式的選項。
測試
Kube-monkey—Kube-monkey是Kubernetes的翻版。Kube-monkey是一種遵循混沌工程原理的工具。它可以隨機刪除k8豆莢,檢查服務具有故障恢復能力,並有助於您的系統的健康。Kube-monkey還通過一個TOML檔案進行配置,您可以在該檔案中指定要終止哪個應用程式,以及何時實踐您的恢復策略。
K8s-testsuite—K8s-testsuite由2個Helm圖表組成,用於單個Kubernetes叢集的網路頻寬測試和負載測試。負載測試用loadbots模擬簡單的web伺服器,loadbots作為Kubernetes基於Vegeta的微服務執行。網路測試在內部使用iperf3和netperf-2.7.0,並執行三次。這兩組測試都生成包含所有結果和指標的全面日誌訊息。
Test-infra—Test-infra是Kubernetes測試和結果驗證工具的集合。Test-infra包括一些儀表板,用於顯示歷史記錄、聚合失敗和顯示當前正在測試的內容。您可以通過建立自己的測試作業來增強測試基礎設施套件。Test-infra可以使用Kubetest工具在不同的提供商上使用完整的Kubernetes生命週期模擬執行端到端Kubernetes測試。
Sonobuoy—Sonobuoy允許您以可訪問和非破壞性的方式執行一組測試,以瞭解當前Kubernetes叢集狀態。Sonobuoy生成包含叢集效能詳細資訊的翔實報告。Sonobuoy支援3個Kubernetes小版本:當前版本和之前的2個小版本。Sonobuoy Scanner是一個基於瀏覽器的工具,允許您在幾次單擊中測試Kubernetes叢集,但CLI版本有更大的測試集可用。
PowerfulSeal—PowerfulSeal是一個類似於Kube-monkey的工具,遵循混沌工程的原則。PowerfulSeal可以殺死pod,並從叢集中移除/新增vm。與Kube-monkey相比,powerfulseal有一個互動模式,允許您手動破壞特定的叢集元件。此外,除了SSH, powerfulseal不需要外部依賴。
安全
Trireme—Trireme是Kubernetes網路策略的一個靈活而直接的實現。Trireme可以在任何Kubernetes叢集中工作,並允許您管理來自不同叢集的pod之間的流量。Trireme的主要優點是不需要任何集中的策略管理,能夠輕鬆地組織部署在Kubernetes中的兩種資源的互動,並且不需要複雜的SDN、VLAN標籤和子網(Trireme使用傳統的l3網路)。
Aporeto—Aporeto基於工作負載標識、加密和分散式策略為容器、微服務、雲和遺留應用程式提供安全性。由於Aporeto策略獨立於底層基礎設施執行,因此可以跨Kubernetes叢集或在包括Kubernetes和非Kubernetes部署的混合環境中啟用安全策略。
Twistlock—Twistlock持續監視部署在k8上的應用程式的漏洞和遵從性問題,包括底層主機、容器和映像。此外,Twistlock Runtime Defense自動建模容器行為,允許已知的良好行為,同時警告或阻止異常活動。最後,Twistlock提供了第3層微分割和第7層防火牆,可以保護前端微服務免受常見攻擊。
Falco—Falco是一個行為活動監視器,旨在檢測您的應用程式中的異常活動。Falco基於Sysdig Project,這是一個開源工具(現在是一個商業服務),通過跟蹤核心系統呼叫來監視容器效能。Falco允許您使用一組規則連續監視和檢測容器、應用程式、主機和網路活動。
Sysdig Secure—sysddig Secure是sysddig容器智慧平臺的一部分,具有無與倫比的容器可視性和與容器編排工具的深度整合。其中包括Kubernetes、Docker、AWS ECS和Apache Mesos。使用Sysdig Secure,您可以實現服務感知策略,阻止攻擊,分析歷史,並監控叢集效能。sysddig Secure可以作為雲和內部軟體提供。
Kubesec.io—Kubesec。io是一個服務,允許您為安全特性使用的Kubernetes資源評分。Kubesec。io根據Kubernetes安全最佳實踐驗證資源配置。因此,對於如何提高整個系統的安全性,您將擁有完全的控制和額外的建議。該網站還包含大量與集裝箱和Kubernetes安全相關的外部連結。
有用的CLI工具
Cabin—Cabin可以作為Kubernetes叢集遠端管理的移動儀表板。有了Cabin,使用者可以從他們的Android或iOS裝置上快速管理應用程式、擴充套件部署,並對整個k8叢集進行故障排除。對於k8叢集的運營商來說,機艙是一個很好的工具,因為它允許您在發生事故時執行快速補救行動。
Kubectx/Kubens—Kubectx是一個小型的開源實用工具,它增強了Kubectl的功能,可以輕鬆切換上下文,同時連線到幾個Kubernetes叢集。Kubens允許在Kubernetes名稱空間之間導航。這兩種工具在bash/zsh/fish shell上都有一個自動完成功能。
Kube-shell—Kube-shell在使用kubectl時提高了生產力。Kube-shell支援命令自動完成和自動建議。此外,Kube-shell將提供關於已執行命令的內聯文件。Kube-shell甚至可以搜尋和糾正錯誤輸入的命令。它是在k8控制檯中提高效能和生產率的一個很好的工具。
Kail—Kail是Kubernetes tail的縮寫,為Kubernetes叢集工作。使用Kail,你可以跟蹤所有匹配的吊艙的Docker日誌。Kail允許您根據服務、部署、標籤和其他特性過濾豆莢。如果pod符合條件,那麼它將在啟動後自動新增(或刪除)到日誌中。
Development Tools
Telepresence—Telepresence 提供了從Kubernetes環境到本地程式的代理資料在本地除錯Kubernetes叢集的可能性。網真能夠為您的原生程式碼提供Kubernetes服務和AWS/GCP資源的訪問,因為它將被部署到叢集中。使用Telepresence,Kubernetes將原生程式碼視為叢集中的一個普通pod。
Helm—Helm 幫助您管理 Kubernetes 應用——Helm 圖表,即使是最複雜的 Kubernetes 應用程式,都可以幫助您定義,安裝和升級。
Jaeger—Jaeger Operator是Kubernetes Operator的實現,提供了封裝、部署和管理Kubernetes應用程式的另一種方法。
turbonomic—turbonomic的Kubernetes -as-a- Service (KaaS)管理功能包括支援Amazon彈性容器服務(EKS)、微軟Azure Kubernetes服務(AKS)、谷歌Kubernetes引擎(GKE)和關鍵容器服務(PKS)。自管理Kubernetes優化了效能、效率和遵從性,因此IT組織可以擴充套件和加速雲原生計劃。
Supergiant—Supergiant是一個開源的實用程式集合,可以簡化Kubernetes叢集的安裝和管理。Supergiant Kubernetes工具箱是三個獨立的應用程式:Control、Analyze和Capacity。從本質上講,Supergiant是一個微服務應用程式,允許分別使用這三種工具。
Keel—Keel允許您自動化Kubernetes部署更新,並可以在專用的名稱空間中作為Kubernetes服務啟動。通過這樣的組織,Keel為您的環境引入了最小的負載,並增加了顯著的健壯性。Keel通過標籤、註釋和圖表幫助部署Kubernetes服務。您只需要為每個部署或Helm版本指定一個更新策略。只要儲存庫中有新的應用程式版本,Keel就會自動更新您的環境。
Apollo—Apollo是一個開源應用程式,為團隊提供了自助使用者介面,用於建立和部署他們的服務到Kubernetes。Apollo允許操作人員檢視日誌,只需點選一下滑鼠就可以將部署恢復到任何時間點。阿波羅具有靈活的部署許可權模型。每個使用者只能部署他需要部署的內容。
Draft—Draft是Azure團隊提供的一個工具,可以簡化應用程式開發和部署到任何Kubernetes叢集中。Draft在程式碼部署和程式碼提交之間建立了“內部迴圈”,顯著加快了更改驗證過程。使用Draft,開發人員可以用兩個命令準備應用程式Dockerfiles和Helm圖表,並將應用程式部署到遠端或本地Kubernetes叢集。
Deis Workflow—Deis Workflow是一個開源工具。平臺即服務(PaaS)在Kubernetes叢集之上建立了額外的抽象層。這些層允許您部署和/或更新Kubernetes應用程式,而無需開發人員提供特定領域的知識。工作流建立在Kubernetes概念之上,提供簡單的、開發人員友好的應用程式部署。Kubernetes提供了一套微服務,運營商可以輕鬆安裝該平臺。Workflow可以在零停機時間下部署應用的新版本。
Kel—Kel是Eldarion公司的一個開源PaaS,幫助管理Kubernetes應用程式的整個生命週期。Kel在Kubernetes之上提供了另外兩個用Python和Go編寫的層。級別0允許您提供Kubernetes資源,級別1幫助您在k8上部署任何應用程式。
Kong—Kong,原名Kong Community (CE),是由Kong Inc發起的一項可擴充套件的開源API閘道器技術,擁有一個不斷髮展的社群。Kong允許開發者使用Kubernetes管理認證、資料加密、日誌記錄、速率限制和其他標準功能,這些功能都是他們期望從基本API管理系統中獲得的。所有這些都是由一個簡單的RESTful API提供的,平臺本身構建在NGINX代理伺服器和Apache Cassandra資料庫管理系統之上。
持續整合/持續交付管道
Cloud 66—Cloud 66為生產中的容器化應用提供了完整的DevOps工具鏈,通過專門的運維工具,為開發人員自動化了許多繁重的工作。該平臺目前在Kubernetes上執行4000個客戶工作負載,並管理2500行配置。通過提供端到端基礎設施管理,Cloud 66使工程師能夠在任何雲或伺服器上構建、交付、部署和管理任何應用程式。
Serverless /函式工具
Kubeless—Kubeless是kubernetes本地的無伺服器框架,它允許您部署少量程式碼,而不必擔心底層基礎設施。Kubeless瞭解Kubernetes的開箱即用資源,並提供自動伸縮、API路由、監控和故障排除。Kubeless完全依賴於k8的原語,因此Kubernetes使用者也能夠使用本地k8的API伺服器和API閘道器。
Fission—Fission是Kubernetes的一個快速無伺服器框架,專注於開發人員的生產力和高效能。Fission可以在任何地方的Kubernetes叢集上工作:在您的膝上型電腦上,在任何公共雲中,或者在私有資料中心中。您可以使用Python、NodeJS、Go、c#或PHP編寫函式,並使用Fission將其部署到k8叢集上。
Funktion—Funktion是一個為Kubernetes設計的開源事件驅動的lambda風格程式設計模型。Funktion與fabric8平臺緊密結合。使用Funktion,您可以建立從200多個事件源訂閱的流來呼叫函式,包括大多數資料庫、訊息傳遞系統、社交媒體和其他中介軟體和協議。
IronFunction—IronFunctions是一個開源的無伺服器平臺或FaaS平臺,你可以在任何地方執行。IronFunction是在Golang上編寫的,真的支援任何語言的函式。IronFunction的主要優點是它支援AWS Lambda格式。直接從Lambda匯入函式,並在任何你想要的地方執行它們。
OpenWhisk—Apache OpenWhisk是一個由IBM和Adobe驅動的健壯的開源FaaS平臺。OpenWhisk可以部署在本地裝置上,也可以部署在雲上。Apache OpenWhisk的設計意味著它充當一個非同步和鬆耦合的執行環境,可以針對外部觸發器執行函式。OpenWhisk作為Bluemix上的SaaS解決方案可用,或者您可以在本地部署一個基於vagrant的VM。
OpenFaaS—OpenFaaS框架旨在管理Docker Swarm或Kubernetes上的無伺服器功能,在這些功能中,它將收集和分析廣泛的指標。您可以將任何程式打包到函式中並使用它,而無需重複編碼或任何其他例程操作。FaaS具有普羅米修斯標準,這意味著它可以根據需求自動縮放功能。FaaS本地支援基於web的介面,您可以在其中嘗試您的功能。
Nuclio—Nuclio是一個旨在處理高效能事件和大量資料的無伺服器專案。Nuclio可以作為獨立庫在內部裝置上啟動,也可以在VM/Docker容器中啟動。此外,Nuclio支援Kubernetes的盒子。Nuclio以最大的並行度和最小的開銷提供實時資料處理。
Virtual-Kubelet—Virtual Kubelet是一個開源的Kubernetes Kubelet實現,它將Kubernetes偽裝成Kubelet,以便將Kubernetes連線到其他api。Virtual Kubelet允許節點由其他服務支援,如ACI、Hyper.sh和AWS等。該聯結器具有可插拔的體系結構和直接使用Kubernetes原語的特點,使構建更加容易。
服務網格工具
istio/istio—Istio是一個開放平臺,提供統一的方式來整合微服務、管理微服務之間的流量、執行策略和聚合遙測資料。Istio的控制平面在底層叢集管理平臺(如Kubernetes)上提供了一個抽象層。
linkerd/linkerd2—Linkerd是Kubernetes的一款超輕、安全優先的服務網。Linkerd為您的Kubernetes堆疊新增了關鍵的安全性、可觀察性和可靠性特性,而不需要更改程式碼。
Hashicorp’s Consul—Consul是一種服務網路解決方案,可跨任何執行時平臺和公共或私有云連線和保護服務。和上面的服務網格技術一樣,Istio和Linkerd, HashiCorp的Consul Connect選擇了一個部署為sidecar的代理。代理透明地保護微服務之間的通訊,並通過一個稱為意圖的概念實現策略定義。
本地服務發現
Kubernetes Dashboard—Kubernetes Dashboard是一個通用的、基於web的Kubernetes叢集UI。使用本機儀表板更容易對k8叢集進行故障排除和監視。您需要在計算機和Kubernetes API伺服器之間建立一個安全的代理通道來訪問儀表板。原生Kubernetes儀表板依賴於Heapster資料收集器,因此它也需要安裝在系統中。
成本管理
Replex—Replex是為在Kubernetes環境中工作而設計的同名治理和成本管理平臺。該工具通過統一雲中部署的成本和治理管理,解決了圍繞Kubernetes的動態特性的挑戰。
Oracle
fn—Fn是一個事件驅動的、開源的、功能即服務(FaaS)計算平臺,可以在任何地方執行。
weblogic-kubernetes-operator—支援在Kubernetes上執行WebLogic伺服器和融合中介軟體基礎架構域,Kubernetes是一個行業標準、雲中立部署平臺。它允許您將整個WebLogic Server安裝和分層應用程式封裝到一組可移植的雲中立影像和簡單的資源描述檔案中。您可以在部署操作員的任何支援Kubernetes的本地雲或公共雲上執行它們。
mysql-operator—MYSQL Operator for Kubernetes是Kubernetes在Kubernetes叢集中管理MYSQL InnoDB叢集設定的操作符。
coherence-operator—通過支援Docker和Kubernetes等行業標準,Oracle允許使用Coherence的組織將其叢集移動到雲中,並促進在雲中立的基礎設施上執行Coherence。
verrazzano—Verrazzano是一個端到端企業容器平臺,用於在多雲和混合環境中部署雲本地和傳統應用程式。它由一組精心設計的開源元件組成——許多您可能已經在使用和信任,還有一些是專門編寫的,將所有元件組合在一起,使其成為一個內聚的、易於使用的平臺。
oci-cloud-controller-manager—OCI - Cloud - Controller - Manager是Kubernetes雲控制器管理器實現(或out- tree雲提供商),用於Oracle雲基礎設施(OCI)。
terraform-oci-oke—Oracle Container Engine (OKE)是Oracle在Oracle Cloud Infrastructure (OCI)上管理的Kubernetes服務。
fn-helm—這個圖表使用Helm包管理器在Kubernetes叢集上部署了Fn平臺的一個功能完整的例項。
weblogic-image-tool—Oracle WebLogic映象工具
oci-service-broker—Oracle Cloud Infrastructure Service Broker是面向OCI服務的開放服務代理API規範的開源實現。客戶可以使用此實現在Kubernetes或其他Kubernetes叢集的Oracle容器引擎中安裝Open Service Broker。
fmw-kubernetes—Kubernetes用於Oracle Fusion Middleware產品的部署指令碼
oci-manager—Kubernetes控制器集合,用於對Oracle雲基礎設施資源進行自治管理
oci-service-operator—Kubernetes的OCI Service Operator (OSOK)可以方便地從Kubernetes環境中執行的雲本地應用程式連線和管理OCI服務。
terraform-oci-olcne—一個可重用和可擴充套件的Terraform模組,在Oracle雲基礎設施上提供Oracle Linux雲本地環境。
mysql-ndb-operator—MySQL NDB Operator 是一個 Kubernetes 運算子,用於管理 Kubernetes 叢集內的 MySQL NDB 叢集設定。
weblogic-azure—該專案支援在Azure Virtual Machines和Azure Kubernetes Service (AKS)中執行Oracle WebLogic Server。
zfssa-csi-driver—Kubernetes容器儲存介面(CSI)外掛用於Oracle ZFS儲存裝置。
weblogic-toolkit-ui—WebLogic Kubernetes Toolkit (WKT) 是一組開源工具,可幫助您配置基於 WebLogic 的應用程式以在 Kubernetes 叢集上的 Linux 容器中執行。
本作品採用《CC 協議》,轉載必須註明作者和本文連結