OpenShift Container Platform 4.7
在 OpenShift Container Platform 中使用 web 控制台
摘要
本文档提供了有关使用和定制 OpenShift Container Platform web 控制台的信息。
Red Hat OpenShift Container Platform Web 控制台提供了一个图形用户界面,用于视觉化您的项目数据,并执行管理、管理和故障排除任务。Web 控制台在 openshift-console 项目的 control plane 节点上运行。它由一个 console-operator
pod 管理。支持管理员和开发者视角。
管理员和开发者视角都允许您为 OpenShift Container Platform 创建快速开始指南。快速开始是关于用户任务的指导教程,可用于熟悉应用程序、Operator 或其他产品。
1.1. 关于 web 控制台中的 Administrator 视角
Administrator 视角可让您查看集群清单、容量、常规和特定使用信息以及重要事件的流,它们可帮助您简化计划和故障排除任务。项目管理员和开发人员可以使用管理员视角。
集群管理员还可在 OpenShift Container Platform 4.7 及之后的版本中为 web 终端 Operator 打开内嵌的命令行终端实例。
显示的默认 Web 控制台视角取决于用户的角色。如果用户被视为管理员,则默认显示管理员视角。
管理员视角提供特定于管理员用例的工作流,例如:
-
管理工作负载、存储、网络和集群设置。
-
使用 Operator Hub 安装和管理 Operator。
-
添加允许用户通过角色和角色绑定登录和管理用户访问权限的身份提供程序。
-
查看和管理各种高级设置,如集群更新、部分集群更新、集群 Operator、自定义资源定义(CRD)、角色绑定和资源配额。
-
访问和管理监控功能,如指标、警报和监控仪表板。
-
查看并管理有关集群的日志记录、指标和高状态信息。
-
在 OpenShift Container Platform 中,以视觉化的方式和与管理员视角关联的应用程序、组件和服务交互。
OpenShift Container Platform Web 控制台中的管理员视角提供了特定于管理员用例的工作流。您可以通过 Web 控制台访问管理员视角,如下所示:
流程
-
使用登录凭证登录到 OpenShift Container Platform web 控制台,以访问管理员视角。
开发者视角提供了几个用来部署应用程序、服务和数据库的内置方法。在开发者视角中,您可以:
-
查看组件上滚动和重新创建推出部署的实时视觉化。
-
查看应用状态、资源利用率、项目事件流和配额消耗。
-
将您的项目与他人共享。
-
通过在项目上运行 Prometheus Query Language(PromQL)查询并查看图表中呈现的指标来排除应用程序的问题。此指标数据提供有关集群以及要监控的任何用户定义工作负载的状态信息。
集群管理员也可以在 OpenShift Container Platform 4.7 及之后的版本中的 Web 控制台中打开内嵌的命令行终端实例。
显示的默认 Web 控制台视角取决于用户的角色。如果用户是开发人员,则 Developer 视角会被默认显示。
Developer 视角提供开发人员用例特有的工作流,比如:
-
通过导入现有代码基、镜像和容器文件在 OpenShift Container Platform 中创建和部署应用程序。
-
在一个项目中,以可视的形式和与其关联的应用程序、组件和服务进行交互,并监控它们的部署和构建状态。
-
在应用程序中对组件进行分组,并在应用程序内部及跨应用程序间连接组件。
-
集成无服务器功能(技术预览)。
-
使用 Eclipse Che 创建开发平台来编辑应用程序代码。
OpenShift Container Platform web 控制台中的 Developer 视角提供了针对于开发人员用例的工作流。
您可以使用以下方法来访问 Developer 视角:
流程
使用视角切换功能把它切换到 Developer 视角。此时会显示包含集群中所有项目的列表的 Topology 视图。
-
从列表中选择现有项目,或使用 Project 下拉列表创建新项目。
如果您项目中没有工作负载或应用程序,则 Topology 视图会显示可用来创建应用程序的选项。如果已有工作负载,则 Topology 视图会以图形的形式显示工作负载节点。
第 5 章 在 OpenShift Container Platform 中定制 Web 控制台
您可以对 OpenShift Container Platform web 控制台进行定制,如设置自定义徽标、产品名、链接、通知标语和命令行下载。这在您需要定制 Web 控制台以满足具体公司或政府要求时特别有用。
您可以通过添加自定义徽标或自定义产品名称来创建自定义品牌。因为这些设置相互独立,因此可以两者都设置或只设置其中的一个。
先决条件
-
您必须具有管理员特权。
-
创建一个要使用的徽标文件。徽标可以是通用图像格式的文件,包括 GIF 、JPG 、PNG 或 SVG ,并有
max-height
为 60px
的限制。
流程
在 openshift-config
命名空间中将您的徽标文件导入到配置映射中:
$ oc create configmap console-custom-logo --from-file /path/to/console-custom-logo.png -n openshift-config
apiVersion: v1
kind: ConfigMap
metadata:
name: console-custom-logo
namespace: openshift-config
data:
console-custom-logo.png: <base64-encoded_logo> ... 1
编辑 web 控制台的 Operator 配置使其包含 customLogoFile
和 customProductName
:
$ oc edit consoles.operator.openshift.io cluster
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
spec:
customization:
customLogoFile:
key: console-custom-logo.png
name: console-custom-logo
customProductName: My Console
更新 Operator 配置后,它将会把自定义的 logo 配置映射同步到控制台命名空间中,并将其挂载到 console pod 并重新部署。
检查操作是否成功。如果有任何问题,控制台集群 Operator 将报告 Degraded
状态,控制台 Operator 配置也会报告 CustomLogoDegraded
状态,但状态类似于 KeyOrFilenameInvalid
或 NoImageProvided
。
运行以下命令检查 clusteroperator
:
$ oc get clusteroperator console -o yaml
运行以下命令检查 console Operator 配置:
$ oc get consoles.operator.openshift.io -o yaml
流程
-
在 Administration → Custom Resource Definitions 中点 ConsoleLink。
-
选择 Instances 标签
点击 Create Console Link 并编辑文件:
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: example
spec:
href: 'https://www.example.com'
location: HelpMenu 1
text: Link 1
- 1
有效的位置设置为 HelpMenu
、UserMenu
、ApplicationMenu
和 NamespaceDashboard
。
要使自定义链接出现在所有命名空间中,请按照以下示例操作:
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: namespaced-dashboard-link-for-all-namespaces
spec:
href: 'https://www.example.com'
location: NamespaceDashboard
text: This appears in all namespaces
要使自定义链接只出现在某些命名空间中,请按照以下示例操作:
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: namespaced-dashboard-for-some-namespaces
spec:
href: 'https://www.example.com'
location: NamespaceDashboard
# This text will appear in a box called "Launcher" under "namespace" or "project" in the web console
text: Custom Link Text
namespaceDashboard:
namespaces:
# for these specific namespaces
- my-namespace
- your-namespace
- other-namespace
要使自定义链接出现在应用程序菜单中,请按照以下示例操作:
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: application-menu-link-1
spec:
href: 'https://www.example.com'
location: ApplicationMenu
text: Link 1
applicationMenu:
section: My New Section
# image that is 24x24 in size
imageURL: https://via.placeholder.com/24
-
点击 Save 以应用您的更改。
您可以将 Web 控制台 URL(consoleURL
)更新为自定义值。
流程
在 consoles.operator.openshift.io
自定义资源中修改安装过程中默认创建的集群实例:
$ oc patch consoles.operator.openshift.io cluster --patch '{"spec":{"route":{"hostname":"console.example.com"}}}' --type=merge
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
spec:
route:
hostname: 'console.example.com'
如果指定自定义证书,则必须在 openshift-config
命名空间中创建具有密钥和证书的 secret。例如:
$ oc create secret tls console-tls --key=key.pem --cert=cert.pem -n openshift-config
apiVersion: v1
kind: Secret
metadata:
name: console-tls
namespace: openshift-config
type: kubernetes.io/tls
data:
tls.crt: >-
<base64-encoded_cert> ... 1
tls.key: >-
<base64-encoded_key> ... 2
- 1
提供有效的 TLS 证书。
- 2
提供有效的 TLS 密钥。
然后,编辑 Web 控制台的 Operator 配置:
$ oc edit consoles.operator.openshift.io cluster
在配置资源中添加以下小节:
spec:
route:
hostname: console.example.com
secret:
name: console-tls
使用自定义登录页面创建服务条款信息。如果您使用第三方登录提供程序(如 GitHub 或 Google),在将用户信任并期望它重定向到认证提供程序之前,自定义登录页面也会很有用。您还可以在验证过程中显示自定义的错误页。
自定义错误模板仅限于使用重定向的身份提供程序(IDP),如请求标头和基于 OIDC 的操作。它对使用直接密码验证的 IDP(如 LDAP 和 HTPasswd)不起作用。
流程
运行以下命令来创建您可以修改的模板:
$ oc adm create-login-template > login.html
$ oc adm create-provider-selection-template > providers.html
$ oc adm create-error-template > errors.html
创建 secret:
$ oc create secret generic login-template --from-file=login.html -n openshift-config
$ oc create secret generic providers-template --from-file=providers.html -n openshift-config
$ oc create secret generic error-template --from-file=errors.html -n openshift-config
运行:
$ oc edit oauths cluster
更新规格:
spec:
templates:
error:
name: error-template
login:
name: login-template
providerSelection:
name: providers-template
运行 oc explain oauths.spec.templates
以了解选项。
如果您连接到可帮助您浏览日志的服务,但需要以特定的方式生成 URL,则可以为链接定义一个模板。
流程
-
在 Administration → Custom Resource Definitions 中点 ConsoleExternalLogLink。
-
选择 Instances 标签
点击 Create Console External Log Link 并编辑文件:
apiVersion: console.openshift.io/v1
kind: ConsoleExternalLogLink
metadata:
name: example
spec:
hrefTemplate: >-
https://example.com/logs?resourceName=${resourceName}&containerName=${containerName}&resourceNamespace=${resourceNamespace}&podLabels=${podLabels}
text: Example Logs
流程
-
在 Administration → Custom Resource Definitions 中点 ConsoleNotification。
-
选择 Instances 标签
点击 Create Console Notification 并编辑文件:
apiVersion: console.openshift.io/v1
kind: ConsoleNotification
metadata:
name: example
spec:
text: This is an example notification message with an optional link.
location: BannerTop 1
link:
href: 'https://www.example.com'
text: Optional link text
color: '#fff'
backgroundColor: '#0088ce'
- 1
有效的位置设置为 BannerTop
、BannerBottom
和 BannerTopBottom
。
-
点 Create 以应用您的更改。
您可以使用自定义链接文本和 URL 来配置用于下载 CLI 的链接。它们可以直接指向软件包的文件或提供软件包的外部页面。
流程
-
进入 Administration → Custom Resource Definitions。
-
从 Custom Resource Definitions (CRDs) 列表中选 ConsoleCLIDownload 。
点 YAML 标签页,然后进行编辑:
apiVersion: console.openshift.io/v1
kind: ConsoleCLIDownload
metadata:
name: example-cli-download-links-for-foo
spec:
description: |
This is an example of download links for foo
displayName: example-foo
links:
- href: 'https://www.example.com/public/foo.tar'
text: foo for linux
- href: 'https://www.example.com/public/foo.mac.zip'
text: foo for mac
- href: 'https://www.example.com/public/foo.win.zip'
text: foo for windows
-
点 Save 按钮。
5.8. 在 Kubernetes 资源中添加 YAML 示例
您可以随时动态地将 YAML 示例添加到任何 Kubernetes 资源中。
流程
-
在 Administration → Custom Resource Definitions 中点 ConsoleYAMLSample。
点 YAML 并编辑该文件:
apiVersion: console.openshift.io/v1
kind: ConsoleYAMLSample
metadata:
name: example
spec:
targetResource:
apiVersion: batch/v1
kind: Job
title: Example Job
description: An example Job YAML sample
yaml: |
apiVersion: batch/v1
kind: Job
metadata:
name: countdown
spec:
template:
metadata:
name: countdown
spec:
containers:
- name: counter
image: centos:7
command:
- "bin/bash"
- "-c"
- "for i in 9 8 7 6 5 4 3 2 1 ; do echo $i ; done"
restartPolicy: Never
使用 spec.snippet
表示 YAML 样本不是完整的 YAML 资源定义,而是可在用户光标处的现有 YAML 文档中插入的片段。
-
点击 Save。
第 6 章 关于 web 控制台中的 web 终端
您可以在 OpenShift web 控制台中启动内嵌的命令行终端实例。您必须首先安装 Web Terminal Operator 来使用 Web 终端。
集群管理员可以访问 OpenShift Container Platform 4.7 及之后的版本中的 Web 终端。
此终端实例预安装了与集群交互的通用 CLI 工具,如 oc
、kubectl
、odo
、kn
、tkn
、helm
、kubens
、subctl
和 kubectx
。它还包含正在处理的项目的上下文,并自动记录您使用凭证的项目。
您可以使用 OpenShift Container Platform OperatorHub 中列出的 Web Terminal Operator 来安装 Web 终端。安装 Web Terminal Operator 时,会自动安装命令行配置(如 DevWorkspace
CRD)所需的自定义资源定义(CRD)。打开 web 终端时,web 控制台会创建所需的资源。
先决条件
-
使用具有
cluster-admin
权限的账户访问 OpenShift Container Platform 集群。
流程
-
在 Web 控制台的 Administrator 视角中,导航到 Operators → OperatorHub。
-
使用 Filter by keyword 复选框在目录中搜索
Web Terminal
Operator,然后点击 Web Terminal 标题。
-
参阅 Web Terminal 页面中有关 Operator 的简单描述,然后点击 Install。
在 Install Operator 页面中,保留所有字段的默认值。
-
Update Channel 菜单中的 alpha 选项启用 Web Terminal Operator 最新版本的安装。
-
Installation Mode 菜单中的 All namespaces on the cluster 选项可让 Operator 监视并可供集群中的所有命名空间使用。
-
Installed Namespace 菜单中的 openshift-operators 选项会在默认的
openshift-operators
命名空间中安装 Operator。
-
Approval Strategy 菜单中的 Automatic 选项确保以后对 Operator 的升级由 Operator Lifecycle Manager 自动处理。
-
点击 Install。
-
在 Installed Operators 页面中,点 View operator 来验证 Installed Operators 页中列出的 Operator。
-
安装 Operator 后,刷新页面以查看控制台右上角的命令行终端图标。
安装 Web Terminal Operator 后,您可以使用 Web 终端,如下所示:
-
要启动 web 终端,请点击控制台右上角的命令行终端图标(
)。在 Command line terminal 窗格中会显示 web 终端实例。此实例使用您的凭证自动登录。
从 Project 下拉列表中选择创建 DevWorkspace
CR 的 项目。默认情况下会选择当前项目。
-
只有在不存在
DevWorkspace
CR 时才会创建 DevWorkspace CR。
-
openshift-terminal
项目是集群管理员使用的默认项目。它们没有选择其他项目的选项。
-
点 Start 使用所选项目初始化 Web 终端。
初始化 web 终端后,您可以在 web 终端中使用预安装的 CLI 工具,如 oc
、kubectl
、odo
、kn
、tkn
、
helm
、kubens、subctl
和 kubectx
。
卸载 web 终端需要两步:
-
删除安装 Operator 时添加的组件和自定义资源(CR)。
-
卸载 Web Terminal Operator。
卸载 Web Terminal Operator 不会移除安装 Operator 时创建的任何自定义资源定义(CRD)或受管资源。为了安全起见,必须手动卸载这些组件。删除这些组件还允许您通过确保在卸载 Operator 时不会闲置终端来保存集群资源。
先决条件
-
使用具有
cluster-admin
权限的账户访问 OpenShift Container Platform 集群。
使用 CLI 删除安装 Web Terminal Operator 期间创建的 CR。
流程
运行以下命令以确保所有 DevWorkspace
CR 及其相关的 Kubernetes 对象(如部署)被删除。
$ oc delete devworkspaces.workspace.devfile.io --all-namespaces --all --wait
$ oc delete workspaceroutings.controller.devfile.io --all-namespaces --all --wait
$ oc delete components.controller.devfile.io --all-namespaces --all --wait
如果此步骤未完成,则终结器很难轻松地完全卸载 Operator。
运行以下命令以删除 CRD:
$ oc delete customresourcedefinitions.apiextensions.k8s.io workspaceroutings.controller.devfile.io
$ oc delete customresourcedefinitions.apiextensions.k8s.io components.controller.devfile.io
$ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspaces.workspace.devfile.io
删除 DevWorkspace-Webhook-Server
部署:
$ oc delete deployment/devworkspace-webhook-server -n openshift-operators
运行此步骤及以下步骤时,无法使用 oc exec
命令在容器中运行命令。删除 Webhook 后,您将可以再次使用 oc exec
命令。
运行以下命令以删除所有闲置服务、secret 和配置映射:
$ oc delete all --selector app.kubernetes.io/part-of=devworkspace-operator,app.kubernetes.io/name=devworkspace-webhook-server
$ oc delete serviceaccounts devworkspace-webhook-server -n openshift-operators
$ oc delete configmap devworkspace-controller -n openshift-operators
$ oc delete clusterrole devworkspace-webhook-server
$ oc delete clusterrolebinding devworkspace-webhook-server
运行以下命令以删除变异或验证 Webhook 配置:
$ oc delete mutatingwebhookconfigurations controller.devfile.io
$ oc delete validatingwebhookconfigurations controller.devfile.io
6.3.2. 使用 Web 控制台卸载 Operator
流程
-
在 web 控制台的 Administrator 视角中,导航到 Operators → Installed Operators。
-
滚动过滤器列表或在 Filter by name 框中输入关键字以查找 Web Terminal Operator。
-
点击 Web Terminal Operator 的 Options 菜单
,然后选择 Uninstall Operator。
-
在 Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。