在Kubernetes (k8s) 上部署 MinIO 可以实现高可用和可扩展的对象存储系统。以下是详细步骤:
前提条件
- 一个运行中的 Kubernetes 集群。
kubectl已经配置好并连接到你的 Kubernetes 集群。
部署步骤
创建命名空间(可选)
为了更好地管理资源,可以创建一个单独的命名空间:
kubectl create namespace minio创建 MinIO 配置文件
创建一个名为
minio-deployment.yaml的文件,内容如下:apiVersion: apps/v1 kind: StatefulSet metadata: name: minio namespace: minio labels: app: minio spec: selector: matchLabels: app: minio serviceName: minio replicas: 4 template: metadata: labels: app: minio spec: containers: - name: minio image: minio/minio:latest args: - server - http://minio-{0...3}.minio.minio.svc.cluster.local/data env: - name: MINIO_ACCESS_KEY value: "minioadmin" - name: MINIO_SECRET_KEY value: "minioadmin" ports: - containerPort: 9000 name: minio volumeMounts: - name: data mountPath: /data volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 10Gi创建服务
创建一个名为
minio-service.yaml的文件,内容如下:apiVersion: v1 kind: Service metadata: name: minio namespace: minio labels: app: minio spec: ports: - port: 9000 name: minio clusterIP: None selector: app: minio应用配置文件
使用
kubectl apply命令部署 MinIO:kubectl apply -f minio-deployment.yaml kubectl apply -f minio-service.yaml验证部署
使用以下命令查看 MinIO pods 是否成功运行:
kubectl get pods -n minio输出应该类似于:
NAME READY STATUS RESTARTS AGE minio-0 1/1 Running 0 1m minio-1 1/1 Running 0 1m minio-2 1/1 Running 0 1m minio-3 1/1 Running 0 1m访问 MinIO 控制台
为了访问 MinIO 控制台,你需要创建一个外部服务(LoadBalancer 或 NodePort)。以下是一个 NodePort 服务的示例:
创建一个名为
minio-external-service.yaml的文件,内容如下:apiVersion: v1 kind: Service metadata: name: minio-external namespace: minio labels: app: minio spec: type: NodePort ports: - port: 9000 nodePort: 32000 name: minio selector: app: minio应用配置文件:
kubectl apply -f minio-external-service.yaml现在,你可以通过
http://<NodeIP>:32000访问 MinIO 控制台。NodeIP 是你的 Kubernetes 集群中的任意一个节点
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 小朱
评论
隐私政策
0/500
滚动到此处加载评论...


