备战面试K8S

备战面试&&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

日志采集工具的优缺点

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年免费云服务器推荐,小编亲测好用!

随着云计算技术的飞速发展,云服务器以其弹性、高效、安全的特性,成为众多企业和个人用户的首选。尽管市面上有众多收费的云服务器产品,但免费的云服务器仍然吸引着大量用户,尤其是初学者和预算有限的用户。下面,我们就…

从API到Agent:洞悉LangChain工程化设计

作者:范志东 原文:https://mp.weixin.qq.com/s/zGS9N92R6dsc9Jk57pmYSg 本文作者试着从工程角度去理解LangChain的设计和使用。大家可以将此文档作为LangChain的“10分钟快速上手”手册,希望帮助需要的同学实现AI工程的Bootstrap。 我想做一…

[Vision Board创客营]学习片上Flash移植FAL

文章目录 [Vision Board创客营]学习片上Flash移植FAL介绍环境搭建使用组件测试porbeerasewriteread 结语 [Vision Board创客营]学习片上Flash移植FAL 水平较菜,大佬轻喷。😰😰😰 介绍 🚀🚀Vision-Board 开…

安全开发实战(3)--存活探测与端口扫描

目录 安全开发专栏 前言 存活探测 端口扫描 方式一: 1.3.1 One 1.3.2 Two 1.3.3 批量监测 方式二: 1.3.1 One 1.3.2 Two 1.3.3 Three 1.3.4 扫描ip地址,提取出开放端口和协议 ​编辑 1.3.5 批量扫描(最终完成版) 总结 安全开发专栏 安全开发实战​http://t.csd…

MySql数据库从0-1学习-第五天事务和索引

事务 事务 是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作 要么同时成功,要么同时失败。 注意事项,默认事务是自动提交的,也就是说,当执行一条DML语句,MySql会立即隐…

【Java开发指南 | 第八篇】Java变量、构造方法、创建对象

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 Java变量构造方法创建对象 Java变量 在Java中,变量用于存储数据值。它们是程序中用于保存信息的一种基本方式。变量在程序执行过程中可以被赋予不同的值,并且这些值可以在程序的不同部分…

超越现实的展览体验,VR全景展厅重新定义艺术与产品展示

随着数字化时代的到来,VR全景展厅成为了企业和创作者展示作品与产品的新兴选择。通过结合先进的虚拟现实技术,VR全景展厅不仅能够提供身临其境的观展体验,而且还拓展了传统展示方式的界限。 一、虚拟现实技术的融合之美 1、高度沉浸的观展体验…

Unity开发holoLens2应用时的ProjectSettings配置

正确的进行Unity工程配置,才能进行后续的【发布】和【部署】操作… 本案例开发环境说明: Unity2021.3.18Win10VS2022HoloLens2 一、平台设置 二、Quality画面质量设置 三、Player玩家设置 四、XR-Plug设置 五、环境测试 导入一个官方demo&#xff0c…

EasyPoi表格导入添加校验

EasyPoi表格导入添加校验 项目添加maven依赖实体类自定义校验controller测试结果 代码地址 项目添加maven依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www…

【任务调度】Apache DolphinScheduler快速入门

Apache DolphinScheduler基本概念 概念&#xff1a;分布式、去中心化、易扩展的可视化DAG工作流任务调度系统。 作用&#xff1a;解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。Apache DolphinScheduler是一款开源的调度工具&#xff…

紫光展锐携手中国联通智慧矿山军团(山西)完成RedCap现网环境测试

近日&#xff0c;紫光展锐与中国联通智慧矿山军团&#xff08;山西&#xff09;在现网环境下成功完成了RedCap技术测试。此次测试对搭载紫光展锐RedCap芯片平台V517的模组注网速度和信号情况、Iperf打流测试上下行情况、ping包延时情况以及模组拨号入网压测等项目进行了全面验证…

OpenHarmony UI动画-rebound

简介 rebound是一个模拟弹簧动力学&#xff0c;用于驱动物理动画的库。 下载安装 ohpm install ohos/reboundOpenHarmony ohpm环境配置等更多内容&#xff0c;请参考如何安装OpenHarmony ohpm 使用说明 import rebound from ohos/rebound;功能一&#xff1a;创建维护弹簧对…

韩顺平Java | C27 正则表达式

入门介绍 需求&#xff1a;提取文本中某类字符 传统方法&#xff1a;遍历每个字符&#xff0c;判断其是否在ASCII码中某种类型得编码范围内&#xff0c;代码量大&#xff0c;效率不高 正则表达式(RegExp, regular expression)&#xff1a;处理文本的利器&#xff0c;是对字符…

【详细介绍下图搜索算法】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

Golang入门基础

文章目录 Golang的背景知识Golang的发展历程Golang的特点Golang的应用领域 开发环境搭建下载并安装SDK包设置环境变量Go项目目录结构 注释变量标识符命名输入和输出运算符算术运算符关系运算符逻辑运算符赋值运算符位运算符其他运算符 Golang的背景知识 Golang的发展历程 Gola…

高仿小米商城用户端

高仿小米商城用户端(分为商城前端&#xff08;tongyimall-vue)和商城后端(tongyimall-api)两部分)&#xff0c;是Vue SpringBoot的前后端分离项目&#xff0c;用户端包括首页门户、商品分类、首页轮播、商品展示、商品推荐、购物车、地址管理、下订单、扫码支付等功能模块。 …

Docker Volume (存储卷)

什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。这就意味着&#xff0c;当我们在容器中的这个目录下写入数据时&#xff0c;容器会将其内容直接写入到宿主机上与此容器建立了绑定关系的目录。在宿主机上…

「51媒体」权重高新闻源央级媒体邀约资料有哪些?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 权重高的央级媒体邀约资源包括了中国一些最具影响力和权威性的新闻机构。具体如下&#xff1a; 人民日报&#xff1a;作为中国共产党中央委员会的机关报&#xff0c;人民日报具有极高的权…

openEuler-23.03下载

下载地址&#xff1a;openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 下载版本&#xff1a;openEuler-23.03-x86_64-dvd.iso

生产者,消费者,队列缓冲区,线程

public class CustomQueue {private BlockingQueue<Integer> queue;public CustomQueue() {// 初始化一个容量为1的阻塞队列queue new LinkedBlockingQueue<>(1);}public void put(int num) throws InterruptedException {// 将数字放入队列queue.put(num);}publi…