如何使用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 服务和控制台了!

相关推荐
武子康2 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
秋播2 天前
国内本地WSL2编译rancher源码
云原生
小猿姐4 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
阿里云云原生5 天前
深入内核:拆解 OpenTelemetry eBPF 探针如何优雅地“透视”多语言微服务?
云原生
2601_961875245 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj5 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
程序员老赵5 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
正经教主5 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
kiros_wang5 天前
Docker 使用完整指南
运维·docker·容器
正经教主5 天前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器