今天我们主要讲解,minio存储服务的部署、GitLabCI Runner配置分部署缓存。MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
官方文档:https://docs.min.io/cn/deploy-minio-on-kubernetes.html
基于Kubernetes部署
准备一个pv用于存储bucket数据,这里我使用的是本地的目录"/data/devops/minio-data",根据大家不同的环境按需调整即可。
apiVersion: v1
kind: PersistentVolume
metadata:
name: ci-minio-pv
namespace: devops
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/data/devops/minio-data"
---
kubectl create -f pv.yaml
kubectl get pv -n devops
Helm Install
stable/minio 3.0.3 是目前最新的RELEASE版本。
修改minio/values.yml中的service端口为80。(可选)
service:
type: ClusterIP
clusterIP: ~
port: 80
nodePort: 31311
# externalIPs:
# - externalIp1
annotations: {}
修改minio/values.yml中的Ingress配置。
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
# kubernetes.io/ingress.allow-http: "false"
# kubernetes.io/ingress.global-static-ip-name: ""
# nginx.ingress.kubernetes.io/secure-backends: "true"
# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
# nginx.ingress.kubernetes.io/whitelist-source-range: 0.0.0.0/0
path: /
hosts:
- minio.devops.svc.cluster.local
tls: []
通过helm命令部署
helm install minio --namespace=devops --set persistence.size=50Gi,persistence.Vo