k8s (k8s认证考试有几种)_热门资讯_【搜客吧】_激活码商城_营销软件商城_微商软件

【同步智客】

同步智客

【代理加盟】

代理加盟

【综合商城】

软件商城

【微商必备】

微商必备

【营销必备】

营销必备

【知识付费】

知识付费

【代理项目落地训练营】

项目落地训练营

k8s (k8s认证考试有几种)

suetone 2024-04-01 3浏览 0评论

简介

Kubernetes (k8s) 是一个开源容器编排平台,用于管理容器化应用程序。由于其在云计算和容器化部署中的广泛使用,k8s 已成为 IT 专业人士中一项备受追捧的技能。为了验证 k8s 知识和技能,云原生计算基金会 (CNCF) 提供了多种认证考试。

k8s 认证考试类型

CNCF 提供以下 k8s 认证考试:
  • Certified Kubernetes Administrator (CKA):认证中级到高级 k8s 管理员,涵盖 k8s 集群安装、配置、管理和故障排除。
  • Certified Kubernetes Application Developer (CKAD):认证初级到中级 k8s 应用程序开发人员,涵盖在 k8s 上部署、管理和监控应用程序。
  • Certified Kubernetes Security Specialist (CKS):认证高级 k8s 安全专家,涵盖 k8s 安全架构、配置和最佳实践。

考试概览

每个 k8s 认证考试都涉及特定技能和知识领域。下表提供了考试概览:| 考试选择最适合您的考试类型并开始您的认证之旅。

docker 和 k8s 面试总结

花了大半个月对k8s&docker进行了梳理,包括之前读过的书,官方文档以及k&d在公司项目的实践等。 以下是个人对docker & k8s 面试知识点的总结: 1 docker 常见面试题如下 每一点可根据回答进行适当深入 1.1 什么是docker docker和传统linux的差异? 容器和镜像的区别? 如何理解docker的缓存机制? 1.2 docker 网络模型是什么?有何局限 docker的网络基础是什么? docker的网络模型是?有什么局限? docker如何实现容器间通信的? 1.3 docker 基础命令 cmd和entryPoint差异? copy和add的差异? 简单讲下swam/compose? 2 kubernetes 常见面试题如下 每一点可根据回答进行适当深入 2.1 什么是k8s? 1 为什么用k8s 解决了什么问题? 2 k8s有哪些组件,有什么作用?【同:Master节点和Node节点都用哪些组件】 3 可以简单说下Node Pod container 之间的关系吗? 【可引入2.2/2.3对Pod SVC的考察】 4 什么是SVC可以简单描述下吗?【可引入2.3对SVC的考察】 5 可以简单讲下k8s的网络模型吗? 6 Pod SVC Node Container 之间如何相互访问 7 swarm和k8s如何选择? 2.2 考察Pod 静态Pod和普通Pod的差异? 简单讲下Pod的生命周期重启策略呢? - 不同组件对Pod的重启策略要求一样吗? 如何检查Pod的健康状态?哪2种探针? - 2种探针的实现方式 简单说下Pod的调度方式? 2.3 考察SVC SVC有哪4种类型 2.4 k8s网络模型 DNS和Iptables在k8s中的运用?有何差异 - k8s如何解决多机器部署容器的网络问题? Pod SVC Node Container 之间如何相互访问 3 参考答案 答案是根据所在公司项目结合自己的理解给出的答案 不一定完全准确但在面试中要做到有理有据突出自己的思路即可。 4 docker 问题和答案 如下 4.1 什么是docker? 通常问这个问题主要在于考察候选人是否真正了解过docker,很多人项目中都有用到docker,真正去了解过概念,架构的不多。 从而来辨别简历上的熟悉/了解docker的水分。 如果这个都无法回答,那么接下来的docker考察也就毫无意义了,此问题通常也会结合以下问题来进行考察。 docker和传统linux的差异? docker都有哪些核心组件? 可以简单说下docker的架构吗? 容器和镜像的区别?docker是什么: Docker是一个可以把开发的应用程序自动部署到容器的开源引擎。 docker和VM差异: docker是一个应用层的抽象,容器之间通过网络命名空间进行隔离,多个容器共享同一个操作系统内核。 VM是对物理硬件层的抽象,每个VM都包含独立的操作系统,重且启动缓慢。 VM主要为了提供系统环境,容器主要是为了提供应用环境。 docker组件: docker引擎【包含Docker客户端&服务端】,docker镜像,docker容器,Registry【镜像仓库】docker的架构: C/s架构容器和镜像的区别: 镜像是一个只读模板,包括运行容器所需的数据,其内容在构建之后就不会被改变,可以用来创建新的容器。 镜像由多个只读层组成,容器在只读层的基础上多了一个读写层。 4.2 docker 网络模型是什么?有何局限 这里也经常会结合K8s网络原理进行考察,以及如下几个考点 docker的网络基础是什么? docker的网络模型是?有什么局限? docker如何实现容器间通信的?Docker网络基础: Docker是在操作系统层上对应用的抽象,使用网络命名空间来对不同容器之间进行网络隔离,用Veth设备对来进行容器之间的通讯。 docker的网络模型: 有4种网络模型 分别是Bridge Container host none 默认使用bridge网络模型,容器的初次启动会虚拟化出来一个新的网卡名为docker0,在多机器部署下docker0地址可能会冲突。 所以docker对多机部署支持的不够友好。 4.3 docker 基础命令 出现频率较高的为以下几条命令的考察 cmd和entry差异? copy和add的差异? docker-compose & docker swarm?CMD & ENTRYPONIT 都是容器操作指令: CMD用于指定容器启动时候默认执行的命令。 可以被docker run指定的启动命令覆盖。 ENTRYPONIT指令可让容器以应用程序或者服务的形式运行。 一般不会被docker run指定的启动命令覆盖。 dockerfile中的多个CMD & ENTRYPONIT只有最后一个会生效。 注意区别docker run 和RUN 一个是容器启动命令,一个是镜像构建时候所用。 copy & add ADD & COPY选取目标文件复制到镜像当中。 是针对镜像的指令,唯一差别在于add源文件可以支持url且可以对压缩文件进行解压操作。 而copy针对的是当前构建环境。 docker-compose & docker swarm 使用Docker compose可以用YAML文件来定义一组需要启动的容器,以及容器运行时的属性。 docker-compose用来对这一组容器进行操作。 docker swarm原生的Docker集群管理工具,依赖docker本身,很多重要功能依赖团队二次开发。 且社区不够活跃,一般公司生产环境会选择k8s,个人项目或者容器数量较少可选swarm,只需要docker即可完成,相对较轻。 5 kubernetes 5.1 什么是k8s? 对k8s的考察一般逃不过这样入门级的问题,针对入门级的问题,面试官可能也会针对如下几个点进行考察,在候选人答出来的基础上,选择其中一个进行深入。 为什么用k8s 解决了什么问题? k8s有哪些组件,有什么作用? 可以简单说下Node Pod container 之间的关系吗? 【进一步可对Pod SVC细节进行考察】 什么是SVC可以简单描述下吗?【可引对SVC的考察】 可以简单讲下k8s的网络模型吗?【可以和docker网络模型结合考察】 Pod SVC Node Container 之间如何相互访问【衍生 外部环境如何访问k8s】 swarm和k8s如何选择? 1 什么是k8s 为什么用k8s: 一个开源的容器集群管理平台【容器编排工具】,可提供容器集群的自动部署,扩缩容,维护等功能。 分为管理节点Master和工作节点Node。 在我们的项目中主要解决了环境一致性的问题,通过CI/CD使得运维部署变得简单起来,以及自动部署,故障监控,自动扩缩容。 可以提升开发效率。 2 k8s有那些组件: etcd保存了整个集群的状态; apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上; kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理; Container runtime负责镜像管理以及Pod和容器的真正运行(CRI); kube-proxy负责为Service提供cluster内部的服务发现和负载均衡; 3 Node&Pod&container之间的关系:Node一般指工作节点包含多个Pod Pod中包含多个Container,Pod中的container共享同一个网络命名空间。 4 什么是SVC: SVC是对一组功能相似的Pod资源的抽象,相当于一组服务的负载均衡。 5 k8s的网络模型:IP-Per-Pod 每个Pod有独立的Ip地址,无论是否处于同一个Node节点,Pod可以通过IP相互访问,且Pod和容器的地址和外部看到的地址是同一个地址。 6 Pod SVC Node Container 之间如何相互访问: 同Pod内的容器:同一个Pod的容器共享同一个网络命名空间可以直接进行通讯 同Node内不同Pod的容器:多个Pod都关联在同一个Docker0网桥上,通过docker0网桥完成相互通讯。 不同Node内Pod的容器:不同Node上的docker0可能会相同,PodIP和docker0是同网段的,所以需要将PodIP和NodeIP进行关联且保障唯一,不同Pod之间的数据通过物理机的端口进行转发即可完成通讯。 7: k8s 和docker swarm如何选择: : 5.2 对SVC的考察 SVC是k8s中的核心概念 这里涉及知识点众多 常见的面试考点如下 什么是SVC? 如何创建SVC? 使用SVC创建多个副本和使用RC创建多个副本有什么差异? SVC有哪几种类型? SVC 负载分发策略有那些? 集群外如何访问SVC?SVC: 是对一组功能相似的Pod资源的抽象,相当于一组服务的负载均衡。 可以使用配置文件的方式创建也可以使用命令创建kubectl exposeSVC和RC提供服务的差距: RC创建的服务PodIP可能会变。 SVC提供的clusterIP不会。 通过Iptables的NAT转换重定向到本地端口,在均衡到后端Pod。 svc的几种类型: ClusterIp/NodePort/LoadBalancer/ExternalName ClusterIp 默认类型 分配的一个虚拟地址,内部可以相互访问,外部不行 NodePort 将SVC端口号映射到物理机 LoadBalancer 基于NodePort,云服务商在外部创建了一个负载均衡到Pod ExternalName 将外部地址经过集群内部的再一次封装(实际上就是集群DNS服务器将CNAME解析到了外部地址上),实现了集群内部访问即可。 svc负载分发策略: RoundRobin/SessionAffinity/自定义实现【基于标签选择器】集群外部访问: 端口映射到物理机即可 5.2 Pod考察 Pod和静态Pod的区别 生命周期和重启策略 【这里可扩展 不同控制器对Pod的重启策略要求】 Pod如何健康检查? Pod的调度方式?【扩展调度算法】 Pod如何扩缩容?【扩展 RC和RS的差异】 答案 待补充 --详见 《k8s权威指南》读书笔记 5.3 基础原理类考察 主要考察对基本组件的理解 和原理分析 API Server Controller Manager【Replication Controller/Node Controller/ResourceQuota Controller/Namespace Controller/SVC Controller& Endpoint Controller】 Scheduler Kubelet 【Pod健康检查 资源监控】 Kube-Proxy k8s-DNS & Iptables差异 k8s中Ingress是什么 简述k8s中的如下属性及其作用resources tolerations affinity k8s中pod、rs、deployment、hpa的基本概念,以及他们之间的关系 答案 待补充 --详见 《k8s权威指南》读书笔记 5.4 网络原理类考察 主要考察对基本组件的理解 和原理分析 k8s的网络模型是什么? Docker的网络基础是什么? Docker的网络模型和局限? k8s的网络组件之间是如何通讯的? 外部如何访问k8s集群? 有那些开源组件支持k8s网络模型?

哪里可以学习CKA?

CKA是线上考试,难度中等,好好准备下容易就能考过的。 kubernetes已经成为容器编排领域的事实性标准,Kubernetes 不仅使得应用交付更便捷、大规模的微服务部署更容易,同时让 DevOps 理念和敏捷 IT 更容易落地。 Kubernetes 将助力企业在数字化转型过程中实现弯道超车。 作为国内领 先的全栈云原生技术服务提供商,时速云特别推出了Kubernetes 培训课程,对于刚接触 Kubernetes 技术、企业计划使用容器及 Kubernetes 集群、以及计划考取 CKA 证书的人群会是一个不错的选择。

2021-10-这一篇 K8S(Kubernetes)我觉得可以了解一下!!!28

Kubernetes是Google开源的分布式容器管理平台,是为了更方便的在服务器中管理我们的容器化应用。

Kubernetes简称 K8S,为什么会有这个称号?因为K和S是 Kubernetes首字母和尾字母,而K和S中间有八个字母,所以简称 K8S,加上 Kubernetes 比较绕口,所以一般使用简称 K8S。

Kubernetes即是一款容器编排工具,也是一个全新的基于容器技术的分布式架构方案,在基于Docker的基础上,可以提供从创建应用>应用部署>提供服务>动态伸缩>应用更新 一系列服务,提高了容器集群管理的便捷性。

大家可以先看一下,下面一张图,里面有我们的 mysql,redis,tomcat,nginx 等配置信息,如果我们想要安装里面的数据,我们需要一个一个手动安装,好像也可以,反正也就一个,虽然麻烦了一点,但也不耽误。

但是随着技术的发展和业务的需要,单台服务器已经不能满足我们日常的需要了,越来越多的公司,更多需要的是集群环境和多容器部署,那么如果还是一个一个去部署,运维恐怕要疯掉了,一天啥也不干就去部署机器了,有时候,可能因为某一个环节出错,要重新,那真的是吐血。。。。。,如下图所示:

如果我想要部署,以下几台机器:

k8s (k8s认证考试有几种) 第1张

如果要一个一个去部署,人都要傻掉了,这什么时候是个头,如果是某里巴的两万台机器,是不是要当场提交辞职信,所以 K8S 就是帮助我们来做这些事情的,方便我们对容器的管理和应用的自动化部署,减少重复劳动,并且能够自动化部署应用和故障自愈。

并且如果 K8S 对于微服务有很好的支持,并且一个微服务的副本可以跟着系统的负荷变化进行调整,K8S 内在的服务弹性扩容机制也能够很好的应对突发流量。

Docker-Compose是用来管理容器的,类似用户容器管家,我们有N多台容器或者应用需要启动的时候,如果手动去操作,是非常耗费时间的,如果有了 Docker-Compose只需要一个配置文件就可以帮我们搞定,但是 Docker-Compose只能管理当前主机上的 Docker,不能去管理其他服务器上的服务。意思就是单机环境。

Docker Swarm是由Docker 公司研发的一款用来管理集群上的Docker容器工具,弥补了 Docker-Compose单节点的缺陷, Docker Swarm可以帮助我们启动容器,监控容器的状态,如果容器服务挂掉会重新启动一个新的容器,保证正常的对外提供服务,也支持服务之间的负载均衡。而且这些东西 Docker-Compose 是不支持的,

Kubernetes它本身的角色定位是和 Docker Swarm是一样的,也就是说他们负责的工作在容器领域来说是相同的部分,当然也要一些不一样的特点, Kubernetes 是谷歌自己的产品,经过大量的实践和宿主机的实验,非常的成熟,所以 Kubernetes正在成为容器编排领域的领导者,其 可配置性、可靠性和社区的广大支持,从而超越了 Docker Swarm ,作为谷歌的开源项目,它和整个谷歌的云平台协调工作。

在下图中,是K8S的一个集群,在这个集群中包含三台宿主机,这里的每一个方块都是我们的物理虚拟机,通过这三个物理机,我们形成了一个完整的集群,从角色划分,可以分为两种

打一个比较形象的比喻,我们可以把Pod理解成一个豆荚,容器就是里面的豆子,是一个共生体。

Pod里面到底装的是什么?

具体怎么部署Pod里面的容器,是按照我们项目的特性和资源的分配进行合理选择的。

pause容器:

Pause容器 全称infrastucture container(又叫infra)基础容器,作为init pod存在,其他pod都会从pause 容器中fork出来,这个容器对于Pod来说是必备的 一个Pod中的应用容器共享同一个资源:

在上图中如果没有 pause容器 ,我们的Nginx和Ghost,Pod内的容器想要彼此通信的话,都需要使用自己的IP地址和端口,才可以彼此进行访问,如果有 pause容器 ,对于整个Pod来说,我们可以看做一个整体,也就是我们的Nginx和Ghost直接使用localhost就可以进行访问了,他们唯一不同的就只是端口,这里面可能看着觉得比较简单,但其实是使用了很多网络底层的东西才实现的,感兴趣的小伙伴可以自行了解一下。

在 Kubernetes中,每个Pod都会被分配一个单独的IP地址,但是Pod和Pod之间,是无法直接进行交互的,如果想要进行网络通信,必须要通过另外一个组件才能交流,也就是我们的 Service

Service是服务的意思,在K8S中 Service 主要工作就是将多个不同主机上的Pod,通过 Service 进行连通,让Pod和Pod之间可以正常的通信

我们可以把 Service 看做一个域名,而相同服务的Pod集群就是不同的ip地址, Service是通过 Label Selector来进行定义的。

使用NodePort提供外部访问,只需要在每个Node上打开一个主机的真实端口,这样就可以通过Node的客户端访问到内部的Service。

Label 一般以 kv的方式附件在各种对象上,Label 是一个说明性的标签,它有着很重要的作用,我们在部署容器的时候,在哪些Pod进行操作,都需要根据Label进行查找和筛选,我们可以理解Label是每一个Pod的别名,只有取了名称,作为K8S的Master主节点才能找到对应的Pod进行操作。

用户通过Kubectl 提交一个创建Replication Controller 请求,这个请求通过 API Server写入 etcd中,这个时候 Controller Manager 通过 API Server 的监听到了创建的命名,经过它认真仔细的分析以后,发现当前集群里面居然还没有对应的Pod实例,赶紧根据 Replication Controller 模板定义造一个Pod对象,再通 过Api Server写到我们 etcd里面

到下面,如果被 Scheduler 发现了,好家伙不告诉我???,无业游民,这家伙一看就不是一个好人啊,它就会立即运行一个复杂的调度流程,为这个新的Pod选一个可以落户的Node,总算有个身份了,真是让人操心,然后通过 API Server将这个结果也写到etcd中,随后,我们的Node 上运行的小管家 Kubelet 进程通过 API Server检测到这个 新生的小宝宝——“Pod”,就会按照它,就会按照这个小宝宝的特性,启动这个Pod并任劳任怨的负责它的下半生,直到Pod的生命结束。

然后我们通过 Kubectl 提交一个新的映射到这个Pod的Service的创建请求, Controller Manager 会通过Label标签查询到相关联的Pod实例,生成Service的Endpoints的信息,并通过 API Server写入到etcd中,接下来,所有 Node 上运行的Proxy进程通过 Api Server查询并监听 Service对象 与其对应的 Endpoints 信息,建立一个软件方式的负载均衡器来实现 Service 访问到后端Pod的流量转发功能。

kube-proxy:是一个代理,充当这多主机通信的代理人,前面我们讲过Service实现了跨主机、跨容器之间的网络通信,在技术上就是通过 kube-proxy 来实现的,service是在逻辑上对Pod进行了分组,底层是通过 kube-proxy 进行通信的

kubelet:用于执行K8S的命令,也是K8S的核心命令,用于执行K8S的相关指令,负责当前Node节点上的Pod的创建、修改、监控、删除等生命周期管理,同时Kubelet定时“上报”本Node的状态信息到API Server里

etcd:用于持久化存储集群中所有的资源对象,API Server提供了操作 etcd的封装接口API,这些API基本上都是对资源对象的操作和监听资源变化的接口

API Server :提供资源对象的操作入口,其他组件都需要通过它提供操作的API来操作资源数据,通过对相关的资源数据“全量查询”+ “变化监听”,可以实时的完成相关的业务功能。

Scheduler :调度器,负责Pod在集群节点中的调度分配。

Controller Manager:集群内部管理控制中心,主要是实现Kubernetes 集群的故障检测和恢复的自动化工作。比如Pod的复制和移除,Endpoints对象的创建和更新,Node的发现、管理和状态监控等等都是由Controller Manager 完成。

到这里K8S的基本情况我们就讲解完毕了,有喜欢的小伙伴记得 点赞关注 ,相比如Docker来说K8S有着更成熟的功能,经过谷歌大量实践的产物,是一个比较成熟和完善的系统。

关于K8S大家有什么想要了解或者疑问的地方欢迎大家留言告诉我。

我是牧小农,一个卑微的打工人,如果觉得文中的内容对你有帮助,记得一键三连,你们的三连是小农最大的动力。

若对本页面资源感兴趣,请点击下方或右方图片,注册登录后

搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源

如有其他疑问,请咨询右下角【在线客服】,谢谢支持!

k8s (k8s认证考试有几种) 第2张
发表评论
欢迎你第一次访问网站!