12.3.9. 重新部署自定义 registry 或路由器证书
当因为重新部署了 CA 节点被撤离时,registry 和路由器 pod 会重启。如果 registry 和路由器证书也未被新的 CA 重新部署,这可能会导致中断,因为它们无法使用其旧证书访问 master。
12.3.9.1. 手动重新部署 registry 证书 复制链接链接已复制到粘贴板!
要手动重新部署 registry 证书,您必须将新的 registry 证书添加到名为 registry-certificates
的 secret 中,然后重新部署 registry:
使用以下步骤的其余部分切换到
default
项目:oc project default
$ oc project default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的 registry 最初是在 OpenShift Container Platform 3.1 或更早版本上创建,它可能仍在使用环境变量来存储证书(这已被淘汰使用 secret)。
运行以下命令,并查找
OPENSHIFT_CA_DATA
、OPENSHIFT_CERT_DATA
、OPENSHIFT_KEY_DATA
环境变量:oc set env dc/docker-registry --list
$ oc set env dc/docker-registry --list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果不存在,请跳过这一步。如果这样做,请创建以下
ClusterRoleBinding
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后,运行以下命令来删除环境变量:
oc set env dc/docker-registry OPENSHIFT_CA_DATA- OPENSHIFT_CERT_DATA- OPENSHIFT_KEY_DATA- OPENSHIFT_MASTER-
$ oc set env dc/docker-registry OPENSHIFT_CA_DATA- OPENSHIFT_CERT_DATA- OPENSHIFT_KEY_DATA- OPENSHIFT_MASTER-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
本地设置以下环境变量使其更复杂:
REGISTRY_IP=`oc get service docker-registry -o jsonpath='{.spec.clusterIP}'` REGISTRY_HOSTNAME=`oc get route/docker-registry -o jsonpath='{.spec.host}'`
$ REGISTRY_IP=`oc get service docker-registry -o jsonpath='{.spec.clusterIP}'` $ REGISTRY_HOSTNAME=`oc get route/docker-registry -o jsonpath='{.spec.host}'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建新 registry 证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仅从 Ansible 主机清单文件中列出的第一个 master 运行
oc adm
命令,默认为 /etc/ansible/hosts。使用新的 registry 证书更新
registry-certificates
secret:oc create secret generic registry-certificates \ --from-file=/etc/origin/master/registry.crt,/etc/origin/master/registry.key \ -o json --dry-run | oc replace -f -
$ oc create secret generic registry-certificates \ --from-file=/etc/origin/master/registry.crt,/etc/origin/master/registry.key \ -o json --dry-run | oc replace -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新部署 registry:
oc rollout latest dc/docker-registry
$ oc rollout latest dc/docker-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow