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 操作员,
console
pod 是操作员控制面板.您可以通过应用 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.