当前位置: 首页 > 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

http://www.lryc.cn/news/394372.html

相关文章:

  • Ansible常用模块
  • 【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 库中的浏览器特性支持检测
  • 深度学习:C++和Python如何对大图进行小目标检测
  • Eureka从入门到精通面试题及答案参考
  • io流 多线程
  • 人工智能、机器学习、神经网络、深度学习和卷积神经网络的概念和关系
  • 对话大模型Prompt是否需要礼貌点?
  • 【驱动篇】龙芯LS2K0300之ADC驱动
  • Python入门 2024/7/3
  • Go 语言 Map(集合)
  • SpringCloud学习Day7:Seata
  • 【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动
  • LabVIEW从测试曲线中提取特征值
  • 【应届应知应会】SQL常用知识点50道
  • 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】
  • 科技赋能智慧应急:“数字孪生+无人机”在防汛救灾中的应用
  • urfread刷算法|构建一棵树
  • 在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野
  • 【学习笔记】Mybatis-Plus(四):MP中内置的插件
  • GlusterFS分布式存储系统
  • 微信公众平台测试账号本地微信功能测试说明
  • Lua语言入门
  • 卷积神经网络有哪些应用场景
  • std::unordered_map和std::map在性能上有何不同
  • C++20中的基于范围的for循环(range-based for loop)
  • PCIe驱动开发(2)— 第一个简单驱动编写和测试
  • k8s-第七节-ConfigMap Secret
  • MySQL架构和工作流程
  • java项目总结8
  • 【Nvidia+AI相机】涂布视觉检测方案专注提高锂电池质量把控标准