wenchao1024
发布于

【2021年新鲜出炉】K8s工程师资料合辑

🎉【推荐收藏】68 道常见的 Kubernetes 面试题总结

本内容节选自:https://github.com/0voice/k8s_awesome_document
如果想学习更多关于云原生、K8s 的知识,可以点击订阅更新,关注本 GitHub。

🤝 跟大厂一起认识 K8s

🚩 核心组件

etcd cluster –存储 Kubernetes 集群数据的分布式密钥值存储

kube-apiserver – 接收所有修改集群元素的 REST 请求的中央管理实体

kube-controller-manager – 运行控制器进程,如复制控制器(设置 pod 中的副本数量)和端点控制器(填充服务、pod 和其他对象)

cloud-controller-manager – 负责管理依赖于底层云提供商的控制器流程

kube-scheduler– 帮助根据资源利用率调度集群节点上的 pod(应用程序进程在其中运行的一组共存的容器)

🧿 论 K8s 的重要性

在中国,Kubernetes 已经成为约定俗成的容器编排器。82% 的单位在生产中使用 Kubernetes,和上一次调查的 72% 相比有所增长。

 3.jpg

各单位使用 Kubernetes 集群的数量也在增加。调查对象最倾向于选择 2-5 个 Kubernetes 生产集群,今年和去年 35% 的用户都选择了 2-5 个的生产集群配置。使用 50 个以上容器的单位数量也有增长,从 2019 年的 13% 增长到 21%,比 2018 年增长了 320%。

 4.jpg

分隔 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 进阶与实战 (容器技术系列)》

本内容节选自:https://github.com/0voice/k8s_awesome_document
如果想学习更多关于云原生、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 及其优势

本内容节选自:https://github.com/0voice/k8s_awesome_document
如果想学习更多关于云原生、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 容器中运行。

评论(3)
小码哥
小码哥

是的。

点赞
评论
wenchao1024
wenchao1024

你好 ,请问你站长吗?

点赞
评论
小码哥
小码哥

兄弟,整理的很详细。 欢迎分享优质资源。

点赞
评论