【kubernetes】k8s概念,2024年最新今日头条java后端面试答案

  • kube-controller-manager

  • kube-scheduler(将 Pod 调度到 Node 上)

  • etcd

  • kube-proxy

  • kubelet

  • DNS

  • flannel

  • 其他组建

    • Replication Controller
  • Node Controller

  • Namespace Controller

  • Service Controller

  • EndPoints Controller

  • Service Account Controller

  • Persistent Volume Controller

  • Daemon Set Controller

  • Deployment Controller

  • Job Controller

  • Pod Autoscaler Controller

  • Kubernetes Node运行节点,运行管理业务容器,包含如下组件:

    • Kubelet
  • Kubernetes Proxy

  • Docker

kubernetes说明

===========================================================================

  • .背景介绍

  • 云计算飞速发展

  • IaaS(基础设施即服务)

提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。

  • PaaS(平台即服务)

提供给消费者的服务是把客户采用提供的开发语言和工具(例如Java,python, .Net等)开发的或收购的应用程序部署到供应商的云计算基础设施上去。

  • SaaS(软件即服务)

提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等;

  • Docker技术突飞猛进

  • 一次构建,到处运行

  • 容器的快速轻量

  • 完整的生态环境

  • Kubernetes (通常称为 K8s) 是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统,是 Google内部工具 Borg 的“开源版”。

  • kubernets=k8s原因是因为 k和s中间有8个字母。

  • kubernetes是用来管理容器的

容器是由runtime(运行时)来生产的

  • 容器的编排工具

  • swarm

  • compose

  • mesos

  • openshift

  • kubernetes

  • kubernetes读音有以下几种

  • Q博耐替私

  • Q博耐tiu私

  • 酷博乃提私

  • 酷博乃tiu私

  • k8s并不直接管理一个个的容器,而是管理的一个个pod

pod翻译成中文—豆荚

最小的管理单位是pod

  • Kubernetes 目前是公认的最先进的容器集群管理工具,在 1.0 版本发布后,Kubernetes 的发展速度更加迅猛,并且得到了容器生态圈厂商的全力支持,这包括coreos、rancher 等,诸多提供公有云服务的厂商在提供容器服务时也都基于 Kubernetes 做二次开发来提供基础设施层的支撑,比如华为。可以说 Kubernetes 也是 Docker 进军容器集群管理和服务编排领域最为强劲的竞争对手(Docker Swarm)。

  • Kubernetes 定义了一组构建块,它们可以共同提供部署、维护和扩展应用程序的机制。组成 Kubernetes 的组件设计为松耦合和可扩展的,这样可以满足多种不同的工作负载。可扩展性在很大程度上由 Kubernetes API 提供——它被作为扩展的内部组件以及 Kubernetes 上运行的容器等使用。

  • 因为 Kubernetes 是由很多组件构成的一个系统,所以对于 Kubernetes 的安装部署来说,还是有些困难的,并且 Kubernetes 是 Google 开发的,有很多内部的依赖包都是需要穿墙访问的。

  • 当然,也有快速安装的工具,比如 kubeadm,kubeadm 是 Kubernetes 官方提供的快速安装和初始化 Kubernetes 集群的工具,目前的还处于孵化开发状态,伴随 Kubernetes 每个版本的发布都会同步更新,当然,目前的 kubeadm 是不能用于生产环境的。

kubernetes虚拟化环境框架图

=================================================================================

下面的每张图都是独立的,是用不同的方法展示出来而已。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Kubernetes 特点

============================================================================

  • 简洁的:轻量级,简单,易上手

  • 可移植的:公有,私有,混合,多重云(multi-cloud)

  • 可扩展的: 模块化, 插件化, 可挂载, 可组合

  • 可自愈的: 自动布置, 自动重启, 自动复制

  • 通俗来说:

  • 自动化容器的部署和复制

  • 随时扩展或收缩容器规模

  • 将容器组织成组,并且提供容器间的负载均衡

  • 很容易地升级应用程序容器的新版本

  • 提供容器弹性,如果容器失效就替换它

Kubernetes 术语【核心概念】

==================================================================================

Master【管理节点 (Master Node)】


  • 简单来说: 用于控制 Kubernetes 节点的计算机,所有任务分配都来自于此。

  • k8s集群的管理节点,负责管理集群,提供集群的资源数据访问入口。拥有Etcd存储服务(可选),运行Api Server进程,Controller Manager服务进程及Scheduler服务进程,关联工作节点Node。Kubernetes API server提供HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口。也是集群控制的入口进程;Kubernetes Controller Manager是Kubernetes所有资源对象的自动化控制中心;Kubernetes Schedule是负责资源调度(Pod调度)的进程。

Node【工作节点 (Minion Node)】


  • 简单来说:执行请求和分配任务的计算机,由 Kubernetes 主机负责对节点进行控制。

  • Node也称之为worker。

  • Node是Kubernetes集群架构中运行Pod的服务节点(亦叫agent或minion)。Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机。关联Master管理节点,拥有名称和IP、系统资源信息。运行docker eninge服务,守护进程kunelet及负载均衡器kube-proxy.

  • 每个Node节点都运行着以下一组关键进程

  • kubelet:负责对Pod对于的容器的创建、启停等任务

  • kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件

  • Docker Engine(Docker):Docker引擎,负责本机容器的创建和管理工作

  • Node节点可以在运行期间动态增加到Kubernetes集群中,默认情况下,kubelet会想master注册自己,这也是Kubernetes推荐的Node管理方式,kubelet进程会定时向Master汇报自身情报,如操作系统、Docker版本、CPU和内存,以及有哪些Pod在运行等等,这样Master可以获知每个Node节点的资源使用情况,冰实现高效均衡的资源调度策略。

Pod【容器集 (Pod)】


  • 简单来说:被部署在单个节点上的,且包含一个或多个容器的容器组,Pod 是可以被创建,调度,并与 Kubernetes 管理最小部署单元,同一容器集中的所有容器共享同一个 IP 地址、IPC、主机名称及其它资源。容器集会将网络和存储从底层容器中抽象出来,这样,您就能更加轻松地在集群中移动容器。

  • 运行于Node节点上,若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址,同一个Pod中,端口不能重复,否则报错,能够通过localhost进行通。Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。

  • Pod其实有两种类型:普通Pod和静态Pod,后者比较特殊,它并不存在Kubernetes的etcd存储中,而是存放在某个具体的Node上的一个具体文件中,并且只在此Node上启动。普通Pod一旦被创建,就会被放入etcd存储中,随后会被Kubernetes Master调度到摸个具体的Node上进行绑定,随后该Pod被对应的Node上的kubelet进程实例化成一组相关的Docker容器冰启动起来,在。在默认情况下,当Pod里的某个容器停止时,Kubernetes会自动检测到这个问起并且重启这个Pod(重启Pod里的所有容器),如果Pod所在的Node宕机,则会将这个Node上的所有Pod重新调度到其他节点上。

Service【服务 (Service)】


  • 简单来说:服务为一组 Pod 提供单一稳定的名称和地址,服务可将工作定义与容器集分离,Kubernetes 服务代理会自动将服务请求分配到正确的容器集 — 无论这个容器集会移到集群中的哪个位置,即使它已被替换,也是如此。

  • Service定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象。Service提供了一个统一的服务访问入口以及服务代理和发现机制,关联多个相同Label的Pod,用户不需要了解后台Pod是如何运行。

  • 外部系统访问Service的问题

首先需要弄明白Kubernetes的三种IP这个问题

  • Node IP:Node节点的IP地址

  • Pod IP: Pod的IP地址

  • Cluster IP:Service的IP地址

  • 首先,Node IP是Kubernetes集群中节点的物理网卡IP地址,所有属于这个网络的服务器之间都能通过这个网络直接通信。这也表明Kubernetes集群之外的节点访问Kubernetes集群之内的某个节点或者TCP/IP服务的时候,必须通过Node IP进行通信

  • 其次,Pod IP是每个Pod的IP地址,他是Docker Engine根据docker0网桥的IP地址段进行分配的,通常是一个虚拟的二层网络。

  • 最后Cluster IP是一个虚拟的IP,但更像是一个伪造的IP网络,原因有以下几点

  • Cluster IP仅仅作用于Kubernetes Service这个对象,并由Kubernetes管理和分配P地址

  • Cluster IP无法被ping,他没有一个“实体网络对象”来响应

  • Cluster IP只能结合Service Port组成一个具体的通信端口,单独的Cluster IP不具备通信的基础,并且他们属于Kubernetes集群这样一个封闭的空间。

  • Kubernetes集群之内,Node IP网、Pod IP网于Cluster IP网之间的通信,采用的是Kubernetes自己设计的一种编程方式的特殊路由规则。

Replication Controller【复制控制器 (Replication Controller)】


  • 简单来说:复制控制器管理 Pod 的生命周期,它们保证指定数量的 Pod 在任何给定的时间都在运行,他们通过创建或删除 Pod 做到这一点

  • Replication Controller用来管理Pod的副本,保证集群中存在指定数量的Pod副本。集群中副本的数量大于指定数量,则会停止指定数量之外的多余容器数量,反之,则会启动少于指定数量个数的容器,保证数量不变。Replication Controller是实现弹性伸缩、动态扩容和滚动升级的核心。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

在这里插入图片描述

最新整理电子书

在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

[外链图片转存中…(img-1IrRWtu3-1712686223859)]

最新整理电子书

[外链图片转存中…(img-id0yx1Kx-1712686223859)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-PPzrSqh7-1712686223859)]

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值