部署
当部署 Operator时,如下所示附加一个新的 console
部分。
global:
image: <PRIVATE_REGISTRY>/alluxio-operator
imageTag: 3.3.2
console:
web:
authType: none
当 authType
为 none
时,管理控制台没有登录页面,也不执行任何身份验证。
为了生产环境的安全,建议启用身份验证。您可以将 authType
更改为 okta
以与 Okta 集成。更多详情,请参阅 Okta Auth Type。
启用 Okta 的配置示例:
global:
image: <PRIVATE_REGISTRY>/alluxio-operator
imageTag: 3.3.2
console:
web:
authType: okta
oktaIssuer: https://your-okta-domain/oauth2/default
oktaClientID: your-client-id-value
安装 Operator 后,您可以验证控制台 pod 是否在 alluxio-operator
命名空间中运行:
kubectl get pods -n alluxio-operator
示例输出:
NAME READY STATUS RESTARTS AGE
alluxio-cluster-controller-6768ff89dc-4dggt 1/1 Running 0 2m
alluxio-collectinfo-controller-87bbf67c8-m6rf6 1/1 Running 0 2m
alluxio-console-7ff487467c-kt88v 1/1 Running 0 2m
alluxio-csi-controller-67b6c49786-55g9w 2/2 Running 0 2m
alluxio-csi-nodeplugin-lszbp 2/2 Running 0 2m
alluxio-csi-nodeplugin-pmcwg 2/2 Running 0 2m
alluxio-csi-nodeplugin-qknjd 2/2 Running 0 2m
alluxio-license-controller-55fb54868-rmsq8 1/1 Running 0 2m
alluxio-ufs-controller-579c85f95f-vpd8d 1/1 Running 0 2m
查找 alluxio-console-*
pod(在此示例中为 alluxio-console-7ff487467c-kt88v
)以确认管理控制台正在运行。确认后,您可以按照下述方式访问管理控制台。
访问管理控制台
有几种方法可以访问控制台。
通过节点主机名访问
默认情况下,管理控制台会创建一个 ClusterIP
类型的 Kubernetes 服务,使其只能在集群内部访问。要从外部通过主机名或 IP 地址访问,您可以将服务类型更改为 NodePort
并指定一个端口(例如 30002
)来暴露服务。
global:
image: <PRIVATE_REGISTRY>/alluxio-operator
imageTag: 3.3.2
console:
web:
authType: okta
oktaIssuer: https://your-okta-domain/oauth2/default
oktaClientID: your-client-id-value
service:
type: NodePort
ports:
api: 80
nodePort: 30002
如果您知道主机的 IP 地址并已配置适当的安全组(具体设置取决于您的云服务提供商),您可以通过 IP-address:30002
访问服务。
如果您想通过主机名访问,可以获取主机名:
kubectl -n alluxio-operator get pod $(kubectl -n alluxio-operator get pod -l app.kubernetes.io/component=console --no-headers -o custom-columns=:metadata.name) -o jsonpath='{.spec.nodeName}'
假设主机名是 foo.kubernetes.org
,那么您可以在以下地址访问管理控制台:
http://foo.kubernetes.org:80/
通过负载均衡器访问
要从外部暴露管理控制台,您可以配置一个 LoadBalancer
类型的 Kubernetes 服务。这允许来自集群外部的流量到达控制台组件。
以下是通过负载均衡器暴露控制台的服务定义示例:
apiVersion: v1
kind: Service
metadata:
name: load-balancer
namespace: alluxio-operator
annotations:
# 以下注释是针对 AWS 的。对于其他云提供商,请参阅其文档以了解 LoadBalancer 配置。
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-type: nlb
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 80
selector:
app.kubernetes.io/instance: operator
app.kubernetes.io/name: console
将以上内容保存为 load-balancer.yaml
并通过以下命令创建:
kubectl create -f load-balancer.yaml
服务创建后,Kubernetes 将根据您的云提供商提供一个外部 IP 或 DNS 名称。您可以使用以下命令检查状态:
kubectl -n alluxio-operator get service load-balancer
示例输出:
load-balancer LoadBalancer 171.33.111.33 some-random-string.region.elb.amazonaws.com 80:30977/TCP 8m50s
您现在可以在浏览器中使用外部 IP 或 DNS 名称访问管理控制台。
集群管理
进入主页后,页面将显示当前 Kubernetes 环境中所有已部署的 Alluxio 集群。

您也可以单击“添加集群”按钮来创建新集群。系统提供两种创建集群的方式:
手动配置:通过填写表单来配置集群参数,适用于需要逐步配置的场景
上传 Yaml:直接上传现有的 Alluxio YAML 配置文件,适用于已存在配置文件的情况
在此示例中,我们演示如何使用手动配置通过填写表单来创建集群。

在手动配置页面,您需要填写集群的基本信息。
在此示例中,我们将部署一个带有控制台的集群,因此我们需要同时启用网关和控制台。

单击“下一步”后,系统将生成一个资源类型为 AlluxioCluster 的 YAML 文件。此文件将用于创建一个名为“alluxio”的新集群。您可以根据需要编辑此 YAML 文件,添加或修改配置项。

从生成的 YAML 文件中,您可以看到由于启用了网关和控制台,系统已自动为这两个组件生成了基本配置。接下来,我们将重点关注与控制台相关的配置选项。
启用审计日志
审计日志记录管理控制台中的用户活动和系统事件,以用于安全和合规目的。此功能默认启用,无需额外配置。
访问审计日志: 您可以在 Web 控制台 Pod 内的 /opt/alluxio/console/audit-logs/console-audit.log
查看日志文件。
配置示例:
apiVersion: k8s-operator.alluxio.com/v1
kind: AlluxioCluster
spec:
console:
enabled: true
image: <PRIVATE_REGISTRY>/alluxio-console
imageTag: AI-3.7-13.0.0
auditLog:
enabled: true # 设置为 false 以禁用审计日志
配置网关和控制台之间的 TLS 连接
当您的网关中启用 TLS(传输层安全)时,您需要配置管理控制台以建立安全的 TLS 连接。这包括向 Web 控制台提供 CA(证书颁发机构)证书,它将使用该证书来验证网关的 TLS 证书。
准备证书文件
获取有效的 CA 证书文件(通常名为
ca.crt
)准备网关证书(
server.crt
)和私钥(server.key
)文件确保网关证书由 CA 正确签名
创建 Kubernetes 秘密
# 使用 CA 证书、网关证书和密钥创建secret kubectl create secret generic gateway-k8s-secret-name \ --from-file=ca.crt=/path/to/ca.crt \ --from-file=server.key=/path/to/server.key \ --from-file=server.crt=/path/to/server.crt \ --namespace=alx-ns
配置您的 Alluxio 集群
apiVersion: k8s-operator.alluxio.com/v1 kind: AlluxioCluster spec: gateway: enabled: true image: <PRIVATE_REGISTRY>/alluxio-gateway imageTag: AI-3.7-13.0.0 tls: enabled: true secretName: gateway-k8s-secret-name certFile: server.crt certKeyFile: server.key console: enabled: true image: <PRIVATE_REGISTRY>/alluxio-dashboard imageTag: AI-3.7-13.0.0 gateway: secretName: gateway-k8s-secret-name caFile: ca.crt
重要说明:
您配置中的
secretName
必须与创建的 Kubernetes secret 的名称完全匹配所有文件名(
caFile
、certFile
、certKeyFile
)必须与 secret 中使用的文件名匹配验证您的 CA 证书和网关证书是否有效且未过期
管理控制台在连接期间使用 CA 证书来验证网关的 TLS 证书
关键: CA 证书必须与网关证书属于同一证书链;使用不相关的 CA 将导致 TLS 验证失败
Okta 认证类型
Okta 身份验证为您的管理控制台提供安全的企业级访问控制。请按照以下步骤设置和使用 Okta 身份验证:
1. 在 Okta 中配置应用程序
登录到您的 Okta 管理仪表板
导航到 应用程序 > 应用程序
单击 创建应用集成
选择 单页应用程序 (SPA) 类型
此应用程序类型利用 带 PKCE 的授权码流程 来安全地获取客户端令牌


使用您的应用程序名称和一些选项完成基本配置


在应用程序设置的 登录 部分,配置:
登录重定向 URI:
http://your-domain:your-port/login/callback
注销重定向 URI:
http://your-domain:your-port/user/login
将
your-domain
和your-port
替换为您的实际域和端口值这些设置确保在 Okta 身份验证完成后正确重定向


保存您的应用程序配置
2. 用户组分配和授权
要控制对管理控制台的访问:
在您的 Okta 管理仪表板中,导航到 目录 > 组

如果尚不存在,请创建用户组(例如,“Admins”)
将适当的用户分配到这些组
返回到您的应用程序设置
在 分配 选项卡下,分配应有权访问管理控制台的用户组

3. 授权服务器配置
管理控制台需要特定的 OAuth 范围才能正常运行:
在您的 Okta 管理仪表板中,导航到 安全 > API
选择您的授权服务器(或根据需要创建一个)
转到 范围 选项卡
单击 添加范围


创建一个名为
alluxio
的范围,并附上适当的描述管理控制台需要
openid
范围(Okta 中的默认范围)和此自定义alluxio
范围如果在您的部署中启用了授权,请将您指定的声明与此范围关联。在下面的屏幕截图中,授权配置中的
roleFieldName
设置为userType
,groupFieldName
设置为department
。请访问 用户角色和访问控制 了解更多信息。

4. 获取配置值
完成设置后,为您的管理控制台配置收集这些值:
Okta 颁发者 URL:
在您的 Okta 管理仪表板中导航到 安全 > API
选择您的授权服务器
复制颁发者 URL(格式:
https://your-okta-domain/oauth2/default
)
客户端 ID:
转到您的应用程序设置
从 客户端凭据 部分复制客户端 ID
使用这些值更新您的 Alluxio 配置:
web: authType: okta oktaIssuer: https://your-okta-domain/oauth2/default oktaClientID: your-client-id-value
5. 登录过程




使用 Okta 身份验证时:
导航到您的管理控制台 URL
登录页面将显示一个“使用 Okta 登录”按钮
单击此按钮将被重定向到您组织的 Okta 身份验证门户
输入您的 Okta 凭据并完成任何多因素身份验证(如果已配置)
成功验证后,您将被重定向回管理控制台的仪表板
您的会话将根据您的 Okta 令牌配置保持活动状态
6. Okta 集成故障排除
如果您遇到 Okta 身份验证问题:
验证重定向 URI 在 Okta 和您的应用程序中都已正确配置
检查用户是否已分配到有权访问应用程序的适当组
确保
alluxio
范围已正确创建并与您的授权服务器关联确认您配置中的颁发者 URL 和客户端 ID 与 Okta 中的值匹配
配置授权
管理控制台支持访问控制,以根据角色和职责限制用户权限。可以配置授权来控制哪些用户可以访问特定功能并在系统内执行某些操作。
有关设置和管理授权的详细说明,请参阅 用户角色和访问控制 文档。
Last updated