如何使用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 小时前
Docker+cpolar 实战:打造灵活可控的远程办公系统
运维·docker·容器
jieyucx5 小时前
Docker 入门第一阶段:建立正确认知与初体验
运维·docker·容器
only_Klein6 小时前
k8sgpt集成Prometheus Grafana
gpt·kubernetes·prometheus
jieyucx7 小时前
Docker 入门第二阶段:掌握日常命令
运维·docker·容器
有毒的教程8 小时前
Kubernetes进阶实战教程(生产落地完整版)
云原生·容器·kubernetes
不会C语言的男孩10 小时前
Docker 在嵌入式设备中的常用玩法
运维·docker·容器
秋播10 小时前
rancher 部署statefulset mariadb 10.5
云原生
白日焰火110 小时前
Redis 哨兵搭建+ACL权限控制
linux·docker·kubernetes
hj28625113 小时前
Docker‑Compose 笔记
笔记·docker·容器
h3guang Official13 小时前
K8s安全实战:从漏洞靶场到红蓝对抗
安全·容器·kubernetes