该项目主要用于实验平台中的 K8s 集群的管理,提供创建、删除容器的功能。
由于需要实现实验文件的存档,本项目采用 minio 对象存储服务来存储实验文件。
首先保证 K8s 集群已经启动,然后启动 minio 服务和 manager 服务
mkdir -p ${HOME}/minio/data docker run \ -p 9000:9000 \ -p 9001:9001 \ --user $(id -u):$(id -g) \ --name minio1 \ -e "MINIO_ROOT_USER=ROOTUSER" \ -e "MINIO_ROOT_PASSWORD=CHANGEME123" \ -v ${HOME}/minio/data:/data \ quay.io/minio/minio server /data --console-address ":9001"
go run cmd/server/main.go
配置文件为 config.yaml,可以由 config.yaml.example 复制得到,需要配置 minio 和 kubernetes 的连接信息。
minio:
client:
endpoint: 127.0.0.1:9000
access_key_id: xxx
secret_access_key: xxx
bucket: bucket
use_ssl: false
kubernetes:
client:
in_cluster: false # 是否在集群内部
timeout: 5000
verify_ssl: false # 是否验证 ssl,会检查证书
# config_path: ~/.kube/config
从 minio 获取文件,并传到 K8s 集群中,使用管道来完成。
minio -> pipeWriter -> pipeReader -> k8s
反之亦然。
k8s -> pipeWriter -> pipeReader -> minio