学习kubectl以改善您与Kubernetes交互的方式。Kubernetes可以帮助您编排运行大量容器的软件。Kubernetes不仅提供管理(或编排)正在运行的容器的工具,还帮助这些容器按需扩展。将Kubernetes作为你的中央控制面板(或控制平面控制平面),你需要一种方法来管理Kubernetes,而完成这项工作的工具就是kubectl。kubectl命令可让您控制、维护、分析Kubernetes集群并对其进行故障排除。和很多使用ctl(control的缩写)后缀的工具一样,比如systemctl和sysctl,kubectl拥有大量的功能和任务权限,所以如果你在运行Kubernetes,肯定会经常使用它。这是一个有很多选项的命令,所以这里有五个kubectl中易于使用的常见任务。1.列出并描述资源按照设计,容器往往会成倍增加。在某些条件下,它们可以迅速增加。如果您只能通过podmanps或dockerps查看正在运行的容器,这可能会让人不知所措。使用kubectlget和kubectldescribe,您可以列出正在运行的podpod和它们正在处理的容器信息。此外,您可以使用--namespace或name或--selector等选项仅列出所需的信息。get子命令不仅对pod和容器有用。它还包含有关节点、命名空间、发布、服务和副本的信息。2.创建资源如果您只通过OpenShift、OKD或Kubernetes提供的Web用户界面(UI)创建了发布,但您想从Linux终端控制您的集群,您可以使用kubectlcreate。kubectlcreate命令不只是实例化一个新的应用程序版本。在Kubernetes中可以创建许多其他组件,例如服务、配额和计划任务。Kubernetes中的计划任务会创建一个临时pod,该pod按您选择的计划执行某些任务。它们不难设置。下面是一个计划任务,每分钟让BusyBox图像打印“helloworld”。$kubectlcreatecronjob\hello-world\--image=busybox\--schedule="*/1****"--echo"helloworld"3.编辑文件。Kubernetes中的对象都有对应的配置文件。但是在文件系统中查找对应的文件比较麻烦。使用kubectledit,您可以专注于对象而不是定义文件。您可以通过kubectl(通过KUBE_EDITOR环境变量,您可以将其设置为您喜欢的编辑器)找到并打开该文件。$KUBE_EDITOR=emacs\kubectleditcronjob/hello-world4.在容器之间传输文件刚接触容器的人常常对不能直接访问的共享系统的概念感到困惑。他们可能会了解容器引擎或kubectl中的exec选项,但是当他们无法从容器中提取文件或将文件放入容器时,容器仍然会显得不透明。使用kubectlcp命令,可以将容器作为远程服务器,让宿主机和容器之间的文件传输变得和SSH命令一样简单:$kubectlcpfoomy-pod:/tmp5,applychanges修改Kubernetes对象,可以使用kubectlapply命令完成。您所要做的就是将命令指向配置文件:$kubectlapply-f./mypod.json与运行Ansible剧本或Bash脚本类似,apply可以轻松地将设置快速“导入”到正在运行的Kubernetes实例中。例如,GitOps工具ArgoCD非常容易安装,这要归功于apply子命令:$kubectlcreatenamespaceargocd$kubectlapply-nargocd\-fhttps://raw.githubusercontent.com/argoproj/argo-cd/vx。y.z/manifests/install.yaml使用kubectlkubectl是一个强大的工具,因为它是终端命令,所以可以脚本化,可以实现很多webUI无法实现的功能。学习kubectl是了解更多关于Kubernetes、容器、pod以及围绕这些重要云计算技术的创新的好方法。下载我们的kubectl速查表以供快速参考,其中包括可帮助您学习的命令示例并引导您了解详细信息。
