你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本指南介绍了如何为现有的 Azure Red Hat OpenShift 4 群集添加或更新 Red Hat 拉取密钥。
对于新的群集部署,可以在创建群集时添加拉取密钥。 有关如何使用 Red Hat 拉取机密创建群集的详细信息,请参阅“获取 Red Hat 拉取机密”(可选)。
先决条件
本指南假定你有一个现有的 Azure Red Hat OpenShift 4 群集。 确保对群集具有管理员访问权限。
准备拉取机密
在不添加 Red Hat 拉取机密的情况下创建群集时,群集上仍会自动创建拉取机密。 但是此拉取机密未完整填充。
本节概述如何使用来自您 Red Hat 拉取密钥的其他值来更新该拉取密钥。
运行以下命令,提取
pull-secret命名空间中名为openshift-config的机密,并将其保存到单独的文件中:oc get secrets pull-secret -n openshift-config -o template='{{index .data ".dockerconfigjson"}}' | base64 -d > pull-secret.json输出应类似于以下示例,并删除了实际机密值。
{ "auths": { "arosvc.azurecr.io": { "auth": "<my-aroscv.azurecr.io-secret>" } } }转到 Red Hat OpenShift 群集管理员门户,然后选择下载拉取机密。 Red Hat 拉取密钥示例如下,实际密钥值已被移除。
{ "auths": { "cloud.openshift.com": { "auth": "<my-crc-secret>", "email": "violet@contoso.com" }, "quay.io": { "auth": "<my-quayio-secret>", "email": "violet@contoso.com" }, "registry.connect.redhat.com": { "auth": "<my-registry.connect.redhat.com-secret>", "email": "violet@contoso.com" }, "registry.redhat.io": { "auth": "<my-registry.redhat.io-secret>", "email": "violet@contoso.com" } } }通过添加 Red Hat 拉取机密中的条目,编辑从群集获取的拉取机密文件。
重要
如果您在 Red Hat 拉取密钥中包含
cloud.openshift.com条目,您的群集会将遥测数据发送给 Red Hat。 仅在要发送遥测数据时包含此部分。 否则,请排除以下部分。{ "cloud.openshift.com": { "auth": "<my-crc-secret>", "email": "violet@contoso.com" }谨慎
请勿从拉取机密中删除或更改
arosvc.azurecr.io条目。 此部分是群集正常运行所必需的。"arosvc.azurecr.io": { "auth": "<my-aroscv.azurecr.io-secret>" }最终文件应如以下示例所示,并删除了实际机密值。
{ "auths": { "cloud.openshift.com": { "auth": "<my-crc-secret>", "email": "violet@contoso.com" }, "quay.io": { "auth": "<my-quayio-secret>", "email": "violet@contoso.com" }, "registry.connect.redhat.com": { "auth": "<my-registry.connect.redhat.com-secret>", "email": "violet@contoso.com" }, "registry.redhat.io": { "auth": "<my-registry.redhat.io-secret>", "email": "violet@contoso.com" }, "arosvc.azurecr.io": { "auth": "<my-aroscv.azurecr.io-secret>" } } }确保文件是有效的 JSON。 有很多方法可以验证 JSON。 以下示例使用
jq验证文件。cat pull-secret.json | jq如果文件中存在错误,它将显示为
parse error.
将拉取机密添加到群集中
运行以下命令来更新拉取密钥。 在版本 4.9 或更高版本中,运行此命令会导致群集节点在更新时逐个重启。 在版本 4.10 或更高版本中,不会触发重启。
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=./pull-secret.json
验证拉取机密是否已到位
oc exec -n openshift-apiserver $(oc get pod -n openshift-apiserver -o jsonpath="{.items[0].metadata.name}") -- cat /var/lib/kubelet/config.json
设置机密后,即可启用经过 Red Hat 认证的操作员。
修改配置文件
修改下列对象以启用 Red Hat 操作员。
修改 Samples 运算符配置文件。 然后可以运行以下命令来编辑配置文件:
oc edit configs.samples.operator.openshift.io/cluster -o yaml
将 spec.managementState 的值从 Removed 更改为 Managed。
以下 YAML 代码片段只显示经过编辑的 YAML 文件的相关部分:
apiVersion: samples.operator.openshift.io/v1
kind: Config
metadata:
...
spec:
architectures:
- x86_64
managementState: Managed
运行以下命令以编辑作员中心配置文件:
oc edit operatorhub cluster -o yaml
对于要启用的任何源,请将 Spec.Sources.Disabled 值从 true 更改为 false。
以下 YAML 代码片段只显示经过编辑的 YAML 文件的相关部分:
Name: cluster
...
dd3310b9-e520-4a85-98e5-8b4779ee0f61
Spec:
Sources:
Disabled: false
Name: certified-operators
Disabled: false
Name: redhat-operators
保存文件以应用所做的编辑。
验证机密是否有效
添加拉取机密并修改正确的配置文件后,群集更新可能需要几分钟才能完成。 若要检查群集是否已更新,请运行以下命令以显示可用的认证操作员和 Red Hat 操作员源。
$ oc get catalogsource -A
NAMESPACE NAME DISPLAY TYPE PUBLISHER AGE
openshift-marketplace certified-operators Certified Operators grpc Red Hat 10s
openshift-marketplace community-operators Community Operators grpc Red Hat 18h
openshift-marketplace redhat-operators Red Hat Operators grpc Red Hat 11s
如果未显示“认证操作员”和“Red Hat 操作员”,请等待几分钟,然后重试。
若要确保拉取密钥已更新且可用,请打开 OperatorHub 并检查是否有任何 Red Hat 验证的操作器。 例如,检查 OpenShift 容器存储操作员是否可用,并查看是否具有安装权限。
后续步骤
- 若要详细了解 Red Hat 拉取机密,请参阅使用映像拉取机密。
- 若要详细了解 Red Hat OpenShift 4,请参阅 Red Hat OpenShift 容器平台文档。