前一节笔记我们搭建了k8s集群,那么如何对集群进行信息查看、管理等操作呢?最基础的方式就是使用kubectl
命令。kubectl
其实是一个客户端,它通过APIServer操作k8s集群,因此kubectl
不是一定要在k8s节点上运行,它可以在任意能够访问APIServer的主机上运行,这篇笔记我们介绍kubectl
命令的常见用法。
注意:当然,除了kubectl
,基于k8s提供的APIServer编程接口衍生出了Dashboard
、KubeSphere
、Rancher
等优秀的开源图形界面管理平台,各大公有云平台也会开发自己的管理系统,不过命令行还是最基础、功能最为强大的管理方式。
kubectl
要连接k8s集群需要一个配置文件,在第一节中我们搭建k8s集群时,曾拷贝过一个config
文件到~/.kube
下,我们如果在其它主机上连接k8s集群也需要复制一份到~/.kube/config
。如果配置文件没有放在默认目录,可以用--kubeconfig
参数指定。
kubectl [command] [type] [name] [flags]
command
:对资源执行的操作,如apply
、get
、delete
、describe
等type
:操作的资源类型,如pods
、services
等,支持单数(pod)、复数(pods)、简写(po)三种方式name
:资源名称,如果不指定,会显示所有资源flags
:命令参数,最常用的比如-n
指定命令的命名空间kubectl
包含很多命令和参数,我们不可能全部记住,必要时我们查看帮助即可。
kubectl help
我们日常使用k8s过程中,经常需要部署各种资源,比如Deployment
、Service
、ServiceAccount
等。这些资源都定义在yaml
资源清单文件中。实际上kubectl
也支持通过命令行创建各种资源,但强烈不推荐这样做!我们部署的内容可能非常复杂,用命令行不方便管理,而且弄错了难以恢复。
根据资源文件创建资源可以执行以下命令。
kuebctl apply -f <文件名>
如果希望将部署的资源统统删除可以执行以下命令。
kubectl delete -f <文件名>