速度收藏,Kubenetes命令行工具速查表!
毫无疑问,任何使用Kubenetes或希望经常使用Kubernetes的人都会发现这个命令列表有助于你提升工作效率,节省时间。
当谈到每天与Kubernetes集群进行交互时,你可能会需要kubectl,K8s的命令行工具。你可以使用它将容器工作负载部署到生产集群中,但它也可以帮助你实现更多。kubectl是容器编排和管理的瑞士军刀。本文将提供如何与kubectl进行交互,并为你提供便捷的快捷命令速查表,以使你的工作流程更快、更顺畅。
在kubectl中最常用的管理技术有三种类型;分别是“Imperative Commands”,“Imperative对象配置(Imperative Object Configuration)”和“Declarative对象配置(Declarative Object Configuration)”。每种管理方式都有其优点和缺点,但强烈建议仅通过单一方法管理Kubernetes对象。同时在单个对象上使用多种技术会导致未定义的行为。
Imperative Commands指的是易于记忆的“易于使用”命令。他们也只需要一个步骤就可以对集群进行更改。建议在开发项目中使用Imperative Commands,但它们也有缺点。由于用户直接在实时集群上运行,因此这些命令不能提供保存记录或将命令集成到change review流程的绝佳选择。他们也不会为新对象提供模板。
Imperative对象配置是kubectl配置,它指定操作或动作,即替换, 创建等。这种类型的kubectl命令还将指定可选flags和文件名。每个文件都必须包含适当格式的每个对象的完整定义以使用Imperative对象配置格式。Imperative对象配置可以存储在源控制系统中,也可以集成到change review流程中。另外,这些配置将为你提供新对象的模板。这种技术比declarative对象配置更简单也更成熟,但对于处理目录来说并不好。
Declarative对象配置:用户可以调整Kubernetes对象的实时配置值,作为Kubernetes集群的一部分。这些存储在本地Kubernetes集群存储中,通常是etcd。创建,更新和删除操作将通过kubectl按每个对象进行检测,从而能够处理目录可能需要对不同对象执行不同的操作。Declarative对象配置在必要时使用kubectl apply只为重复创建和更新对象。这种技术比Imperative对象配置更受欢迎,因为即使未与配置文件合并,也会保留更改。这种技术的一个缺点是,如果它们没有按预期出现,那么调试和理解结果就会变得更加困难。
当你浏览不同的技术类型时,处理和使用它们的学习曲线会增加。本文将专注于那些希望快速入门的人的Imperative Commands。
我们可以看到的kubectl命令代码的最好例子是那些在日常工作中无疑会用到的代码:
kubectl run
kubectl create
kubectl get
kubectl describe
有几个要记住的关于使用这些命令的注意事项,无论是使用单数形式的对象(例如,'pod'),复数形式(例如'pods')还是对象的简写形式(例如'po'),系统将收集关于所有可用匹配对象的信息。要缩小搜索范围,你需要指定<name>跟踪对象名称。
比如:
kubectl run pod
kubectl run pods
kubectl run po
这三个命令都会产生相同的结果。要指定一个pod,请使用命令:
kubectl run po <name>
如图,是Kubectl命令的速查表,了解不同作用的命令和修改对象的完整列表,当然要记得常备手边。