新手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和容器相关技术。