在本地裸机 kubernetes 集群中运行 SCDF。能够从公共和私有 docker 注册表(在 hub.docker.com)注册和运行任务应用程序。我重新标记图像并将其推送到私有本地注册表。但是当我现在注册它们时,SCDF 无法读取应用程序属性的图像元数据标签。该应用程序在使用本地注册表的 imagePullSecret 的集群中运行良好。SCDF 日志有以下错误:
2022-01-23 02:04:25.850 WARN 1 --- [nio-8080-exec-4] ApplicationConfigurationMetadataResolver : Failed to retrieve properties for resource Docker Resource [docker:172.16.16.51:5000/timestamp-task:v1] because of ContainerRegistryException: Could not find an Registry Configuration for: 172.16.16.51:5000
我根据私有注册表的文档做了以下操作。
为本地注册表创建一个秘密:
kubectl create secret docker-registry myregcred --docker-server=172.16.16.51:5000 --docker-username=<reguser> --docker-password=<regpwd> --docker-email=<email>将密钥作为文件挂载到 SCDF 容器。我验证了 myregcred 的秘密已安装。SCDF pod 中的 /etc/secrets/myregcred 目录具有密钥文件 .dockerconfigjson
通过提供注册表配置覆盖禁用 SSL 验证(因为注册表是自签名的)
... container: registry-configurations: myregistry: disable-ssl-verification: true registry-hostname: 172.16.16.51:5000 ...使用 URI 在 SCDF 仪表板 UI 中注册应用程序:
docker:172.16.16.51:5000/timestamp-task:v1
我了解注册表配置是由 SCDF 基于已安装的机密推断的。所以不知道为什么我会收到这个错误。相同的秘密 myregcred 被用作 imagePullSecret 并且图像从本地注册表中提取并且应用程序运行良好。欣赏任何想法。谢谢。