容器技术 大数据技术 Ceph使用介绍
- 2022-08-11 23:09:00
- admin
- 原创 3440
一、容器技术
1、POD架构的虚拟机将存储和计算分离,支持虚拟机热迁移,在不停机的情况下进行服务器维修;
2、Docker是容器引擎,Containerd是容器运行时,Docker使用Containerd;
3、Container Networking Interface,CNI提供容器插件化的网络解决方案;
4、Kubernetes,K8S容器集群管理系统,新版本弃用Docker,使用Containerd;
5、Service支持4层路由,绑定多个Pod,Ingress支持7层路由,绑定多个Service;
底层机制:
1、使用cgroup限制资源,/proc/1/cgroup第三列非空且非根目录,目标机器是容器;
2、使用pid namespace给容器里面的进程多分配一个pid,跟宿主机看到的pid不一样;
3、控制线程能力:默认给容器内root砍掉绝大多数危险的linux capabilities,只保留一小部分;
4、控制线程能力:Effective、Permitted、Inheritable、Bounding、Ambient,P、I、A 全部 ⊆ B
5、控制线程能力:E ⊆ P,删除P的元素自动清理E的元素,A ⊆ P ∩ I,删除P和I的元素自动清理A的元素;
6、控制系统调用:seccomp是系统调用的过滤器,控制一个进程可以调用哪些系统调用,以及调用的参数规则;
07、挂载隔离:使用mnt namespace创建容器的挂载树,跟宿主机的挂载树隔离,防止容器篡改宿主机的挂载;
08、挂载隔离:LowerDir只读层,位于镜像层的哈希目录/diff,UpperDir读写层,位于容器层的哈希目录/diff
09、挂载隔离:MergedDir只读层和读写层生成的视图,位于容器层的哈希目录/mergerd
10、挂载隔离:WorkDir内核工作目录,位于容器层的哈希目录/work
容器配置:
1、dockerfile帮助:https://docs.docker.com/reference/dockerfile
2、docker命令帮助:https://docs.docker.com/reference/cli/docker
3、docker配置文件:https://docs.docker.com/engine/daemon/#configuration-file
4、docker安装软件:https://repo.huaweicloud.com/docker-ce/linux/centos/8/x86_64/stable/Packages
5、docker安装顺序:docker-ce-cli → containerd.io → docker-ce → buildx → compose
6、docker启停命令:systemctl start | stop | restart | status docker
7、docker停止命令:systemctl stop docker,systemctl stop docker.socket
8、cli执行权限:usermod -aG docker feinenxiang
9、构建脚本:build.sh,Dockerfile
允许http:
vim /etc/docker/daemon.json
{
"insecure-registries": ["uat.sf.dockerhub.domain"]
}
常用命令:
1、查看配置:docker info | grep "Docker Root Dir"
2、查看配置:docker info | grep -A3 "Insecure Registries"
3、查看磁盘占用:docker system df
4、列出本地镜像:docker image ls
5、列出运行容器:docker ps
6、查看容器信息:docker inspect docker-name
7、查看容器信息:docker inspect --format '{{.Config.Labels}}' docker-name
8、查看容器信息:docker inspect --format '{{.NetworkSettings.IPAddress}}' docker-name
9、容器端口映射:docker run -d -p 8080:8888 --name docker-name image-name
10、登录进入容器:docker exec -it docker-name bash
二、安装multica-selfhost
1、安装docker:https://docs.docker.com/desktop/setup/install/windows-install
2、安装multica:https://multica.ai/docs/zh/self-host-quickstart
3、代码仓库:https://github.com/multica-ai/multica
4、镜像仓库:https://hub.docker.com
下载镜像:
1、git clone https://github.com/multica-ai/multica.git --branch v0.8.2 --depth 1
2、docker compose -f docker-compose.selfhost.yml pull
3、docker pull ghcr.io/multica-ai/multica-backend:latest
4、docker pull ghcr.io/multica-ai/multica-web:latest
5、docker pull pgvector/pgvector:pg17
启动容器:
1、docker compose -f docker-compose.selfhost.yml up -d --pull never
2、docker compose -f docker-compose.selfhost.yml ps
三、大数据技术
1、ELK是一个复杂的日志聚合系统,需对全文进行索引,加载数据到内存查询,查询操作非常丰富;
2、Loki是一个轻量的日志聚合系统,只对标签进行索引,分布式进行查询聚合,存储查询效率很高;
3、Spark是一个大数据的计算引擎,强调计算,使用内存计算,支持操作比较丰富;
4、Trino是一个大数据的查询引擎,强调查询,使用内存计算,查询效率比较高;
HDFS文件存储格式:
1、TEXTFILE,文本格式,可以分割和并行处理,支持压缩,但压缩后不支持并行处理;
2、RCFILE,Record Columnar File,首先将表分为几个行组,然后每个行组的数据进行按列存储;
3、ORC,Optimized Row Columnar,RCFILE格式的一种优化格式,提供了更大的默认块256M;
4、ZLIB比SNAPPY压缩比高,SNAPPY比ZLIB处理速度快,推荐使用SNAPPY;
四、Ceph使用介绍
Ceph是具备优秀的性能、可靠性、可扩展性的分布式文件系统,三种使用模式:
1、Ceph Block Device做为一个块设备来使用,即磁盘;
2、Ceph Filesystem做为一个文件系统来使用,即分区;
3、Ceph Object Gateway做为文件对象网关来使用;
4、通常使用文件系统或文件对象模式,文件对象有更多权限控制;