# fleet **Repository Path**: iscas-system/fleet ## Basic Information - **Project Name**: fleet - **Description**: https://gitee.com/iscas-system/fleet/wikis/, 替代k3s,支持 CRI(容器运行时接口) 、CNI(容器网络接口)和QUIC协议 - **Primary Language**: Rust - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-01-07 - **Last Updated**: 2025-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fleet ## 介绍 fleet 采用模块化设计,支持多种容器运行时和网络插件,为边缘计算场景提供完整的容器化解决方案。 ### 核心特性 - **模块化架构**:核心组件包括: - apiserver:提供 RESTful API 接口 - fleet-scheduler:负责容器调度 ## 开发环境准备 > openeuler 24.03 **提供两种开发环境部署方案:** ### 方案一:一键部署脚本(推荐) 运行后能直接把开发环境搭建好,不需要再手动执行其他步骤: ```shell wget https://gitee.com/iscas-system/fleet/releases/download/v0.4.0/fleet_dev_setup.sh sh fleet_dev_setup.sh ``` ### 方案二:Docker 镜像方案 使用预配置的 Docker 镜像进行开发环境搭建: 1. 下载并导入基础镜像: ```bash # 下载 openEuler 24.03 LTS 基础镜像 wget https://mirrors.tuna.tsinghua.edu.cn/openeuler/openEuler-24.03-LTS/docker_img/x86_64/openeuler-24.03-lts.tar.xz # 导入镜像 docker load --input openeuler-24.03-lts.tar.xz ``` 2. 构建开发环境镜像: ```bash # 克隆项目 git clone https://gitee.com/iscas-system/fleet.git cd fleet # 构建镜像 docker build -t fleet-builder . ``` 3. 运行开发容器: ```bash # 运行容器并挂载当前目录 docker run -it --rm -v $(pwd):/build fleet-builder ``` ### 方案三:手动部署(详细步骤) 如果您需要手动部署开发环境,请按照以下步骤操作: #### 1. 安装 Rust 1.83.0 版本 ```bash curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.83.0 . "$HOME/.cargo/env" # 验证安装 rustc --version # 应显示 rustc 1.83.0 cargo --version # 应显示 cargo 1.83.0 ``` 备注:卸载 rust:rustup self uninstall #### 2. 安装依赖库 ```bash dnf groupinstall "Development Tools" dnf install pkgconf openssl-devel libuv-devel libuuid-devel sqlite-devel libevent-devel postgresql-devel protobuf-compiler protobuf-devel bash-completion # 下载必要的静态库 curl -L -o /usr/local/lib64/libfleet-datamgr-all-static.a https://gitee.com/iscas-system/fleet/releases/download/v0.4.0/libfleet-datamgr-all-static.a curl -L -o /usr/lib64/libxquic.so https://gitee.com/iscas-system/fleet/releases/download/v0.4.0/libxquic.so ``` #### 3. 安装 iSulad ```bash # 下载 iSulad 安装包 wget https://gitee.com/iscas-system/fleet/releases/download/v0.4.0/iSulad_rpm_v2.zip # 解压并安装 unzip iSulad_rpm_v2.zip cd iSulad_rpm_v2 chmod +x install.sh crictl.sh ./install.sh ./crictl.sh # 配置 daemon.json cat > /etc/isulad/daemon.json << EOF { "pod-sandbox-image": "registry.aliyuncs.com/google_containers/pause:3.5", "native.umask": "normal", "network-plugin": "cni", "cni-bin-dir": "/opt/cni/bin", "cni-conf-dir": "/etc/cni/net.d", "image-layer-check": false, "use-decrypted-key": true, "insecure-skip-verify-enforce": false, "cri-runtimes": { "kata": "io.containerd.kata.v2" }, "enable-cri-v1": true } EOF # 启动 iSulad systemctl start isulad ``` #### 4. 安装配置 CNI 插件 ```bash # 下载并安装 CNI wget https://gitee.com/iscas-system/fleet/releases/download/v0.4.0/nebula-cni-v0.1.6-9aae78f.oe2403.x86_64.rpm rpm -ivh nebula-cni-v0.1.6-9aae78f.oe2403.x86_64.rpm ``` ## 验证云平台服务 ### 环境检查 ```bash # 1. 检查 iSulad 状态 systemctl status isulad # 2. 检查 cargo 命令 cargo --version # 3. 配置 cargo git 拉取 mkdir -p /root/.cargo cat > /root/.cargo/config.toml << EOF [net] git-fetch-with-cli = true EOF ``` ### 编译运行 fleet #### 方式一:从源码编译 ```bash git clone https://gitee.com/iscas-system/fleet.git cd fleet cargo build # 编译完成后可执行文件位于:./target/debug/fleet ``` #### 方式二:直接下载可执行文件 ```bash # 下载 fleet wget https://gitee.com/iscas-system/fleet/releases/download/v0.4.0/fleet chmod +x fleet # 启动 fleet RUST_BACKTRACE=1 ./fleet start core ``` ### 安装 fleet 客户端 fleetctl ```bash # 下载并解压 fleetctl wget https://gitee.com/iscas-system/fleet/releases/download/v0.4.0/fleetctl.tgz tar -zxvf fleetctl.tgz # 配置 fleetctl mkdir -p /root/.fleet mv config /root/.fleet mv fleetctl /usr/local/bin/ ``` ### Pod 部署 1. 下载基础镜像: ```bash crictl pull registry.aliyuncs.com/google_containers/pause:3.5 crictl pull registry.cn-hangzhou.aliyuncs.com/liuliu-public/lw:latest ``` 2. Pod 操作: ```bash # 创建 pod fleetctl create -f ./test/test-pod.yaml # 查看 pod crictl ps -a # 更新 pod fleetctl apply -f ./test/test-pod.yaml # 删除 pod fleetctl delete pod ``` ### 独立测试 apiserver ```bash git clone https://gitee.com/iscas-system/apiserver.git cd apiserver RUST_BACKTRACE=1 RUST_LOG=trace cargo run --example basic_example --features="eventbus servers test" ```