# 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"
```