Tom*_*eld 7 openshift kubernetes
oc create如果已经存在,则尝试基于文件创建一组资源失败.
解析配置文件并创建一个或多个OpenShift Enterprise对象... 将忽略任何现有资源.
(强调我的).
我看不到这个命令或全局的任何配置选项会改变这种行为,在我看来它与文档相反.
我跑的命令是 oc create -f some.file
输出是:
Error from server: services 'my-app' already exists
Error from server: buildconfigs 'my-app' already exists
Error from server: imagestreams 'my-app' already exists
Error from server: deploymentconfigs 'my-app' already exists
Error from server: routes 'my-app' already exists
Error from server: secrets 'my-app' already exists
Run Code Online (Sandbox Code Playgroud)
它也以非零退出代码退出,因此它不仅仅是一个警告.我错过了一些明显的东西或误解了文档的内容吗?
我只是希望能够应用此文件并确保之后的OpenShift项目的状态.
Gra*_*ton 13
文档可能有点措辞错误.它的含义是,如果您尝试创建一个特定类型的对象,其中具有该名称的该类型的对象已经存在,那么您将尝试创建新对象.
如果您尝试从相同的原始资源定义创建应用程序的多个实例,则会出现这种情况.无法使用oc create -f一组原始资源定义来覆盖命令行中的名称,因此第二个部署是不同的.
如果要从相同的资源定义创建多个实例,则需要执行的操作是将定义转换为模板并对名称进行参数化,以便为不同的实例传递不同的名称.那样就不会发生冲突了.
此外,当您创建一组资源时,通常最好在所有资源类型中使用一个名称,而不是为每个资源使用不同的名称,例如,对所有资源使用"my-app-name" ,而不是单独的'my-buildconfig','my-imagestream'.
更重要的是,您需要确保在其上添加具有相同键/值的标签,以便可以轻松地将它们一起使用,包括一次性删除它们.
您尝试部署的应用程序类型是什么?我可以指出您可以用作指南的示例模板.
更新1
如果您希望能够运行oc create -f并且如果资源已经存在则不要抱怨,但如果它们不存在则创建它们,请oc apply -f改为使用.
| 归档时间: |
|
| 查看次数: |
4468 次 |
| 最近记录: |