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

相关推荐
有个傻瓜1 小时前
PHP语言核心技术全景解析
开发语言·kubernetes·php
幻灭行度2 小时前
CKA考试知识点分享(2)---ingress
kubernetes
AWS官方合作商5 小时前
在CSDN发布AWS Proton解决方案:实现云原生应用的标准化部署
java·云原生·aws
MickeyCV10 小时前
使用Docker部署MySQL&Redis容器与常见命令
redis·mysql·docker·容器·wsl·镜像
藥瓿亭12 小时前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
2302_8097983212 小时前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
嵌入式大圣12 小时前
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
运维·docker·容器
孔令飞12 小时前
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
ai·云原生·容器·golang·kubernetes
极简网络科技14 小时前
Docker、Wsl 打包迁移环境
运维·docker·容器
江湖有缘14 小时前
【Docker管理工具】部署Docker可视化管理面板Dpanel
运维·docker·容器