你必定会用到的7条kubectl命令

kubectl在使用Kubernetes过程当中的重要性不言而喻,掌握其命令行也是许多IT人员的“必修课程”。node

而互联网上关于kubectl的文章多如牛毛,本文秉持着“浓缩就是精华”的原则,精简精简再精简,挑出你必定会用到的7条命令!同时还介绍了kubectl命令的基本语法,帮助你快速上手kubectl!bash


kubectl是Kubernetes的命令行工具,人们一般经过它与Kubernetes进行交互。经过kubectl可以对集群自己进行管理,并可以在集群上进行容器化应用的安装部署。咱们在《使用Kubectl管理Kubernetes的全解教程》一文中详细介绍了在不一样的操做系统中如何安装kubectl以及如何使用RKE和Rancher建立配置文件。在本文中,咱们将介绍kubectl中最常使用的命令。app

首先,让咱们来看看kubectl是如何工做的:工具

  • 一个kubectl命令能够执行一个行动,如getcreate或者describe操作系统

  • 一个行动能够在一个资源上执行,如Deployment命令行

  • kubectl命令遵循这一语法格式:kubectl an_action a_resource a_resource_name –flagsdebug

在大部分状况下,名称和标志并非必要的。例如,要得到关于现有pod的信息,你一般能够直接运行这一命令:kubectl get pods日志

这里有一个小技巧:若是你不想每次都手动输入kubectl,能够制做一个Bash alias。设置alias k='kubectl',以后只需输入“k”便可代替kubectl。code

接下来,咱们来看看最多见的kubectl资源类型及其缩写(括号内为缩写)。对象

最多见的11种kubectl资源类型

  • pods (po)

  • nodes(no)

  • deployments (deploy)

  • replicasets(rs)

  • daemonsets(ds)

  • statefulsets(sts)

  • jobs

  • cronjobs(cj)

  • services(svc)

  • persistentvolumes(pv)

  • persistentvolumeclaim (pvc)

你还须要知道的名称是alleventall是指全部已存在的资源,kubectl get all显示运行中的Pod、Service、Deployment以及ReplicaSet的关键信息。这个命令十分方便。

相似地,kubectl get events显示了event的历史记录。它像是Kubernetes级别的日志,而不是容器级别的日志。

若是你想要看到更多类型的kubectl资源,请查阅官方文档:

https://kubernetes.io/docs/reference/kubectl/overview/

如今让咱们来看看在资源上执行的常见行动。

最经常使用的kubectl命令

  • help—获取帮助

  • get— 显示有关一个或多个资源的信息

  • describe—显示关于一个或多个资源的详细信息

  • logs—显示容器日志

  • exec—进入容器中一个正在运行的进程

  • apply—建立或选择一个资源

  • delete—删除一个或多个资源

如今,让咱们来简单了解每一个命令。

help

在命令以后输入--help以获取该命令的帮助。如,kubectl get pods –help

get

kubectl get all显示了关于运行中的pod、service、deployment以及Replicaset的关键信息。这是检查事物状态的首选命令,你能够将get和单个对象一块儿使用,并添加--watch标志以实时观察更新。

describe

kubectl describe all显示大量与你的集群相关的详细信息,你也能够将describe与单个对象一块儿使用。这个命令在debug过程当中将大有用处。

logs

logs命令须要一个pod名称。当在多个pod中时,使用-c my-container标志来指定一个容器。使用--previous标志来获取再也不运行的容器信息。

exec

exec帮助你debug一个容器进程,它容许你经过带-it的伪终端在容器内执行进程。例如,要在my_pod中进入容器并运行Bash,请输入kubectl exec -it my_pod bash

apply

这一命令能够经过文件名或控制台输入,对资源进行配置。而且apply可以对集群资源进行声明式管理:若是资源不存在,apply将建立它;若是它存在,apply将更改它。此外,apply还可以添加Service到适用的资源或者经过添加Pod自动化弹性伸缩的Deployment。

请注意,你可使用create来建立一个Deployment而且使用expose建立一个Service。但相对来讲,不管对于文件自己仍是以后须要从新使用来讲,使用带有apply的YAML文件是更好选择。apply是建立和更新资源的“瑞士军刀”。

delete

kubectl delete pod my_pod这一命令可用于删除名称为my_pod的Pod。

要删除全部相同类型的资源,须要使用--all标志。例如,使用kubectl delete rs –all能够删除全部ReplicaSet。请注意,若是你尝试这一操做,那么要先删除Deployment,不然ReplicaSet将会从新启动。

如今你已经了解K8s的关键命令了,若是你还想查看更多的kubectl命令,请参阅:

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

相关文章
相关标签/搜索