iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Kubernetes管理员必备的kubectl命令有哪些
  • 768
分享到

Kubernetes管理员必备的kubectl命令有哪些

2023-06-04 11:06:37 768人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关kubernetes管理员必备的kubectl命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Kubernetes是当今基础架构的主导技术,这意味着系统管理员需要熟悉其管理。多年

这篇文章给大家分享的是有关kubernetes管理员必备的kubectl命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Kubernetes是当今基础架构的主导技术,这意味着系统管理员需要熟悉其管理。多年来,笔者一直坚持每天管理Kubernetes集群,并且总结了一些技巧,希望可以帮助其他人简化他们的管理。

笔者在这里分享9个有关kubectl的命令,主要说明笔者每天用来管理Kubernetes集群的正常运行的命令。笔者将它们分为几部分,以帮助读者确定是否应将它们用于某些任务。笔者还以长号和简写形式包含了一些标志,以帮助读者更快地使用它们。

使用Kubectl获取(get)、创建(create)、编辑(edit)和删除(delete)资源

从命令行实用程序开始,最安全的地方是提问(读操作)而不是发出命令(写操作)。有用的get命令可以使您滚动起来。

命令1:Kubectl get

使用get可以获取集群中当前拥有的资源列表。您可以获得的资源类型包括:

Namespace

Pod

node

Deployment

Service

ReplicaSets

每个选项都提供有关群集中可用资源的详细信息。例如,这是get nodes命令的输出,该命令提供了Kubernetes的用法和状态版本。

$kubectl get nodesNAME      STATUS   ROLES        AGE   VERSioNminikube  Ready        master   9d        v1.18.0

这些命令大多数都有缩减版。要获取命名空间,可以运行kubectl get namespaces或kubectl get ns:

$ kubectl get nsNAME              STATUS   AGEcharts            Active8ddefaultActive9dkube-node-lease   Active9dkube-public       Active9dkube-system       Active9d

每个get命令都可以使用–namespace或-n标志集中于给定的命名空间。当您想要查看kube-system中的Pod时,笔者会特别提供帮助,这是运行Kubernetes本身所需的服务。

$ kubectl get pods -n kube-systemNAME                               READY   STATUS    RESTARTS   AGEcoredns-66bff467f8-mjptx1/1Running29dcoredns-66bff467f8-t2xcz1/1Running29detcd-minikube1/1Running19dkube-apiserver-minikube1/1Running19dkube-controller-manager-minikube1/1Running29dkube-proxy-rpc9d1/1Running19dkube-scheduler-minikube1/1Running29dstorage-provisioner1/1Running19d

命令2:Kubectl create

使用kubectl,您几乎可以在集群中创建任何类型的资源。其中一些资源确实需要配置文件和命名空间来设置资源以及名称。您可以创建的资源包括:

service

cronjob

deployment

job

namespace (ns)

因此,创建create namespace需要另一个参数来命名命名空间。

$kubectl create ns hello-therenamespace/hello-there created

我们也可以使用cron命令来连续创建运行作业,就像许多linux朋友会熟悉的那样。在这里,我们使用cronjob命令每五秒钟回显一次“ hello”。

$kubectl create cronjob my-cron --image=busybox --schedule="*/5 * * * *"--echohellocronjob.batch/my-namespaced-cron created

您也可以使用简化版的命令cj而不是cronjob。

$kubectl create cj my-existing-cron --image=busybox --schedule="*/15 * * * *"--echohellocronjob.batch/my-existing-cron created

命令3:Kubectl edit

那么,当笔者们创建某些东西并想要更新时会发生什么呢?这就是kubectl edit的作用。

运行此命令时,可以编辑集群中的任何资源。它将打开您的默认文本编辑器。因此,我们将编辑现有的cronjob,我们可以运行:

$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/v1beta1    fieldsType: FieldsV1    fieldsV1:      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秒一次:

Kubernetes管理员必备的kubectl命令有哪些

我们将其更改为每25秒写入一次资源:

Kubernetes管理员必备的kubectl命令有哪些

编写完成后,我们可以看到它已更改。

$ kubectl edit cronjob/my-existing-croncronjob.batch/my-existing-cron edited

如果要使用其他编辑器,可以使用此KUBE_EDITOR语法添加来覆盖它。

$ KUBE_EDITOR="nano"kubectl edit cronjob/my-existing-cron

命令4:Kubectl delete

到目前为止,除了将其完全删除之外,我们已经做了所有事情,这就是我们下一步要做的。我们刚刚编辑的cronjob是两个cronjobs之一,因此现在我们将删除整个资源。

$ kubectldeletecronjobmy-existing-croncronjob.batch"my-existing-cron"deleted

作为警告,切勿删除你所不知道的所有相关信息的内容。一旦资源被删除,就无法恢复。您将不得不重新创建它,因此在运行此命令之前请三思。

命令5:Kubectl apply

之前,笔者提到过某些命令将需要配置文件。该apply命令允许您在集群内通过文件应用配置资源。这也可以通过命令行standard in (STDIN)来完成此操作,但是建议始终是按文件进行。

笔者认为该命令有些高级,因为您需要知道如何使用群集以及要应用哪种配置文件。对于此示例,笔者曾经使用来自Helm的基于角色访问控制(RBAC)配置用于一个服务帐户。

$kubectl apply -f commands.yamlserviceaccount/tiller createdclusterrolebinding.rbac.authorization.k8s.io/tiller created

您可以应用几乎任何所需的配置,但是始终需要确定要应用的配置,否则可能会看到意想不到的结果。

使用Kubectl对Kubernetes进行故障排除

命令6:Kubectl describe

Describe显示您正在查看的资源的详细信息。最常见的用例是描述一个pod或节点,以检查事件中是否有错误,或者资源是否太有限而无法使用。

您可以描述的资源包括:

Nodes

Pods

Services

Deployments

Replica sets

Cronjobs

在此示例中,我们可以从前面的示例中describe集群中当前的cronjob。

$ kubectldescribecronjob my-cron片段:Name:                         my-cronNamespace:defaultLabels:                       Annotations:                  Schedule:                     */5* * * *ConcurrencyPolicy:AllowSuspend:FalseSuccessful Job HistoryLimit:3FailedJob HistoryLimit:1StartingDeadlineSeconds:    Selector:                     <unset>Parallelism:                  <unset>Completions:                  <unset>PodTemplate:Labels:   Containers:   my-cron:    Image:     busyboxPort:      Host Port: 

命令7:Kubectl logs

虽然describe命令提供pod内应用程序发生的事件,但logs提供了与pod相关的Kubernetes内发生的事件详细信息。理解这一区别可以帮助您解决应用程序内部和Kubernetes内部发生的问题,因为它们都是不被允许发生的相同问题。

$kubectl logs cherry-chart-88d49478c-dmcfv -n charts

片段:

172.17.0.1- - [19/Apr/2020:16:01:15+0000]"GET / Http/1.1"200612"-""kube-probe/1.18""-"172.17.0.1- - [19/Apr/2020:16:01:20+0000]"GET / HTTP/1.1"200612"-""kube-probe/1.18""-"172.17.0.1- - [19/Apr/2020:16:01:25+0000]"GET / HTTP/1.1"200612"-""kube-probe/1.18""-"172.17.0.1- - [19/Apr/2020:16:01:30+0000]"GET / HTTP/1.1"200612"-""kube-probe/1.18""-"172.17.0.1- - [19/Apr/2020:16:01:35+0000]"GET / HTTP/1.1"200612"-""kube-probe/1.18""-"172.17.0.1- - [19/Apr/2020:16:01:40+0000]"GET / HTTP/1.1"200612"-""kube-probe/1.18""-"172.17.0.1- - [19/Apr/2020:16:01:45+0000]"GET / HTTP/1.1"200612"-""kube-probe/1.18""-"172.17.0.1- - [19/Apr/2020:16:01:50+0000]"GET / HTTP/1.1"200612"-""kube-probe/1.18""-"172.17.0.1- - [19/Apr/2020:16:01:55+0000]"GET / HTTP/1.1"200612"-""kube-probe/1.18""-"

您还可以通过使用grep命令来消除额外的噪音或寻找其他事件。该kube-probe可能有噪音,让我们用grep命令过滤出来。

$ kubectl logs cherry-chart-88d49478c-dmcfv -n charts |grep-vie kube-probe127.0.0.1- - [10/Apr /2020:23:01:55+0000]"GET / HTTP/1.1"200612"-""Mozilla/5.0 (X11; ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0"“-”

由于某些部署在一个pod中有多个容器,您还可以对日志使用-c<container name>,从而只在一个特定容器中查找日志。

命令8:Kubectl exec

Docker exec命令非常相似,您也可以执行到容器中以直接对应用程序进行故障排除。当Pod中的日志没有为您提供可能要调试的问题的答案时,此功能很有用。使用exec命令时,该行的末尾必须始终提供您在pod内使用的shell

$ kubectl exec -it cherry-chart-88d49478c-dmcfv -n charts --/bin/bashroot@cherry-chart-88d49478c-dmcfv:/#

命令9:Kubectl cp

该命令用于在容器之间复制文件和目录,就像Linux cp命令一样。它不是您每天都会使用的东西,但是它是笔者个人最喜欢的,用于在自动化失败时在紧急情况下提取或还原备份。

这是将本地文件复制到容器的示例。语法遵循kubectl cp <filename> <namespace/podname:/path/tofile> 格式:

$ kubectl cp commands_copy.txt charts/cherry-chart-88d49478c-dmcfv:commands.txt$ kubectl exec -it cherry-chart-88d49478c-dmcfv -n charts --/bin/bashroot@cherry-chart-88d49478c-dmcfv:/# lsbin  boot  commands.txt  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

这是另一个示例,但是这次是从容器中将文件提取我们的本地计算机上。语法为kubectl cp 格式:

$kubectl cp charts/cherry-chart-88d49478c-dmcfv:commands.txt commands_copy.txt$lscommands_copy.txt

感谢各位的阅读!关于“Kubernetes管理员必备的kubectl命令有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Kubernetes管理员必备的kubectl命令有哪些

本文链接: https://www.lsjlt.com/news/237750.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Kubernetes管理员必备的kubectl命令有哪些
    这篇文章给大家分享的是有关Kubernetes管理员必备的kubectl命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Kubernetes是当今基础架构的主导技术,这意味着系统管理员需要熟悉其管理。多年...
    99+
    2023-06-04
  • Java程序员必备的Linux命令有哪些
    这篇文章的内容主要围绕Java程序员必备的Linux命令有哪些进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!java程序猿在开发时并不使用Linux...
    99+
    2023-06-28
  • 新手必备的Linux命令有哪些
    这篇文章主要介绍“新手必备的Linux命令有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“新手必备的Linux命令有哪些”文章能帮助大家解决问题。如何寻求帮助?在 Linux 下遇到问题,最重要...
    99+
    2023-06-28
  • Linux新手必备的命令有哪些
    这篇文章主要为大家展示了“Linux新手必备的命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux新手必备的命令有哪些”这篇文章吧。1. ls命令ls命令是列出目录内容(List ...
    99+
    2023-06-16
  • MySQL常用必备命令有哪些
    这篇文章主要介绍了MySQL常用必备命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.导出test_db数据库命令:mysqldump -u 用户名 -p 数据库名...
    99+
    2023-06-16
  • Linux系统管理员常用命令有哪些
    这篇文章给大家分享的是有关Linux系统管理员常用命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。系统管理员(sysadmins)负责日常维护生产系统和服务。其中一个关键任务就是保证功能性服务能24小时工...
    99+
    2023-06-27
  • Linux初学者必备的命令有哪些
    这篇文章主要为大家展示了“Linux初学者必备的命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux初学者必备的命令有哪些”这篇文章吧。对于Linux初学者来说熟练掌握Linux基...
    99+
    2023-06-27
  • Linux系统必备的SQL命令有哪些
    这篇文章主要介绍“Linux系统必备的SQL命令有哪些”,在日常操作中,相信很多人在Linux系统必备的SQL命令有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统必备的SQL命令有哪些”的疑...
    99+
    2023-06-28
  • 开发者必备Docker命令有哪些
    小编给大家分享一下开发者必备Docker命令有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Docker 简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到...
    99+
    2023-06-22
  • 作为程序员必会的Linux命令有哪些
    这篇文章给大家分享的是有关作为程序员必会的Linux命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.查找文件命令:find / -name name.txt 根据名称查找/目录下的name.txt文件...
    99+
    2023-06-16
  • 运维必备Linux的常用命令有哪些
    本篇内容介绍了“运维必备Linux的常用命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • redis管理命令有哪些
    这篇文章主要介绍“redis管理命令有哪些”,在日常操作中,相信很多人在redis管理命令有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis管理命令有哪些”的疑惑...
    99+
    2024-04-02
  • 适用于Linux管理员和开发人员的git命令有哪些
    这篇文章主要为大家展示了“适用于Linux管理员和开发人员的git命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“适用于Linux管理员和开发人员的git命令有哪些”这篇文章吧。Git是...
    99+
    2023-06-16
  • 开发人员和管理员应该掌握的Nginx命令有哪些
    这篇文章将为大家详细讲解有关开发人员和管理员应该掌握的Nginx命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。17. 找到NginxPIDPID或进程ID是唯一的数字,用于区分Linux和类Un...
    99+
    2023-06-16
  • HBase管理命令有哪些
    这篇文章将为大家详细讲解有关HBase管理命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HBase管理命令:Help ‘close_region’close_region ‘t3..*'...
    99+
    2023-06-03
  • 必学的Linux命令有哪些
    这篇文章给大家分享的是有关必学的Linux命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。umount1.作用umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的...
    99+
    2023-06-16
  • Linux的几个新手必备的命令有哪些呢
    Linux的几个新手必备的命令有哪些呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux的几个新手必备的命令1)man在使用Linux中,肯定要会使用的第一个命令就是ma...
    99+
    2023-06-05
  • 必学Linux命令有哪些
    这篇文章主要介绍了必学Linux命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。适合Linux初学者的Linux基本命令:man手册页(man)命令就像软件文档一样,...
    99+
    2023-06-15
  • admin.vbs 以管理员身份运行程序的vbs命令有哪些
    小编给大家分享一下admin.vbs 以管理员身份运行程序的vbs命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、以管理员身份运行程序的命令admin...
    99+
    2023-06-08
  • 写批处理必备的命令参数使用技巧有哪些
    小编给大家分享一下写批处理必备的命令参数使用技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 首先批处理文件是一个文本文件,这个文件的每一行都是...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作