新手OpenShift oc命令
我认为为oc命令创建类似的帖子会很有用。oc命令很dope,大家应该都知道。它设计良好,具有一致性和灵活性。正如您将看到的,有许多隐藏的功能值得尝试。
如果你是一个OpenShift专业人员,你可能已经知道我在这里揭示的大部分内容;否则,如果你刚开始使用OpenShift,或者你不是一个有经验的用户,它会节省你一些宝贵的时间。
当我不知道发生了什么或者我收到一个不友好的错误消息时,我总是使用这个符号-日志级别。它将日志级别的信息写入stderr。根据日志级别,您将获得curl API Rest调用、API Rest主体回答,甚至更详细的信息。
如果你想给OCP对象打补丁,loglevel 9非常方便,因为它显示了你需要应用的补丁(API请求体)。
假设你想改变服务对象的标签,在这种情况下,标签是“app: hello-Jorge”。
注意:在绝望的时刻,你总是可以加上任意数量的9,结果只会是一个9,但你可能会感到释然。
是的,你没有看错。您可以替换运行oc命令的用户,或者用OCP的术语来说,您可以“模拟”该用户。显然,如果你有足够的权限进行模拟,那么你只需要使用flag-as。
例如:
此外,可以执行组模拟来代替用户模拟:
很多情况下非常方便快捷,比如检查用户是否可以执行某个特定的操作,或者检查用户运行oc时会收到的输出。当您对角色和权限感到困惑时,它也很有用。
oc whoami命令是众所周知的,特别是添加了flag -t来获取当前用户/会话的持有者令牌。但是,当你有一个令牌,但你不知道谁拥有它,会发生什么?
你可以做的一件事是用一个令牌登录到OpenShift,然后执行oc whoami...等一下。Oc whoami会给你这些信息!只需在命令行上将令牌作为第三个参数传递,不带任何标志。
试一试:
你可以运行一个pod并得到一个shell。有时,获取正在运行的pod配置的副本并使用shell来排除故障是很有用的。这是默认行为。
引入oc调试选项。您可以作为root用户或任何其他用户ID运行容器,强制它在特定节点中运行各种命令。
您必须针对有效的dc运行该命令,例如:
OpenShift/k8s对象有时候很复杂,有很多字段。很多时候,我最终会在OCP文档或其他资源中寻找对象定义的例子。说到OCP/k8s对象定义,可以考虑使用oc explain作为可信来源。
Oc explain为您提供了资源及其字段的文档。当声明一个新的OCP对象时,或者当你不能访问官方的OCP文档时,这是非常有用的。
例如,您可以获得pod文档和pod规范亲缘关系字段的描述:
oc命令的一个很酷的地方是它有打印格式的内置功能。我们都知道-o json或者-o yaml,但是flag -o为你提供了很多其他的可能性。
在我发现的所有输出选项中,go-template和jsonpath是最强大的:
例如,假设您想要获得由特定路由器公开的服务:
或者你想知道路由器DC的部署策略:
如你所见,oc命令非常棒。我鼓励你继续玩它,因为它是OpenShift最酷的东西之一。
Jorge Tudela Gonzalez de Riancho在Red Hat Spain担任云顾问,专门研究OpenShift和容器相关技术。