Deploy Operator With Kustomize
概述
Kustomize 是一种基于 YAML 的模板工具,可让您以声明式和可重复的方式定义 Kubernetes 资源. 自定义功能包括 kubectl 命令行工具.
default MinIO Operator Kustomize template 提供了为本地环境定制配置的起点.
您可以修改默认的自定义文件,也可以应用自己的自定义文件 patches 为您的 Kubernetes 集群定制操作员部署.
先决条件
使用 Kustomize 安装操作员需要以下先决条件:
- 现有的 Kubernetes 集群,v1.21 或更高版本. 
- 与群集版本相同的本地 - kubectl安装.
- 从本地主机在群集上运行 - kubectl命令的权限.
有关操作员安装要求(包括 TLS 证书)的更多信息, 参见 Operator deployment prerequisites.
本程序假定您熟悉参考的 Kubernetes 概念和实用程序. 本文档可为尽力配置或部署 Kubernetes 相关资源提供指导,但不能取代官方的 Kubernetes Documentation 文档.
使用 Kustomize 安装 MinIO 操作器
以下程序使用 kubectl -k 从 MinIO Operator GitHub 代码库安装操作器.
kubectl -k 和 kubectl --kustomize 是执行相同命令的别名.
重要
如果使用 Kustomize 安装操作员,则必须使用 Kustomize 管理或更新该安装.
请勿使用 kubectl krew , 管理或更新 MinIO 操作器安装的舵手图或类似方法.
- 安装最新版本的操作员 - kubectl apply -k "github.com/minio/operator?ref=v7.1.1" - 输出结果如下: - namespace/minio-operator created customresourcedefinition.apiextensions.k8s.io/miniojobs.job.min.io created customresourcedefinition.apiextensions.k8s.io/policybindings.sts.min.io created customresourcedefinition.apiextensions.k8s.io/tenants.minio.min.io created serviceaccount/console-sa created serviceaccount/minio-operator created clusterrole.rbac.authorization.k8s.io/console-sa-role created clusterrole.rbac.authorization.k8s.io/minio-operator-role created clusterrolebinding.rbac.authorization.k8s.io/console-sa-binding created clusterrolebinding.rbac.authorization.k8s.io/minio-operator-binding created configmap/console-env created secret/console-sa-secret created service/console created service/operator created service/sts created deployment.apps/console created deployment.apps/minio-operator created 
- 验证操作员 pod 是否正在运行: - kubectl get pods -n minio-operator - 输出结果如下: - NAME READY STATUS RESTARTS AGE console-6b6cf8946c-9cj25 1/1 Running 0 99s minio-operator-69fd675557-lsrqg 1/1 Running 0 99s - 在这个例子中, minio-operator pod 是 MinIO 操作员, - consolepod 是操作员控制面板.- 您可以通过应用 kubectl 补丁来修改操作员配置. 常见配置的示例 Operator GitHub repository. 
- (Optional) 配置操作员控制面板服务的访问权限 - 操作员控制面板服务不会自动绑定或暴露自己以便在 Kubernetes 集群上进行外部访问. 您必须配置网络控制平面组件, 如负载平衡器或入口,以授予外部访问权限. - 用于测试或短期访问, 使用以下补丁通过 NodePort 公开操作员控制面板服务: - kubectl patch service -n minio-operator console -p ' { "spec": { "ports": [ { "name": "http", "port": 9090, "protocol": "TCP", "targetPort": 9090, "nodePort": 30090 }, { "name": "https", "port": 9443, "protocol": "TCP", "targetPort": 9443, "nodePort": 30433 } ], "type": "NodePort" } }' - 现在,您可以通过任何 Kubernetes 工作节点上的 - 30433端口访问该服务了.
- 验证操作器的安装 - 检查指定命名空间( - minio-operator)的内容,确保所有 pod 和服务都已成功启动.- kubectl get all -n minio-operator - 答复应类似于以下内容: - NAME READY STATUS RESTARTS AGE pod/console-68d955874d-vxlzm 1/1 Running 0 25h pod/minio-operator-699f797b8b-th5bk 1/1 Running 0 25h pod/minio-operator-699f797b8b-nkrn9 1/1 Running 0 25h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/console ClusterIP 10.43.195.224 <none> 9090/TCP,9443/TCP 25h service/operator ClusterIP 10.43.44.204 <none> 4221/TCP 25h service/sts ClusterIP 10.43.70.4 <none> 4223/TCP 25h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/console 1/1 1 1 25h deployment.apps/minio-operator 2/2 2 2 25h NAME DESIRED CURRENT READY AGE replicaset.apps/console-68d955874d 1 1 1 25h replicaset.apps/minio-operator-699f797b8b 2 2 2 25h 
- 读取操作员控制面板 JWT 以登录 - kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: console-sa-secret namespace: minio-operator annotations: kubernetes.io/service-account.name: console-sa type: kubernetes.io/service-account-token EOF SA_TOKEN=$(kubectl -n minio-operator get secret console-sa-secret -o jsonpath="{.data.token}" | base64 --decode) echo $SA_TOKEN 
- 登录 MinIO 操作员控制面板 - 如果您配置了通过 NodePort 访问的服务, 指定群集中任何工作节点的主机,并将该端口设为 - HOSTNAME:NODEPORT,以访问控制台.- 例如, 配置了 NodePort 为 30090 和以下 - InternalIP地址的部署可通过以下地址访问- http://172.18.0.5:30090.- $ kubectl get nodes -o custom-columns=IP:.status.addresses[:] IP map[address:172.18.0.5 type:InternalIP],map[address:k3d-MINIO-agent-3 type:Hostname] map[address:172.18.0.6 type:InternalIP],map[address:k3d-MINIO-agent-2 type:Hostname] map[address:172.18.0.2 type:InternalIP],map[address:k3d-MINIO-server-0 type:Hostname] map[address:172.18.0.4 type:InternalIP],map[address:k3d-MINIO-agent-1 type:Hostname] map[address:172.18.0.3 type:InternalIP],map[address:k3d-MINIO-agent-0 type:Hostname] - 如果您配置了 - svc/console服务,以便通过入口或群集负载平衡器进行访问, 您可以使用配置的主机名和端口访问控制台.- 您可以使用 - kubectl port forward为控制台临时转发端口:- kubectl port-forward svc/console -n minio-operator 9090:9090 - 然后,您可以使用 - http://localhost:9090访问 MinIO 操作员控制面板.
访问控制台后,使用控制台 JWT 登录. 您现在可以 deploy and manage MinIO Tenants using the Operator Console.
