在 Google Kubernetes Engine 上部署 MinIO 运算符
概述
Google Kubernetes Engine (GKE) 提供了一个高度自动化的安全且完全托管的 Kubernetes 平台。MinIO Kubernetes 运算符支持使用 MinIO 运算符控制台或 kustomize 为 YAML 定义的部署 将 MinIO 租户部署到 GKE 基础设施中。
- 通过 GKE 市场
MinIO 保持着一个 GKE 市场清单,您可以通过该清单将您的 GKE 集群注册到 MinIO SUBNET。您通过市场连接的集群部署的任何 MinIO 租户都可以利用 SUBNET 注册,包括全天候直接访问 MinIO 工程师。
- 使用 MinIO
kubectl
插件 MinIO 提供了一个
kubectl
插件,用于通过终端或 shell(CLI)环境安装和管理 MinIO 运算符和租户。您可以随时手动将这些租户注册到 MinIO SUBNET。
此页面记录了使用 Kustomize 通过 CLI 部署 MinIO 运算符。有关通过 GKE 市场部署 MinIO 运算符的说明,请参阅 通过 GKE 部署 MinIO
本文档假定您熟悉所有引用的 Kubernetes 和 Google Kubernetes Engine 概念、实用程序和过程。虽然本文档可能在尽力而为的基础上提供有关配置或部署 Kubernetes 相关或 Google Kubernetes Engine 相关资源的指南,但它不能替代官方的 Kubernetes 文档。
先决条件
现有的 GKE 集群
此过程假定存在一个现有的 GKE 集群,您可以在其上部署 MinIO 运算符。
运算符默认情况下将 pod 和服务分别部署为两个副本,并具有 pod 反亲和性。因此,GKE 集群应该至少有两个节点可用以调度运算符 pod 和服务。虽然这些节点可能是用于 MinIO 租户的相同节点,但将运算符和租户 pod 共同定位可能会增加由于任何一个节点丢失而导致服务中断的风险。
kubectl
访问 GKE 集群
确保您的主机具有与目标 GKE 集群兼容的 kubectl
安装。有关将 kubectl
连接到 GKE 的指南,请参阅 安装 kubectl 并配置集群访问。
步骤
以下步骤使用 Kustomize 和 MinIO 运算符 GitHub 存储库中的 kustomization.yaml
文件部署运算符。
使用 Kustomize 安装 MinIO 运算符
以下步骤使用 kubectl -k
从 MinIO Operator GitHub 仓库安装 Operator。 kubectl -k
和 kubectl --kustomize
是执行相同命令的别名。
重要
如果您使用 Kustomize 安装 Operator,则必须使用 Kustomize 来管理或升级该安装。不要使用 kubectl krew
、Helm 图表或类似方法来管理或升级使用 Kustomize 部署的 MinIO Operator 安装。
但是,您可以使用 Kustomize 升级使用 MinIO Kubernetes 插件安装的先前版本的 Operator(5.0.14 或更早版本)。
安装最新版本的 Operator
以下命令将 Operator 安装到
minio-operator
命名空间kubectl apply -k "github.com/minio/operator?ref=v6.0.4"
该命令输出已安装资源的列表。
验证 Operator Pod 正在运行
kubectl get pods -n minio-operator
输出类似于以下内容
NAME READY STATUS RESTARTS AGE minio-operator-6c758b8c45-nkhlx 1/1 Running 0 2m42s minio-operator-6c758b8c45-dgd8n 1/1 Running 0 2m42s
在本例中,
minio-operator
Pod 是 MinIO Operator,而console
Pod 是 Operator 控制台。您可以通过应用 kubectl 修补程序来修改 Operator 部署。您可以在 Operator GitHub 仓库 中找到常见配置的示例。
验证 Operator 安装
检查指定命名空间(
minio-operator
)的内容,以确保所有 Pod 和服务已成功启动。kubectl get all -n minio-operator
响应应类似于以下内容
NAME READY STATUS RESTARTS AGE pod/minio-operator-6c758b8c45-nkhlx 1/1 Running 0 5m20s pod/minio-operator-6c758b8c45-dgd8n 1/1 Running 0 5m20s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/operator ClusterIP 10.43.135.241 <none> 4221/TCP 5m20s service/sts ClusterIP 10.43.117.251 <none> 4223/TCP 5m20s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/minio-operator 2/2 2 2 5m20s NAME DESIRED CURRENT READY AGE replicaset.apps/minio-operator-6c758b8c45 2 2 2 5m20s
下一步
您可以使用 MinIO CRD 和 Kustomize。 部署 MinIO 租户。MinIO 还提供 用于部署租户的 Helm 图表。
MinIO 建议使用与安装 Operator 相同的租户部署和管理方法。混合使用 Kustomize 和 Helm 来管理 Operator 或租户可能会增加操作复杂性。