作者:才云 Caicloud K8sMeetup社区
新出炉的 kubectl 备忘单,可以帮助大家了解有关 Kubernetes 命令行实用程序的有用命令 。
作者:Jessica Cherrykubectl 是 Kubernetes 的一个命令行管理工具,可用于 Kubernetes 上的应用部署和日常管理 。本文列举了 9 个常见的 kubectl 命令,并总结了一些使用技巧,希望可以帮助系统管理员简化管理工作 。
翻译:Bach(才云)
校对:星空下的文仔(才云)、bot(才云)
文章插图
K8sMeetup
使用 Kubectl 查询、创建、编辑和删除资源
对于刚开始使用命令行工具的开发者,最保险的方法是提出问题(读取操作),而不是发出命令(写入操作),所以从使用 get 命令开始是个不错的选择 。
Kubectl get使用 get 命令可以获取当前集群中可用的资源列表,包括:
- Namespace
- Pod
- Node
- Deployment
- Service
- ReplicaSet
$ kubectl get nodesNAMESTATUSROLESAGEVERSIONminikubeReadymaster9dv1.18.0
这些命令大多数还具有简写版本 。例如,要获取命名空间,可以使用 kubectl get namespaces 或者 kubectl get ns 命令:$ kubectl get nsNAMESTATUSAGEchartsActive8ddefaultActive9dkube-node-leaseActive9dkube-publicActive9dkube-systemActive9d
每个 get 命令都可以使用 –namespace 或 -n 参数指定对应的命名空间 。这点对于查看 kube-system 中的 Pods 会非常有用,因为这些 Pods 是 Kubernetes 自身运行所需的服务 。$ kubectl get pods -n kube-systemNAMEREADYSTATUSRESTARTSAGEcoreDNS-66bff467f8-mjptx1/1Running29dcoredns-66bff467f8-t2xcz1/1Running29detcd-minikube1/1Running19dkube-apiserver-minikube1/1Running19dkube-controller-manager-minikube1/1Running29dkube-proxy-rpc9d1/1Running19dkube-scheduler-minikube1/1Running29dstorage-provisioner1/1Running19d
Kubectl create【系统管理员不得不掌握的 9 个 kubectl 命令】可以查询资源后,下一步是创建资源 。我们可以用 kubectl 在集群中创建任何类型的资源,包括:- Service
- Cronjob
- Deployment
- Job
- Namespace(ns)
$ kubectl create ns hello-therenamespace/hello-there created
linux 里可以使用 cron 创建定时运行的任务 。同样的,这里我们使用 cronjob 每五秒钟返回一次“hello” 。???????
$ kubectl create cronjob my-cron --image=busybox --schedule="*/5 * * * *" -- echo hellocronjob.batch/my-namespaced-cron created
我们也可以使用 cronjob 的简写版本 cj 。???????
$ kubectl create cj my-existing-cron --image=busybox --schedule="*/15 * * * *" -- echo hellocronjob.batch/my-existing-cron created
Kubectl edit当我们创建好资源后,如果需要修改,该怎么办?这时候就需要 kubectl edit 命令了 。我们可以用这个命令编辑集群中的任何资源 。它会打开默认文本编辑器 。如果我们要编辑现有的 cron job,则可以执行:
$ kubectl edit cronjob/my-existing-cron
我们要编辑的配置如下:???????
# Please edit the object below. Lines beginning with a '#' will be ignored,# and an empty file will abort the edit. If an error occurs while saving this file will be# reopened with the relevant failures.#apiVersion: batch/v1beta1kind: CronJobmetadata:creationTimestamp: "2020-04-19T16:06:06Z"managedFields:- apiVersion: batch/v1beta1fieldsType: FieldsV1fieldsV1:f:spec:f:concurrencyPolicy: {}f:failedJobsHistoryLimit: {}f:jobTemplate:f:metadata:f:name: {}f:spec:f:template:f:spec:f:containers:k:{"name":"my-new-cron"}:.: {}f:command: {}f:image: {}f:imagePullPolicy: {}
原本调度间隔设置为 15 秒:文章插图
我们将其更改为每 25 秒:
文章插图
编写完成后,可以看到修改已生效 。
???????
$ kubectl edit cronjob/my-existing-croncronjob.batch/my-existing-cron edited
另外,我们可以通过 KUBE_EDITOR 命令来使用其他编辑器 。$ KUBE_EDITOR="nano" kubectl edit cronjob/my-existing-cron
Kubectl delete学会了以上命令后,下面我们将进行删除操作 。刚刚编辑的 cronjob 是两个 cronjobs 之一,现在我们删除整个资源 。
推荐阅读
- Linux系统常用的文件管理命令
- 简单实用的监控系统安装调试全过程,新手入门基础知识
- Win7系统一直提示盗版怎么办「系统天地」
- Linux系统中的文件类型有哪几种?它们分别有什么作用?
- 定速巡航怎么用?
- 得闲饮茶不舍昼夜,饮茶禁忌不得不看
- 黑客常说的Kali Linux 是什么?附Kali Linux 系统安装详细教程
- 微信的操作系统之路
- Windows操作系统中的休眠模式和睡眠模式有什么区别?
- 2020如何一分钟快速重装系统