随笔分类 - kubernetes
摘要:前言 docker 的仓库支持一个 tag 下多个架构镜像, 这是如何实现的呢? 抓包看看其数据交互流程 前提 错误处理 执行命令buildx报错: ERROR: Multi-platform build is not supported for the docker driver. Switch
阅读全文
摘要:前言 docker用了这么久了, 有没有想过, 在执行docker push 和 docker pull命令的时候, 数据是如何传递的呢? 换句话说, 如果要实现一个镜像仓库, 针对推拉的服务, 如何实现接口呢? 根据OCI 分发规范文档 的描述, 已经对整个推拉过程中要调用的接口有描述了. 但是,
阅读全文
摘要:# 前言 有这样一个工具, 可以对镜像进行扫描, 拿出其中包含的软件包、lib库(pip包等)、危险文件等, 并能够识别出哪些包是存在漏洞的. 比如`trivy`工具. 那么他们是如何做到这件事情的呢? 正好最近在研究这块, 索性就简单谈一谈(其实原理很简单). # 获取包含内容 对于镜像的存储,
阅读全文
摘要:# 前言 在[之前的文章](https://hujingnb.com/archives/899)中有说过容器目录的隔离机制. 今天来分析一下镜像的文件系统. Docker 已经用了很久了, 也知道镜像存储的时候是分层存储的(从`docker pull`时分层下载就能看出), 但是具体是如何将多层进行
阅读全文
摘要:# 前言 在k8s中, pod是编排的最小单位, 在同一个pod中, 容器之间能够共享`hostname` `network` 等内容. 共享`network`, 简单说就是同一个pod中的容器, 可以通过访问`localhost`互相访问, 且端口占用会冲突. 在之前的介绍中提到过, 容器的隔离是
阅读全文
摘要:# 前言 就我目前的对容器的了解, 使用`namespace`技术实现隔离, 使用`cgroups`技术实现资源限制. 但是具体是如何实现却从未深究过. 闲来无事, 挑其中的`Mount Namespace`来康康, 容器是如何实现目录隔离的. # 目录隔离 在[耗子叔的这篇文章中](https:/
阅读全文
摘要:这篇文章是我研究容器内存整理出的相关内容. 前后内容并没有上下文关系, 每个知识点都可以单独查看. 内存控制 使用这样的命令启动一个容器docker run -d -m 300M xxx. 可以限制容器使用的内存最大为300M. 那么docker是如何实现容器的内存限制呢? 其实是操作系统已经做好了
阅读全文
摘要:前言 我们在平常强制停用一个进程的时候, 会选择什么命令? 一般在测试使, 不考虑程序突然中断带来的影响, 直接使用kill -9 pid强制停止就行. 但是, 就在刚刚, 我启动了一个docker容器, 进入容器后执行命令kill -9 1没有任何效果??? 啊这, 为什么呀? 尝试 为了解释这个
阅读全文
摘要:在Kubernetes中, 有这不同方式的内容挂载, 简单记录一下他们的配置方式. ConfigMap 配置内容 内容配置 apiVersion: v1 kind: ConfigMap metadata: name: test-config data: # 添加配置的 key-value 内容 te
阅读全文
摘要:在 Kubernetes中Pod是容器管理的最小单位, 有着各种各样的Pod管理器. 那么一个Pod从启动到释放, 在这期间经历了哪些过程呢? Pod自开始创建, 到正常运行, 再到释放, 其时间跨度及经历的阶段大致如下: 说一下各个阶段的作用以及是为了解决什么问题. 容器调度和下载镜像的过程就忽略
阅读全文
摘要:前言 Kubernetes中的概念太多了, 什么Pod Service Deployment 等等等等, 给刚接触的我都整蒙了. 通过几天观察下来, 说一下我对各个组件的理解. 此文章仅仅对这些概念做一个简单的介绍, 不至于后面看其他文章的时候一头雾水. 以下所有的类型, 均可以通过命令: kube
阅读全文
