【推荐收藏】68道常见的Kubernetes面试题总结
本内容节选自:https://github.com/0voice/k8s_awesome_document
如果想学习更多关于云原生、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进阶与实战 (容器技术系列)》
本内容节选自: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集群部署工具
-
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端点。
监控工具
-
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还提供了只监视应用程序的选项。
测试
-
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不需要外部依赖。
安全
-
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工具
-
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
-
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数据库管理系统之上。
持续集成/持续交付管道
-
Serverless /函数工具
-
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原语的特点,使构建更加容易。
服务网格工具
-
linkerd/linkerd2—Linkerd是Kubernetes的一款超轻、安全优先的服务网。Linkerd为您的Kubernetes堆栈添加了关键的安全性、可观察性和可靠性特性,而不需要更改代码。
-
Hashicorp’s Consul—Consul是一种服务网络解决方案,可跨任何运行时平台和公共或私有云连接和保护服务。和上面的服务网格技术一样,Istio和Linkerd, HashiCorp的Consul Connect选择了一个部署为sidecar的代理。代理透明地保护微服务之间的通信,并通过一个称为意图的概念实现策略定义。
本地服务发现
-
成本管理
-
Replex—Replex是为在Kubernetes环境中工作而设计的同名治理和成本管理平台。该工具通过统一云中部署的成本和治理管理,解决了围绕Kubernetes的动态特性的挑战。
Oracle
-
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 容器中运行。