kubectl

Kubernetes 命令行工具 kubectl, 让你可以对 Kubernetes 集群运行命令。 你可以使用 kubectl 来部署应用、监测和管理集群资源以及查看日志。

有关更多信息,包括 kubectl 操作的完整列表,请参见 kubectl 参考文件

kubectl 可安装在各种 Linux 平台、 macOS 和 Windows 上。 在下面找到你喜欢的操作系统。

安装

在 Linux 系统中安装 kubectl

用以下命令下载最新发行版:

下载某个指定的版本:

在 Windows 上安装 kubectl

下载kubectl 1.18.4: https://dl.k8s.io/release/v1.18.4/bin/windows/amd64/kubectl.exe

查看版本号

Get,Describe

Nodes

Namespace

Deployments

DamonSet

StatefulSet

CronJobs

Jobs

Secret

Services

Endpoints

ServiceMonitors

Configmaps

Ingress

StorageClass、PV、PVC

ReplicaSet

Top

Pod

Flux/Helm/Git

Event

命令

Apply

Scale

Set

Rollout

Edit

Delete

Rollout

Config

Exec

Logs

CP

Patch

Taint

给节点 node1 增加一个 taint,它的 key 是 key,value 是 value,effect 是 NoSchedule。这表示只有拥有和这个 taint 相匹配的 toleration 的 pod 才能够被分配到 node1 这个节点。

cordon

将节点标记为 unschedulable, 之后再发创建pod,不会被调度到该节点,旧有的pod不会受到影响,仍正常对外提供服务

uncordon

drain

排水节点准备维护。

给定节点将被标记为 unschedulable,以防止新的 Pod 到达。 如果 API 服务器支持 https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ ,“drain”会驱逐 Pod。 否则,它将使用普通的 DELETE 来删除 pod。 “drain”会逐出或删除除镜像 pod(无法通过 API 服务器删除)之外的所有 pod。 如果存在守护程序集管理的 pod,如果没有 --ignore-daemonsets,drain 将不会继续,并且无论如何它都不会删除任何守护程序集管理的 pod,因为这些 pod 会立即被守护程序集控制器替换,从而忽略不可调度的标记 。 如果有任何 Pod 既不是mirror Pod,也不是由 replication controller, replica set, daemon set, stateful set, or job 管理的,则 Drain 不会删除任何 Pod,除非您使用 --force。 如果一个或多个 pod 的管理资源丢失,--force 还将允许继续删除。

“drain”等待优雅终止。 在命令完成之前,不应在机器上进行操作。

当您准备好将节点重新投入使用时,请使用 kubectl uncordon,这将使节点再次可调度。

API

其他

 

工具

自动补全

node_shell