当前位置: 首页 > news >正文

k8s record 20240703

1. containerd

它不用于直接和开发人员互动,在这方面不和docker竞争
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

containerd的用时最短,性能最好。
containerd 是容器的生命周期管理,容器的网络管理等等,真正让容器运行需要runC
containerd 是一个独立的容器运行时,专注于容器的生命周期管理,包括镜像管理、容器执行和监督。containerd 是 Docker 的底层组件之一,但也可以独立使用。

docker-shim 是 Docker 的一个内部组件,主要用于 Docker 作为 Kubernetes 容器运行时接口(CRI)时的适配层。docker-shim 是 Kubernetes 为支持 Docker 而实现的适配层,将逐渐被弃用,推荐使用直接支持 CRI 的运行时,如 containerd。
docker-cli 通过 Docker API 与 Docker 守护进程通信,而 Docker 守护进程再调用 containerd 来执行具体的容器操作。

使用ctr 操纵 容器

Docker 在 /var/lib/docker 目录下管理和存储镜像。
Docker Daemon 处理所有的镜像操作,例如拉取、推送、删除等,通过 Docker CLI(docker 命令)进行管理。

containerd 在 /var/lib/containerd 目录下管理和存储镜像。
containerd 提供自己的 CLI 工具 ctr 来管理镜像。

ctr images ls
ctr images pull docker.m.daocloud.io/library/nginx:alpine

Docker 的本地镜像存储和 containerd 的本地镜像存储是独立的,不共享数据。
使用 docker pull 拉取的镜像存储在 Docker 的存储目录中,供 Docker 使用。/var/lib/docker
使用 ctr pull 或 crictl pull 拉取的镜像存储在 containerd 的存储目录中,供 containerd 使用。/var/lib/containerd

ctr 是一个低级别的工具,直接与 containerd 交互,提供了详细的控制和调试功能,适合高级用户和开发者。
crictl 是一个高层次的工具,基于 CRI 标准,主要用于 Kubernetes 环境,通过统一的命令集管理不同的容器运行时,适合系统管理员和 Kubernetes 用户。
在这里插入图片描述
create还得两步,不如一步 ctr run直接静态容器创建并且变成动态容器

ctr 对接 harbor

修改 /etc/containerd/config.toml文件 加入私有地址

namespace

不同的namespace,即使容器名相同,也不要紧。
可以运行容器指定namespace
其他namespace的镜像用不了,必须自己的namespace 里有

containerd Network

在这里插入图片描述

  1. 创建CNI 网络,即容器网络
    github获取安装它俩。在github搜索—打开右边的release,然后复制网络连接,在服务器上wget + 网络链接
    在这里插入图片描述
    现在宿主机上创建网桥。然后所有的容器都可以通过这个网桥与外界通信
  2. 为容器配置网络功能
    在这里插入图片描述
    用插件就这样给它加上网络功能了,进到容器里它就多了一个网卡

持久化存储

容器可以挂载到宿主机目录

containerd 的缺陷

它不能bulid,commit等等。
docker帮助实现容器管理

2. 日志

ELK 集群部署

在这里插入图片描述

  1. https://www.elastic.co/cn/elasticsearch

  2. 收集 k8s 节点系统日志需要 filebeat. Filebeat 在ELK堆栈中负责收集和转发日志数据
    需要收集那个节点的日志就在哪安装 filebeat

  3. 收集节点应用程序日志,就是物理机运行的程序
    在这里插入图片描述
    收集机器上这两处日志(注意上图划线这里的路径是容器里的路径,是挂载的物理机相同的路径) 给logstash
    Filebeat -> Logstash -> Elasticsearch。Filebeat 收集日志并发送到 Logstash,Logstash 处理数据后发送到 Elasticsearch 进行存储和索引。

Logstash 提供了强大的过滤插件,允许用户对数据进行复杂的处理和转换,包括:
解析:从原始数据中提取有用的信息,例如解析 JSON、CSV、XML 等格式的数据。
转换:修改数据内容,例如添加或删除字段,格式化时间戳等。
增强:通过查找、计算等方式添加更多有用的信息,例如通过地理IP数据库添加地理位置信息。
清洗:去除无用的数据,过滤掉不需要的日志条目。

下面是logstash 配置文件
在这里插入图片描述
4. 收集pod日志
一个pod多个容器,filebeat作为边车容器从共享存储(两容器都挂一个目录)中取走工作容器的日志

EFK

在这里插入图片描述
ELK部署需要单独主机,但是EFK可以部署到 k8s 内

logstash是java开发的
在这里插入图片描述
缓存和高可用有啥不懂的

3. 监控

通过helm部署 Prometheus

  1. metallb-system 用来提供负载均衡服务
  2. ingress-nginx 用来从外部对Prometheus和 grafana的管理
  3. helm安装到物理机,helm install prometheus 到 k8s,此时 grafana 也一块装好了
  4. 对 k8s 做了哪些监控,通过 Prometheus 网站查看。grafana数据展示
  5. ingress的用处,向外面暴露 Prometheus和 grafana的域名。
    在这里插入图片描述
    在这里插入图片描述
    通过在笔记本上配置host,用上面这个ip
    在这里插入图片描述
    同一ip 对应两个域名就是 ingress-nginx反向代理的作用

监控redis,redis也是通过helm部署

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

先要部署 redis-exporter,也就是探针。然后创建svc,通过标签与 探针发生联系
在这里插入图片描述

创建一个ServiceMonitor被 Prometheus 发现,自动对 ServiceMonitor的 svc 监控,里面有redis相关的数据记录
在这里插入图片描述

监控mysql

yaml 文件部署mysql
部署 mysql exporter

相关文章:

k8s record 20240703

1. containerd 它不用于直接和开发人员互动,在这方面不和docker竞争 containerd的用时最短,性能最好。 containerd 是容器的生命周期管理,容器的网络管理等等,真正让容器运行需要runC containerd 是一个独立的容器运行时&am…...

Ansible常用模块

华子目录 Ansible四个命令模块1.组成2.特点3.区别3.1command、shell模块3.2raw模块 4.command模块4.1参数表4.2free_form参数 5.shell模块5.1作用5.2例如 6.script模块6.1示例 7.raw模块7.1参数7.2示例 文件操作模块1.file模块1.1参数1.2示例 2.copy模块2.1参数 Ansible四个命令…...

【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 库中的浏览器特性支持检测

深入探讨JavaScript库:功能、配置与应用场景 前言 在现代的Web开发中,JavaScript库扮演着至关重要的角色,帮助开发人员简化代码、提高效率、实现更好的用户体验。本文将探讨几个常用的JavaScript库,包括模块加载库、数据绑定库和…...

深度学习:C++和Python如何对大图进行小目标检测

最近在医美和工业两条线来回穿梭,甚是疲倦,一会儿搞搞医美的人像美容,一会儿搞搞工业的检测,最近新接的一个项目,关于瑕疵检测的,目标图像也并不是很大吧,需要放大后,才能看见细小的…...

Eureka从入门到精通面试题及答案参考

什么是Eureka?它在微服务架构中扮演什么角色? Eureka是Netflix开源的一款基于REST的服务发现组件,它主要应用于构建分布式系统中的服务注册与发现。在微服务架构中,Eureka扮演着至关重要的角色,它让微服务架构中的各个服务实例能够互相发现、相互调用,从而实现了服务之间…...

io流 多线程

目录 一、io流 1.什么是io流 2.流的方向 i.输入流 ii.输出流 3.操作文件的类型 i.字节流 1.拷贝 ii.字符流 ​3.字符流输出流出数据 4.字节流和字符流的使用场景 5.练习 6.缓冲流 1.字节缓冲流拷贝文件 2.字符缓冲流特有的方法 1.方法 2.总结 7.转换流基本用法…...

人工智能、机器学习、神经网络、深度学习和卷积神经网络的概念和关系

人工智能(Artificial Intelligence,缩写为AI)--又称为机器智能,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是智能学科重要的组成部分,它企图了解智能的实质…...

对话大模型Prompt是否需要礼貌点?

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 基于Dify的QA数据集构建(附代码)Qwen-2-7B和GLM-4-9B&#x…...

【驱动篇】龙芯LS2K0300之ADC驱动

实验目的 由于LS2K0300久久派开发板4.19内核还没有现成可用的ADC驱动,但是龙芯官方的5.10内核已经提供了ADC驱动,想要在4.19内核使用ADC就要参考5.10内核移植驱动,本次实验主要是关于ADC驱动的移植和使用 驱动移植 主要的驱动代码主要有3个…...

Python入门 2024/7/3

目录 for循环的基础语法 遍历字符串 练习:数一数有几个a range语句 三个语法 语法1 语法2 语法3 练习:有几个偶数 变量作用域 for循环的嵌套使用 打印九九乘法表 发工资案例 continue和break语句 函数的基础定义语法 函数声明 函数调用 …...

Go 语言 Map(集合)

Go 语言 Map(集合) Map 是 Go 语言中一种非常重要的数据结构,它用于存储键值对。在 Go 中,Map 是一种无序的键值对的集合,其中每个键都是唯一的,而值则可以是任何类型。Map 是 Go 语言的内置类型,使用起来非常方便,同时也是许多 Go 程序中不可或缺的一部分。 Map 的声明…...

SpringCloud学习Day7:Seata

概念 Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务 工作流程 TC以Seata服务器形式独立部署,TM和RM则是以Seata Client的形式集成在微服务中运行...

【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、nouveau驱动程序加入黑名单二、安装NVIDIA显卡驱动总结 前言 NVIDIA显卡驱动是用于支持和优化NVIDIA显卡在计算机系统中运行的关键软件组件。该驱动程序能…...

LabVIEW从测试曲线中提取特征值

在LabVIEW中开发用于从测试曲线中提取特征值的功能时,可以考虑以下几点: 数据采集与处理: 确保你能够有效地采集和处理测试曲线数据。这可能涉及使用DAQ模块或其他数据采集设备来获取曲线数据,并在LabVIEW中进行处理和分析。 特…...

【应届应知应会】SQL常用知识点50道

SueWakeup 个人主页:SueWakeup 系列专栏:借他一双眼,愿这盛世如先生所愿 个性签名:人生乏味啊,我欲令之光怪陆离 本文封面由 凌七七~❤ 友情提供 目录 数据库的概念 (什么是数据库) RDBMS NOSQL 数据库的分类 …...

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】 购物车需求描述购物车数据结构数据Model抽取实现流程(参照京东)代码实现参考 购物车需求描述 用户可以在登录状态下将商品添加到购物车【用户购物…...

科技赋能智慧应急:“数字孪生+无人机”在防汛救灾中的应用

近期,全国多地暴雨持续,“麻辣王子工厂停工”“水上派出所成水上的派出所了”等相关词条冲上热搜,让人们看到了全国各地城市内涝、洪涝带来的严重灾情。暴雨带来的影响可见一斑,潜在的洪水、泥石流、山体滑坡等地质灾害更应提高警…...

urfread刷算法|构建一棵树

大意 示例标签串: 处理结果: 题目1 根据标签串创建树 需求 需求:给出一个字符串,将这个字符串转换为一棵树。 字符串可以在代码里见到,是以#开头,按照\分割的字符串。 你需要将这个字符串&#xff0…...

在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野

在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野 flyfish 在卷积神经网络(CNN)中,可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的…...

【学习笔记】Mybatis-Plus(四):MP中内置的插件

内置插件 目前MP已经存在的内部插件包括如下: 插件类名作用PaginationInnerInterceptor分页插件。可以代替以前的PageHelperOptimisticLockerInnerInterceptor乐观锁插件。用于幂等性操作,采用版本更新记录DynamicTableNameInnerInterceptor动态表名Te…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...