随笔分类 -  容器

摘要:Kubernetes 1.29版本中已经将nftables作为一个featureGates,本文简单整理了nftables的用法,便于后续理解kubernetes的nftables规则。文末给出了使用kubeadm部署启用nftables featureGates的配置文件。 如下内容来源nftab 阅读全文
posted @ 2024-01-30 09:38 charlieroro 阅读(2710) 评论(0) 推荐(1) 编辑
摘要:使用crio作为runtime后,容器的启动将不依赖docker相关的组件,容器进程更加简洁。如下使用crio作为runtime启动一个nginx的进程信息如下:根进程(1)->conmon->nginx。conmon作用于crio和runc(OCI实现)之间,用于在crio启动容器后托管容器,更多 阅读全文
posted @ 2019-10-18 17:09 charlieroro 阅读(2433) 评论(0) 推荐(1) 编辑
摘要:环境:openshift v3.6.173.0.5 openshift上devicemapper与官方文档中的描述略有不同,在官方文档的描述中,容器使用的lvm文件系统挂载在/var/lib/devicemapper下,因此可以在/var/lib/devicemapper/metadata中找到容器 阅读全文
posted @ 2019-04-12 11:52 charlieroro 阅读(552) 评论(0) 推荐(0) 编辑
摘要:由于容器运行在主机上,且与主机共用一套内核,因此在容器的安全使用上会涉及到容器本身以及主机的安全加固,如针对系统调用,系统资源,远程访问等都需要进行安全方面的考量。 docker官网给出了简单的一些建议,如使用命名空间进行用户隔离,使用cgroup限制容器使用的资源上限,使用apparmor限制容器 阅读全文
posted @ 2019-02-15 16:58 charlieroro 阅读(4550) 评论(0) 推荐(0) 编辑
摘要:## [docker storage driver](https://www.cnblogs.com/charlieroro/p/10176598.html) docker默认有2种方式用于持久化数据,`volumes`和`bind mounts`,也可以使用`tmpfs`,其中使用`volume` 阅读全文
posted @ 2019-02-14 17:30 charlieroro 阅读(2719) 评论(0) 推荐(0) 编辑
摘要:运行上述镜像,在对于的容器进程目录下可以看到该进程打开个4个文件,其中fd为10的即是运行的shell 脚本, 执行docker logs -f CONTAINER_ID 跟踪容器输出,fd为1的文件为docker logs记录的输出,可以直接导入一个自定义的字符串,如echo ”你好“ > 1,可 阅读全文
posted @ 2019-01-31 17:45 charlieroro 阅读(4302) 评论(0) 推荐(0) 编辑
摘要:cgroup还有其他一些限制特性,如io,pid,hugetlb等,这些用处不多,参见Cgroupv1。下面介绍下与系统性能相关的io和hugepage,cgroup的io介绍参考Cgroup - Linux的IO资源隔离 linux IO linux io涉及到对文件(磁盘设备)的读写性能,对io 阅读全文
posted @ 2019-01-23 12:42 charlieroro 阅读(987) 评论(0) 推荐(0) 编辑
摘要:在centos7的/sys/fs/cgroup下面可以看到与cpu相关的有cpu,cpuacct和cpuset 3个subsystem。cpu用于对cpu使用率的划分;cpuset用于设置cpu的亲和性等,主要用于numa架构的os;cpuacct记录了cpu的部分信息。对cpu资源的设置可以从2个 阅读全文
posted @ 2019-01-18 23:19 charlieroro 阅读(11885) 评论(0) 推荐(0) 编辑
摘要:测试环境centos7 ,内核版本4.20 内核使用cgroup对进程进行分组,并限制进程资源和对进程进行跟踪。内核通过名为cgroupfs类型的虚拟文件系统来提供cgroup功能接口。cgroup有如下2个概念: subsystem:用于控制cgroup中的进程行为的内核组件,可以在/proc/c 阅读全文
posted @ 2019-01-15 23:43 charlieroro 阅读(22086) 评论(2) 推荐(3) 编辑
摘要:Open Container Initiative(OCI)目前有2个标准:runtime-spec以及image-spec。前者规定了如何运行解压过的filesystem bundle。OCI规定了如何下载OCI镜像并解压到OCI filesystem bundle,这样OCI runtime就可 阅读全文
posted @ 2018-12-29 19:14 charlieroro 阅读(4122) 评论(0) 推荐(1) 编辑
摘要:使用环境centos7 x86-64 内核版本4.19.9 docker使用非root用户启动,daemon.json配置文件内容如下: 映射的user和group均为如下值 启动方式为 进入容器,在/mnt目录下进行修改文件属性的操作,出现如下错误(此时容器中的user id=0) 解决思路 首先 阅读全文
posted @ 2018-12-19 14:17 charlieroro 阅读(19598) 评论(0) 推荐(0) 编辑
摘要:环境为centos7,linux内核版本为3.10 出现该问题的原因是内核3.10的bug,升级linux内核即可,升级办法如下,升级完成后重启系统,选择对应的内核版本启动即可。 该问题的讨论参见Not able to run container with non root user 升级指定版本内 阅读全文
posted @ 2018-12-15 16:44 charlieroro 阅读(3961) 评论(0) 推荐(0) 编辑
摘要:验证环境:centos7 x86/64 内核版本4.19.9 在linux 2.2版本之前,当内核对进程进行权限验证的时候,可以将进程划分为两类:privileged(UID=0)和unprivilege(UID!=0)。其中privileged的进程拥有所有内核权限,而unprivileged则根 阅读全文
posted @ 2018-12-14 11:42 charlieroro 阅读(5243) 评论(0) 推荐(1) 编辑
摘要:https://docs.docker.com/engine/security/userns-remap/#prerequisites 注:以下验证环境为centos7.5 docker 18.09.0 User namespaces 使用user namespaces可以防止容器权限过大造成的风险 阅读全文
posted @ 2018-12-05 10:48 charlieroro 阅读(2236) 评论(0) 推荐(0) 编辑
摘要:使用docker network的好处是:在同一个网络上的容器之间可以相互通信,而无需使用expose端口特性 本文使用docker-swarm进行overlay网络的分析。使用2个vmware模拟2个node节点,不关注swarm的使用,无关信息会有所删减,如不相关的接口或端口 将node1作为m 阅读全文
posted @ 2018-11-02 19:11 charlieroro 阅读(2551) 评论(0) 推荐(0) 编辑
摘要:建议阅读本文章之前了解一下文章,本文不作bridge的基本介绍 https://blog.csdn.net/u014027051/article/details/53908878/ http://williamherry.blogspot.com/2012/05/linux.html https:/ 阅读全文
posted @ 2018-10-15 16:09 charlieroro 阅读(2339) 评论(0) 推荐(0) 编辑
摘要:macvlan接口类型简单说类似于子接口,但相比子接口来说,macvlan接口拥有自己独立的mac地址,因此使用macvlan接口可以允许更多的二层操作。macvlan有四种模式:VEPA,bridge,Private和Passthru macvlan接口会监听并接收链路上到达本mac地址的报文,因 阅读全文
posted @ 2018-09-16 17:48 charlieroro 阅读(10398) 评论(0) 推荐(0) 编辑
摘要:概述 自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求。而容器的网络通信又可以分为两大方面:单主机容器上的相互通信和跨主机的容器相互通信。而本文将分别针对这两方面,对容器的通信原理进行简单的分析,帮助大家更好地使用docker。 docker单主机容器通信 阅读全文
posted @ 2018-06-13 17:12 charlieroro 阅读(4970) 评论(0) 推荐(0) 编辑