K8S面试题学习

news/2024/5/3 0:15:58

参考K8S面试题(史上最全 + 持续更新)_kubernetes常见面试题-CSDN博客做的个人总结,规划是每天看10题,thx!

1.K8S是什么?

        容器编排工具,主要用来管理容器化的一个应用,可以管理容器全部生命周期的应用

2.K8S的组件有哪些?有什么用?

        2个节点,7个组件

        master节点:负责管理集群,有kube-api-server、kube-controller-manager、kube-scheduler、etcd 组件

        node节点:容器真正运行的地方,有kubelet、kube-proxy、container-runtime

        下面分别介绍各个节点的作用:

        1.kube-api-server:api-server是K8S的重要核心组件之一,是K8S集群管理的统一访问入口,提供了RESTful API接口,api-server还是其他组件之间的数据交互和通信的枢纽,其他组件彼此之间并不会直接通信,其他组件对资源对象的增、删、改、查和监听操作都是交由api-server处理后,api-server再提交给etcd数据库做持久化存储,只有api-server才能直接操作etcd数据库,其他组件都不能直接操作etcd数据库,其他组件都是通过api-server间接的读取,写入数据到etcd。

        2.kube-controller-manager:KS8的控制管理器,是k8s集群内部的管理控制中心,也是k8s自动化功能的核心;controller-manager内部包含replication controller、node controller、deployment controller、endpoint controller等各种资源对象的控制器,每种控制器都负责一种特定资源的控制流程,而controller-manager正是这些controller的核心管理者。

        3.kube-scheduler:scheduler负责调度集群资源,为pod根据一系列复杂的算法找出合适的node节点,与需要创建的pod绑定

        4.etcd:是一个分布式的键值对存储数据库,主要是用于保存k8s集群状态数据,比如,pod,service等资源对象的信息;etcd可以是单个也可以有多个,多个就是etcd数据库集群,etcd通常部署奇数个实例

        5.kubelet:每个node节点上都有一个kubelet服务进程,kubelet作为连接master和各node之间的桥梁,负责维护pod和容器的生命周期,当监听到master下发到本节点的任务时,比如创建、更新、终止pod等任务,kubelet 即通过控制docker来创建、更新、销毁容器;每个kubelet进程都会在api-server上注册本节点自身的信息,用于定期向master汇报本节点资源的使用情况。

        6.kube-proxy:运行在node节点,实现Pod网络代理,维护网络规则和四层负载均衡工。kube-proxy会监听api-server中从而获取service和endpoint的变化情况,创建并维护路由规则以提供服务IP和负载均衡功能。简单理解此进程是Service的透明代理兼负载均衡器,其核心功能是将到某个Service的访问请求转发到后端的多个Pod实例上。

        7container-runtime:容器运行所需要的环境

3.简述kubernetes的基本概念?

        1.master节点:K8S集群的管理节点,负责管理集群,提供资源访问入口,运行api-server、controller-manager、以及scheduler服务;

        2.node节点:运行pod的服务节点,是Pod运行的宿主机。运行docker eninge服务,守护进程kunelet及负载均衡器kube-proxy;

        3.pod:运行在node节点,一个或者多个容器的集合,用相同的网络命名空间、IP地址和端口,能够通过localhost进行通信。Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。

        4.label:是一系列的Key/Value键值对,其中key与value可自定义。Label可以附加到各种资源对象上,如Node、Pod、Service、RC等。一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上去。Kubernetes通过Label Selector(标签选择器)查询和筛选资源对象;

        5.Replication Controller:管理Pod的副本,保证集群中存在指定数量的Pod副本。Replication Controller是实现弹性伸缩、动态扩容和滚动升级的核心;

        6.Deployment:Deployment相当于RC的一次升级,其最大的特色为可以随时获知当前Pod的部署进度;

        7.HPA(Horizontal Pod Autoscaler):Pod的横向自动扩容,也是Kubernetes的一种资源,通过追踪分析RC控制的所有Pod目标的负载变化情况,来确定是否需要针对性的调整Pod副本数量;

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

        9.Volume:        Volume是Pod中能够被多个容器访问的共享目录,Kubernetes中的Volume是定义在Pod上,可以被一个或多个Pod中的容器挂载到某个目录下;

Namespace:

Namespace用于实现多租户的资源隔离,可将集群内部的资源对象分配到不同的Namespace中,形成逻辑上的不同项目、小组或用户组,便于不同的Namespace在共享使用整个集群的资源的同时还能被分别管理;

4.简述Kubernetes和Docker的关系?

        Docker开源的容器引擎,一种更加轻量级的虚拟化技术;

        K8s:容器管理工具,用来管理容器pod的集合,它可以实现容器集群的自动化部署、自动扩缩容、维护等功能;

5.简述Kubernetes如何实现集群管理?

        在集群管理方面,Kubernetes将集群中的机器划分为一个Master节点和一群工作节点Node。

其中,在Master节点运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理能力,并且都是全自动完成的;

6.简述Kubernetes的优势、适应场景及其特点?

        优势:容器编排、轻量级、开源、弹性伸缩、负载均衡;

        场景:快速部署应用、快速扩展应用、无缝对接新的应用功能、节省资源,优化硬件资源的使用;

        特点:

        可移植: 支持公有云、私有云、混合云、多重云(multi-cloud)、

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

        自动化: 自动部署、自动重启、自动复制、自动伸缩/扩展;

7.简述Kubernetes的缺点或当前的不足之处?

        安装过程和配置相对困难复杂、管理服务相对繁琐、运行和编译需要很多时间、它比其他替代品更昂贵、对于简单的应用程序来说,可能不需要涉及Kubernetes即可满足;

8.简述Kubernetes中什么是Minikube、Kubectl、Kubelet?

        Minikube 是一种可以在本地轻松运行一个单节点 Kubernetes 群集的工具;

        Kubectl 是一个命令行工具,可以使用该工具控制Kubernetes集群管理器,如检查群集资源,创建、删除和更新组件,查看应用程序;

        Kubelet 是一个代理服务,它在每个节点上运行,并使从服务器与主服务器通信;

9.kubelet的功能、作用是什么?(重点,经常会问)

        kubelet部署在每个node节点上的,它主要有4个功能

        1、节点管理。

                kubelet启动时会向api-server进行注册,然后会定时的向api-server汇报本节点信息状态,资源使用状态等,这样master就能够知道node节点的资源剩余,节点是否失联等等相关的信息了。master知道了整个集群所有节点的资源情况,这对于 pod 的调度和正常运行至关重要。
        2、pod管理。

                kubelet负责维护node节点上pod的生命周期,当kubelet监听到master的下发到自己节点的任务时,比如要创建、更新、删除一个pod,kubelet 就会通过CRI(容器运行时接口)插件来调用不同的容器运行时来创建、更新、删除容器;常见的容器运行时有docker、containerd、rkt等等这些容器运行时,我们最熟悉的就是docker了,但在新版本的k8s已经弃用docker了,k8s1.24版本中已经使用containerd作为容器运行时了。

        3、容器健康检查。

                pod中可以定义启动探针、存活探针、就绪探针等3种,我们最常用的就是存活探针、就绪探针,kubelet 会定期调用容器中的探针来检测容器是否存活,是否就绪,如果是存活探针,则会根据探测结果对检查失败的容器进行相应的重启策略;

        4、Metrics Server资源监控。

                在node节点上部署Metrics Server用于监控node节点、pod的CPU、内存、文件系统、网络使用等资源使用情况,而kubelet则通过Metrics Server获取所在节点及容器的上的数据。

10.kube-api-server的端口是多少?各个pod是如何访问kube-api-server的?

        kube-api-server的端口是8080和6443,前者是http的端口,后者是https的端口,以我本机使用kubeadm安装的k8s为例:

        在命名空间的kube-system命名空间里,有一个名称为kube-api-master的pod,

        这个pod就是运行着kube-api-server进程,它绑定了master主机的ip地址和6443端口,但是在default命名空间下,存在一个叫kubernetes的服务,该服务对外暴露端口为443,目标端口6443,

        这个服务的ip地址是clusterip地址池里面的第一个地址,同时这个服务的yaml定义里面并没有指定标签选择器,

        也就是说这个kubernetes服务所对应的endpoint是手动创建的,该endpoint也是名称叫做kubernetes,该endpoint的yaml定义里面代理到master节点的6443端口,也就是kube-api-server的IP和端口。

        这样一来,其他pod访问kube-api-server的整个流程就是:pod创建后嵌入了环境变量,pod获取到了kubernetes这个服务的ip和443端口,请求到kubernetes这个服务其实就是转发到了master节点上的6443端口的kube-api-server这个pod里面。


http://www.mrgr.cn/p/76441803

相关文章

IIS 执行此操作时出错。 详细信息:web.config 错误,.net core项目

一、IIS 执行此操作时出错。 详细信息:web.config 错误,.net core项目运行报错 错误信息提示的很明确:IIS Web Core模块问题 二、解析: IIS下报错,但是直接启动exe文件可以正常运行。三、解决方案 先安装IIS,然后安装 Asp.net Core 运行时。更多: IIS10 隐藏 http server…

特性描述01、Segment Routing MPLS介绍

Segment Routing MPLS介绍 定义 段路由SR(Segment Routing)是基于源路由理念而设计的在网络上转发数据包的一种协议。Segment Routing MPLS是指基于MPLS转发平面的Segment Routing,下文简称为Segment Routing。Segment Routing将网络路径分成一个个段,并且为这些段和网络中…

C# 窗体应用程序 Chart控件显示实时曲线

IDE: VS2019 项目模板:C# windows 窗体应用(.NET Framework) 【参考】 B站上教程C#Chart控件画折线图的使用,关于Chart控件的属性,介绍得非常详细。B站上教程C#上位机Chart控件实时曲线终极讲解,对鼠标滚轮事件等,多…

用html画一个睡觉的熊动画

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>睡觉的熊动画</title><link rel"stylesheet" href"./style.css"> </head><body><div id"contain…

【重回王座】ChatGPT发布最新模型gpt-4-turbo-2024-04-09

今天&#xff0c;新版GPT-4 Turbo再次在大型模型排行榜上荣登榜首&#xff0c;成功超越了此前领先的Claude 3 Opus。另外&#xff0c;新模型在处理长达64k的上下文时&#xff0c;性能竟能够与旧版在处理26k上下文时的表现相当。 目前GPT-4 Turbo仅限于ChatGPT Plus的用户&…

Leetcode - 周赛393

目录 一&#xff0c;3114. 替换字符可以得到的最晚时间 二&#xff0c;3115. 素数的最大距离 三&#xff0c;3116. 单面值组合的第 K 小金额 四&#xff0c; 3117. 划分数组得到最小的值之和 一&#xff0c;3114. 替换字符可以得到的最晚时间 本题是一道模拟题&#xff0c;…

java spring boot 2 开发实战笔记

本案例是java sping boot 2.2.1 第一步搭建环境:安装依赖 由于我们公司项目是1.8 环境不能乱,我现在自己的电脑是1.8环境,所以本次整理的boot 代码 也只能用1.8 boot版本为:2.2.1,新建项目后,在xml 文件中复制上以下代码 xml配置,最精简运行起来的需要配置一个数据库…

【代码随想录】【动态规划】day51:● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费

股票含冷冻期 def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""if len(prices)<1:return 0else:dp[[0]*2 for _ in range(len(prices))]dp[0][0]-prices[0]dp[0][1]0dp[1][0]max(dp[0][0],dp[0][1]-prices[1])dp[1][1]…

Github 2024-04-16Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目1Vue项目1系统设计指南 创建周期:2507 天开发语言:Python协议类型:OtherStar数量:241693 个Fork数量:42010 次…

个人 Scrum Day 4

一、项目总结 昨天已完成的工作:食堂列表界面 今日计划完成工作:用户登录系统 工作中遇到的困难:使用新版微信小程序的api接口和设计登录弹窗。 二、代码签入 https://github.com/gdut-canteen/gdut-canteen/commit/79cb13c09bc60343e20561a989d3eaaf8dc7075f 三、运行部分截…

aaPanel面板和宝塔(BT)面板安装及命令

aaPanel面板和宝塔面板都是同一家公司在运营,只是aaPanel面板主要服务于海外客户,宝塔面板服务于本地客户。通常如果使用的是海外的服务器部署web环境,建议使用aaPanel面板。宝塔面板是一款基于 Web 的管理服务器的面板软件,它可以帮助用户方便地管理服务器的各种功能。面板…

租用境外服务器,越南服务器的优势有哪些

自从中国加入世界贸易组织之后&#xff0c;国内经济增加速度非常快&#xff0c;同时越来越多的人选择去东南亚国家发展&#xff0c;因为当地的中国人很多&#xff0c;所以中国企业在当地面临着更小的文化差异。东南亚地区也是最新的经济体&#xff0c;互联网正处于蓬勃发展的阶…

数据结构:线性表————单链表专题

&#x1f308;个人主页&#xff1a;小新_- &#x1f388;个人座右铭&#xff1a;“成功者不是从不失败的人&#xff0c;而是从不放弃的人&#xff01;”&#x1f388; &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f3c6;所属专栏&#xff1…

vue和react通用后台管理系统权限控制方案

1. 介绍 在任何企业级应用中&#xff0c;尤其是后台管理系统&#xff0c;权限控制是一个至关重要的环节。它确保了系统资源的安全性&#xff0c;防止非法访问和操作&#xff0c;保障业务流程的正常进行。本文件将详细解析后台管理系统中的权限控制机制及其实施策略。 那么权限…

使用Docker部署开源建站工具—Halo,并实现个人博客公网访问

目录 推荐 前言 1. Docker部署Halo 1.1 检查Docker版本 如果未安装Docker可参考&#xff1a; 已安装Docker步骤&#xff1a; 1.2 在Docker中部署Halo 2. Linux安装Cpolar 2.1 打开服务器防火墙 2.2 安装cpolar内网穿透 3. 配置Halo个人博客公网地址 4. 固定Halo公网…

如何使用XSSFWorkbook读取文本薄?

本篇文章暂不对XSSFWorkbook类进行解析和说明,仅附有实现代码。 如果文中阐述不全或不对的,多多交流。【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18146625 出自【进步*于辰的博客】1、文件兼容类型。 // 兼…

GAMES101 作业7 踩坑指南

首先回顾路径追踪的原理,如下图基本思想 wo是射向眼镜(相机)的光线,包含来自光源的直接光照ws,来自其他物体的间接光照wi两部分。 在实现path tracing时,我们考虑的是黄色线的方向,即光线从相机射向p点(实际上是从p点射向相机),然后通过多次随机采样从p点射出(实际上…