备战面试K8S

news2024/12/23 17:30:05

备战面试&&K8S

  • Kubernetes
    • 关于Docker
      • Docker的优缺点分析
    • WebAssembly
      • WebAssembly与Container比较
    • Ctr
    • Crictl
      • Ctr和CriCtl的区别
    • Pod生命周期
      • PodConditions
      • 容器状态
      • Pod容器组成
      • 生命周期的流程
    • Kubelet
  • EFK
      • 日志采集工具的优缺点

Kubernetes

容器运行接口 Container Runtime Interface (CRI): a plugin interface which enables kubelet to use a wide variety of container runtimes, without the need to recompile. CRI consists of a protocol buffers and gRPC API, and libraries, with additional specifications and tools under active development.
容器运行时 (Container Runtime): 它负责拉取并运行容器镜像。

关于Docker

Docker曾是流行的容器运行时。常见的容器运行时还有containerd 和 CRI-O等。
在这里插入图片描述

Docker的优缺点分析

优点:

  • 快:容器的启停、重启以秒或毫秒为单位。
  • 敏捷: 像虚拟机一样敏捷。
  • 轻量:一台服务器可以部署100~1000个container。

WebAssembly

它相对于容器体积更小、速度更快、安全性更强和可移植性更高。

WebAssembly与Container比较

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

简介
github

Ctr

Ctr是Containerd自带的CLI命令行工具

Crictl

Crictl是k8s中CRI(容器运行时接口)的客户端,k8s使用该客户端和containerd进行交互。

Ctr和CriCtl的区别

# 查看运行的容器
ctr task ls 
ctr container ls
crictl ls
# 查看镜像
ctr image ls
crictl images
# 查看容器日志
ctr 没有
crictl logs
# 查看容器数据信息
ctr container info
crictl inspect
# 查看容器资源
crictl stats
# 启动、关闭已有的容器
ctr task start/kill
crictl start/stop
# 运行一个新的容器
ctr run
crictl运行的最小单元为pod
# 修改镜像标签
ctr image tag
# 创建一个新的容器
ctr container create
crictl create
# 导入镜像
ctr image import
# 导出镜像
ctr image export
# 删除容器
ctr container rm
crictl rm
# 删除镜像
ctr image rm 
crictl rmi 
# 拉取镜像
ctr image pull
crictl pull
# 推送镜像
ctr image push

Pod生命周期

在这里插入图片描述

  • Pending:挂起。Pod已被Kubernetes系统接受,但有一个或者多个容器镜像尚未创建。等待时间包括调度Pod的时间和通过网络下载镜像的时间,这可能需要花点时间。
  • Running: 运行中。该Pod已经绑定到了一个节点上,Pod中所用的容器都已被创建(而非运行)。至少有一个容器正在运行,或者正处于启动或重启状态。
  • Succeeded: 成功。Pod中的所用容器都被成功终止,并且不会再重启。
  • Failed: 失败。Pod中的所用容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止。
  • Unknown: 未知。因为某些原因无法取得Pod的状态,通常是因为与Pod的所在主机通信失败。

PodConditions

在这里插入图片描述

  • PodScheduled: Pod已经被调度到某节点。
  • ContainersReady: Pod中所有容器都已就绪。
  • Initialized: 所有的init容器都已成功完成。
  • Ready: Pod可以为请求提供服务,并且应该被添加到对应服务的负载均衡池中。

容器状态

在这里插入图片描述

  • Waiting: 此状态的容器仍在运行它完成启动所需要的操作:例如,从某个容器镜像仓库拉取容器镜像,或者向容器应用Secret数据等等。当你使用kubectl来查询包含Waiting状态的容器的Pod时,其中的Reason字段给出了容器处于等待状态的原因。
  • Running: 此状态表明容器正在执行状态并且没有问题发生。如果配置了postStart回调,那么该回调已经执行且已完成。你可以使用kubelet来查询包含Running状态的容器Pod,其中的Reason字段给出了容器进入Running状态的信息。
  • Terminated: 此状态的容器已经开始执行并且或者正常结束或者因为某些原因失败。你可以使用kubelet来查询包含Terminated状态的容器Pod,其中Reason字段给出了容器进入此状态的原因、退出代码以及容器执行期间的起止时间。

Pod容器组成

  • Infra/Pause Container: 基础容器。Pod中所有容器的父容器,为其他容器提供共享的命名空间和网络空间。
    • 用户不可见,无需感知。
    • kubelet的启动命令选项中,通过"–pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7"指定基础容器。
    • 启动PID命名空间,它在每个Pod中都作为PID为1的进程,并回收僵尸进程。
  • Init Containers: 初始化容器。一般用于服务等待处理以及注册Pod信息等。
    • 先于业务容器开始运行。
    • 顺序执行,执行成功退出(exit 0),全部执行成功后开始启动业务容器。
  • Containers: 业务容器。
    • 并行启动,启动成功后一直Running。

生命周期的流程

在这里插入图片描述

  • 用户通过UI或CLI提交一个Pod创建请求给Kubernetes集群的控制面(HTTP:8080/HTTPS:6443)。
  • API Server接收到请求后进行验证身份和鉴权,写入存储系统etcd。
  • Scheduler通过API Server的watch,或者叫做notification的机制得到这个信息。
  • Scheduler接收到Pod创建请求后,会根据集群各节点的内存状态进行一次调度决策,
  • Scheduler在完成调度之后,它会向API Server返回可调度的节点的信息。
  • API Server接收到这次操作之后,会把调度决策的结果再次写到etcd,然后通知相应的节点去真正的执行Pod的启动。
  • 相应节点的kubelet接收到创建Pod的请求后通过调用Container runtime去配置容器及其运行环境,并调度Storage Plugin进行容器存储的配置,并调度Network Plugin进行容器网络的配置。

在这里插入图片描述

Kubelet

如果容器中的进程能够在遇到问题或者不健康的情况下自行崩溃,kubelet将根据Pod的restartPolicy自动执行修复操作。

EFK

日志采集工具的优缺点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1606205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tensorflow小技巧01:检测本地Tensorflow的版本

前言: 以Pycharm为例,Windwos10系统,检测本地环境的Tensorflow的版本: 1 打开Pycharm窗口 2 在窗口中输入: pythonPython 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win…

ChatGPT与Python-GEE融合,遥感云大数据分析、管理与可视化

掌握Earth Engine的实际应用能力,以Python为基础,结合实例讲解平台搭建、影像数据分析、经典应用案例、本地与云端数据管理,以及云端数据论文出版级可视化等技能。 为提高教学质量,将融入ChatGPT 4、Claude Opus、Gemini、文心一…

Centos7.9 脚本一键部署nextcloud,配置Nginx代理Https。

目录 一键安装nextcloud 出现错误TypeError Cannot read properties of undefined (reading ‘writeText‘) 生成自签名SSL证书 编辑Nginx配置文件 启动Nginx 一键安装nextcloud 本脚本参考文章,本文较长建议先看完在操作!!!…

效率工具:企业微信机器人完成脚本工作-异常监控(sql篇)

效率工具:定时完成脚本工作(sql篇) 背景:elon在公司需要人工查看某些数据是否异常,并发送到指定企业微信群中。 处理步骤: 工具:企业微信中有机器人 可以指定webhook地址嵌入到脚本中&#xf…

C#语法知识之条件分支语句

4、条件分支语句 目录 4、条件分支语句1、条件分支语句 if1、作用2、if语句3、if...else语句4、if...else if...else语句思考1 只需要0~9数字思考2 语句块 2、条件分支语句 switch1、作用2、基本语法3、default可省略4、自定义常量5、贯穿 1、条件分支语句 if 1、作用 //让顺…

Hive进阶(3)----Checkpoint机制(赋图助君理解)

Checkpoint机制 一、Checkpoint机制概念 本机制可以参考《Hadoop权威指南》第十一章: fsimage文件其实是Hadoop文件系统元数据的一个永久性的检查点,其中包含Hadoop文件系统中的所有目录和文件idnode的序列化信息;fsimage包含Hadoop文件系统…

SpringBoot(一)【入门】

前言 1、SpringBoot 快速入门 1.1、SpringBoot 简介 SpringBoot 是用来简化 Spring 应用的初始搭建以及开发过程 首先我们回顾一下 SpringMVC 项目的开发过程: 导入依赖(javax.servlet-api 和 spring-webmvc)Servlet 容器配置类&#xff…

Pytest精通指南(14)Parametrize之indirect(间接参数)

文章目录 官方概念概念分析官方示例示例分析验证indirect为True但不指定fixture验证indirect为True但不存在fixture 官方概念 概念分析 在pytest的pytest.mark.parametrize装饰器中,indirect参数用于指示是否应该从fixtures中解析参数值,而不是直接使用提…

爆炸之linux-nacos2.0系列集群安装部署

一、环境配置 1、新建磁盘分区 fdisk /dev/vdb 2、创建文件系统 mkfs.xfs /dev/vdb13、创建挂载点: 在 / 目录下创建一个新的目录作为挂载点。/afc 目录 mkdir /afc4、挂载磁盘: 使用 mount 命令将磁盘挂载到新创建的目录。 mount /dev/vdb /afc5、…

Yoshua Bengio独家专访:我不想把大模型未来押注在Scaling Law上,AGI路上要“注意安全”...

导读 漫长的30年间,数度从主流方向的超然出走,是Bengio的制胜秘诀。这种不盲从主流的风格体现在他研究生涯的方方面面。 90年代末期,神经网络被打入冷宫,Bengio的论文多次遭拒,连学生们也开始担心,和他一起…

Vue之v-on事件修饰符的含义及使用

背景:Vue 拆封了一个组件,在组件里面会使用一个方法来改变父组件传过来的值, 但是在子组件里面操作父组件的数据变更,实在比较麻烦(因为单向数据流), So 能不能直接在组件上面绑定事件方法呢&…

springSecurity-记住我(Remember me)

一.记住我概述 Remember me(记住我)记住我,当用户发起登录勾选了记住我,在一定的时间内再次登录就不用输入用户名和密码了,即使浏览器退出重新打开也是如此。 二.流程分析 在SpringSecurity中提供RememberMeAuthenticationFilter过滤器来实…

实时动作检测 | 基于Pytorch+YOLOv5+SlowFast实现的视频流实时动作检测算法_支持多目标的跟踪检测

项目应用场景 面向视频流场景的多目标实时动作检测,项目使用 Pytorch YOLOv5 SlowFast 算法实现。 项目效果 项目细节 > 具体参见项目 README.md (1) 创建 Python 开发环境 conda create -n {your_env_name} python3.7.11 conda activate {your_env_name} (2…

npm镜像源的查看和切换

前言 原域名https://registry.npm.taobao.org/ 原来的淘宝镜像已经不行了,当npm去taobao时,会出现一个证书过期的提示. 下面的是最新的地址: 切换到淘宝镜像(最新的地址) #最新地址 淘宝 NPM 镜像站喊你切换新域名啦! npm config set registry https://registry.npmmirror.com…

00_Linux

文章目录 LinuxLinux操作系统的组成Linux的文件系统Linux操作系统中的文件类型Linux操作系统的组织结构 Linux vs WindowsNAT vs 桥接模式 vs 仅主机Linux Shell命令Linux⽂件与⽬录管理相关指令目录文件普通文件文本编辑 用户管理添加用户删除用户用户组管理 文件权限管理权限…

视频教程下载:用ChatGPT快速提升股票投资能力

学完此视频后可以获得: 学习如何使用人工智能/Chatgpt进行基础/快速/高级财务与研究分析 学习如何使用人工智能/Chatgpt对任何公司进行定性投资研究 学习如何使用人工智能/Chatgpt对任何公司进行定量投资研究 学习如何使用人工智能/Chatgpt创建、预测和分析财务…

C语言(二维数组)

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

Mac下brew安装php7.4

这里作者挂了梯子,所以很流畅! brew的下载,可参考另外一篇博文~Homebrew 安装与卸载 1、将第三方仓库加入brew brew tap shivammathur/php2、安装指定版本的PHP brew install php7.43、替换Mac自带PHP环境并刷新环境变量 -> …

【uniapp】uniapp返回上一页,并实现刷新界面数据

在uniapp中,经常会有返回上一页的情况,官方提供有 uni.navigateBack 这个api来实现效果,但是此方法返回到上一页之后页面并不会自动刷新(不会触发上一页的onLoad()方法)。 使用场景 从一个列表界面点击新增按钮&…

ASP.NET基于Web Mail收发系统设计与开发

摘 要 互联网络技术的不断发展,电子邮件服务已经成为人们基本的信息交互手段,也是网络服务中最早和最基本的服务之一。传统邮件系统大多是基于C/S结构,如Lotus notes、Microsoft Exchange Server等,这些邮件系统占用相对较多的服…