如何使用k8s安装minio呢

话不多说,直接干货。

创建 minio-deployment.yaml

bash 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: minio
  labels:
    app: minio
spec:
  replicas: 1
  selector:
    matchLabels:
      app: minio
  template:
    metadata:
      labels:
        app: minio
    spec:
      containers:
        - name: minio
          image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/minio:latest
          ports:
            - containerPort: 9000
            - containerPort: 9001
          env:
            - name: MINIO_ROOT_USER
              value: "minioadmin"
            - name: MINIO_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: minio-secrets
                  key: MINIO_ROOT_PASSWORD
            - name: TZ
              value: "Asia/Shanghai"
          volumeMounts:
            - mountPath: /data
              name: minio-data
            - mountPath: /root/.minio
              name: minio-config
          resources:
            limits:
              cpu: "1"
              memory: "2Gi"
            requests:
              cpu: "0.5"
              memory: "1Gi"
      volumes:
        - name: minio-data
          persistentVolumeClaim:
            claimName: minio-pvc
        - name: minio-config
          persistentVolumeClaim:
            claimName: minio-config-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: minio
spec:
  selector:
    app: minio
  ports:
    - name: http
      protocol: TCP
      port: 9000
      targetPort: 9000
      nodePort: 30087  # 外部访问 Minio 的 HTTP 端口
    - name: console
      protocol: TCP
      port: 9001
      targetPort: 9001
      nodePort: 30088  # 外部访问 Minio 管理控制台的端口
  type: NodePort  # 使用 NodePort 类型
  1. 创建 PersistentVolume 和 PersistentVolumeClaim(PV/PVC)
    minio-pv.yaml - 数据存储持久卷
bash 复制代码
apiVersion: v1
kind: PersistentVolume
metadata:
  name: minio-pv
spec:
  capacity:
    storage: 100Gi  # 根据需要调整存储大小
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /data/minio/data  # 请根据您的集群配置选择合适的存储类型(如 NFS, EBS, 或其他)
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: minio-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Gi  # 请求存储空间

minio-config-pv.yaml - 配置存储持久卷

bash 复制代码
apiVersion: v1
kind: PersistentVolume
metadata:
  name: minio-config-pv
spec:
  capacity:
    storage: 10Gi  # 配置文件存储,可以根据需要调整
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /data/minio/config  # 配置文件的存储路径
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: minio-config-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi  # 配置文件请求存储空间
  1. 创建 minio-secrets.yaml - 存储敏感信息
    为了保护 MINIO_ROOT_PASSWORD,建议将密码存储在 Kubernetes Secret 中:
bash 复制代码
apiVersion: v1
kind: Secret
metadata:
  name: minio-secrets
type: Opaque
data:
  MINIO_ROOT_PASSWORD: <base64_encoded_password>  # 请将密码转为 base64 编码后填入此处

你可以通过以下命令将密码转换为 Base64 编码:

bash 复制代码
echo -n 'Y6HYraaphfZ9k8Lv' | base64
  1. 应用配置
    通过以下命令将上述文件部署到 Kubernetes 集群:
bash 复制代码
kubectl apply -f minio-secrets.yaml
kubectl apply -f minio-pv.yaml
kubectl apply -f minio-config-pv.yaml
kubectl apply -f minio-deployment.yaml

访问 Minio 服务

如果您使用的是 LoadBalancer 类型的 Service,Kubernetes 会分配一个外部 IP 地址。您可以通过以下命令检查服务的外部 IP 地址:

bash 复制代码
kubectl get svc minio
  1. 清理
    如果您需要删除部署和相关资源,可以运行以下命令
bash 复制代码
kubectl delete -f minio-secrets.yaml
kubectl delete -f minio-pv.yaml
kubectl delete -f minio-config-pv.yaml
kubectl delete -f minio-deployment.yaml

访问 Minio 服务:

通过任何节点的 IP 地址和指定的 NodePort 端口进行访问:

Minio 服务:<Node_IP>:30087

Minio 控制台:<Node_IP>:30088

您就能够通过外部端口访问 Minio 服务和控制台了!

相关推荐
linweidong2 小时前
解锁 Ray 在 Kubernetes 上的弹性伸缩:打造高效、稳定的分布式作业
分布式·容器·kubernetes·ray·keda·autoscaling·ray推理
元闰子4 小时前
OLTP上云,哪种架构最划算?·VLDB'25
数据库·后端·云原生
Xxtaoaooo6 小时前
OpenTenBase分布式HTAP实战:从Oracle迁移到云原生数据库的完整指南
云原生·oracle·tdsql·opentenbase·腾讯云数据库
Katzelala8 小时前
[K8S学习笔记] Service和Ingress的关系
笔记·学习·kubernetes
有谁看见我的剑了?8 小时前
k8s-init容器学习
学习·容器·kubernetes
人工干智能11 小时前
科普:在Windows个人电脑上使用Docker的极简指南
windows·docker·容器
lllsure11 小时前
【Docker】容器
运维·docker·容器
有谁看见我的剑了?16 小时前
k8s-Sidecar容器学习
学习·容器·kubernetes
傻傻虎虎18 小时前
【Docker】容器端口暴露+镜像生成实战
java·docker·容器
Don't Look Down18 小时前
Rustdesk server docker-compose 一键搭建教程
运维·docker·容器