7.3. 在集群中部署插件
您可以将插件部署到 OpenShift Container Platform 集群。
7.3.1. 使用 Docker 构建镜像 复制链接链接已复制到粘贴板!
要在集群中部署插件,您需要构建镜像并首先将其推送到镜像 registry。
流程
使用以下命令构建镜像:
docker build -t quay.io/my-repositroy/my-plugin:latest .
$ docker build -t quay.io/my-repositroy/my-plugin:latest .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果要测试您的镜像,请运行以下命令:
docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
$ docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令推送镜像:
docker push quay.io/my-repository/my-plugin:latest
$ docker push quay.io/my-repository/my-plugin:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.2. 在集群中部署插件 复制链接链接已复制到粘贴板!
在将镜像推送到 registry 后,您可以使用 Helm Chart 将插件部署到集群中。
先决条件
您必须具有包含之前推送的插件的镜像位置。
注意您可以根据插件的需求指定附加参数。
values.yaml
文件提供了一组完整的 suported 参数。
流程
要将插件部署到集群中,请使用插件名称作为 Helm 发行版本名称安装 Helm chart,作为 Helm 发行版本名称,或由
-n
命令行选项指定的现有命名空间。使用以下命令,提供plugin.image
参数中镜像的位置:helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
$ helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
n <my-plugin-namespace>
- 指定要将插件部署到的现有命名空间。
--create-namespace
- 可选:如果部署到新命名空间,请使用此参数。
--set plugin.image=my-plugin-image-location
-
指定
plugin.image
参数中镜像的位置。
注意如果您要在 OpenShift Container Platform 4.10 及更新的版本中部署,建议通过添加参数
--set plugin.securityContext.enabled=false
来排除与 pod 安全性相关的配置。可选: 您可以使用
charts/openshift-console-plugin/values.yaml
文件中的一组支持的参数来指定任何其他参数。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
-
从 Administration
Cluster Settings Configuration Console operator.openshift.io
Console plugins 或访问 Overview 页面来查看启用的插件列表。
显示新插件配置可能需要几分钟时间。如果没有看到插件,则在最近启用了插件时,可能需要刷新浏览器。如果您在运行时收到任何错误,请在浏览器开发人员工具中检查 JS 控制台,以查看插件代码中的任何错误。
7.3.3. 插件服务代理 复制链接链接已复制到粘贴板!
如果您需要从插件向集群服务发出 HTTP 请求,您可以使用 spec.proxy
数组字段在 ConsolePlugin
资源中声明服务代理。控制台后端公开 /api/proxy/plugin/<plugin-name>/<proxy-alias>/<request-path>?<optional-query-parameters>
端点来代理插件和服务之间的通信。代理请求默认使用 服务 CA 捆绑包。服务必须使用 HTTPS。
该插件必须使用 consolefetch
API 从 JavaScript 代码发出请求,或者一些请求可能会失败。如需更多信息,请参阅 "Dynamic plugin API"。
对于每个条目,您必须分别在 endpoint
和 alias
字段中指定代理的端点和别名。对于 Service 代理类型,您必须将端点 type
字段设置为 Service
,service
必须包含 name
, namespace
, 和 port
字段的值。例如,/api/proxy/plugin/helm/helm-charts/releases?limit=10
是代理请求路径,它来自带有一个 helm-charts
服务的 helm
插件,列出 10 个 helm release。
服务代理示例
7.3.4. 在浏览器中禁用您的插件 复制链接链接已复制到粘贴板!
控制台用户可以使用 disable-plugins
查询参数来禁用通常会在运行时加载的特定或所有动态插件。
流程
- 要禁用特定的插件,请从以逗号分隔的插件名称列表中删除您要禁用的插件。
-
要禁用所有插件,请在
disable-plugins
查询参数中有一个空字符串。
集群管理员可以在 web 控制台的 Cluster Settings 页面中禁用插件。