Windows 和 Linux 下 Kubernetes 中的 12 个 Kubectl 命令示例
大家好,如果你正在使用 Kubernetes pod,比如部署你的应用程序,通过扩展到零个实例来启动和停止它们,而你只是想查看日志或想登录到 Kubernetes pod 本身,你必须知道如何使用 kubectl
命令 完成所有这些任务。 由于大多数公司,无论大小,都在使用 Kubernetes 在云上部署服务,因此 Java 开发人员和其他软件开发人员必须熟悉 kubectl 命令。 我们将 Java 微服务部署在 Kubernetes 上主要是因为 Kubernetes 可以在宕机时自动启动服务。 我们有不同的 Kubernetes 集群用于不同的环境,如 DEV、UAT 和 PRODUCTION,我经常使用 kubectl 命令在这些集群之间切换,以检查我们的 Java 服务的状态或与它们交互。
每天,我都使用 kubectl 命令,比如 get pods 来检查我的服务是否正在运行或获取服务来找出它正在监听的端口,尤其是当你的服务正在使用 Kubernetes 的入口功能时。 鉴于有很多人询问关于分享更多关于 Kubernetes 的信息,我们写了这篇关于每个 Java 开发人员都应该学习的 10 个基本 kubectl 命令的文章。
该列表包括用于检索节点、查找 pod 和检查服务的 kubectl
命令。 它还包括 kubernetes 命令,用于查看在 Kubernetes pod 上运行的服务日志。
如果我们在机器上安装了 kubectl
并在配置文件中设置了 kubectl 集群,所有这些命令不仅适用于 Linux,而且适用于 Windows
在 Windows 和 Linux 中使用 Kubernetes 的 12 个 kubectl 命令示例
大家在了解 Linux 中的 kubectl 命令示例时遇到过问题吗? 当你来到这里的时候,你一定已经过得很辛苦了。 大家应该了解这些命令的最新信息。 本文将帮助大家实现这一目标,因为下面列出了 Linux 中的 10 个 kubectl 命令示例。 仔细看看它们。
1. kubectl 命令检索节点的详细信息
节点代表在 Kubernetes 中充当工作机器的虚拟机或物理机。 它们由控制面板管理,包括运行服务所需的 pod 和容器。
了解这些节点的状态、准备情况和时间可以揭示你的部署的情况。 因为 Kubernetes 每个集群最多可以支持 5,000 个节点,所以这些节点来来去去的情况并不少见。
此外,使用工作节点和主节点的不同组合有助于优化系统性能。 了解哪些节点是哪些很有帮助。 使用此命令获取节点的整体状态:
$ kubectl get nodes
2. kubectl 命令列出命名空间中所有正在运行的 pod
Pod 是我们可以在 Kubernetes 中创建和管理的最小可部署计算单元。 一个 pod 包含集群中一个正在运行的进程,因此 pod 数量会随着工作负载的增加而急剧增加。
因此,当不再需要 Pod 或流程完成时,Pod 将被删除。 由于 Pod 非常重要,跟踪哪些 Pod 正在运行可以帮助我们更好地了解活动进程并可能深入了解活动服务。 输入此命令:
$ kubectl get pods --field-selector=status.phase=Running
3. kubectl命令了解你的集群服务
我们的集群包含节点、pod 和容器——最终是在基础架构上运行的服务。 集群中存在大量服务并不少见,随着时间的推移,这些服务可能会变得更难跟踪。
Kubernetes 本质上也是基于网络的,因为服务实例在其整个生命周期中都被分配了 IP 地址。 其他资源也是如此。 要显示我们的主节点和服务的端点信息(名称、资源类型等),请键入以下简单命令:
$ kubectl cluster-info
一般来说,很难记住 kubectl
命令,至少对我来说是这样,因为一年多来我一直在定期使用 kubectl,但如果不看笔记我就无法输入它们。 情况正在好转,但我认为还有很长的路要走。
此外,大多数 kubectl 命令都遵循一个模式,因此,如果你记得那个模式,那么记住和使用这些 kubectl 命令会稍微容易一些,这里是你应该知道的 kubectl 命令模式
4. kubectl 命令利用你的文件来配置 Kubernetes
虽然某些更改和设置仅通过命令即可在 Kubernetes 中轻松应用,但其他更改和设置则需要外部配置文件以供参考。 虽然可以改用 STDIN
方法,但 Kubernetes 倾向于建议我们对这些配置使用 JSON 或 YAML 文件。 要利用配置文件并更改我们的资源,请使用以下命令:
$ kubectl apply -f config.yaml
5. kubectl 命令请求或查看我们的应用程序或服务日志
日志中充满了信息,告诉我们服务如何运行、发生了哪些值得注意的事件以及这些事件发生的时间。 这些人类可读的详细信息列表可以帮助我们回顾性地调查(并在以后修复)任何未解决的部署问题。
服务通常会生成大量日志文件; 如果服务关闭或行为不稳定怎么办? 使用此命令帮助排除故障:
$ kubectl logs -f <service_name>
6. kubectl命令查看Kuberentes secrets
secrets
是帮助我们的服务(和 Kubernetes)在任何给定时间有效运行的密码、凭据、密钥等。 没有这些数据,就不可能进行正确的身份验证和授权。 管理这些 secrets 是必不可少的——如果我们不知道它们,这会很困难。 使用以下命令获取所有 Kubernetes secrets的列表:
$ kubectl get secrets
7. kubectl 命令用于跟踪事件
Kubernetes 事件会告诉我们资源何时发生状态更改、遇到错误或出于任何原因需要广播系统范围的消息。 这些对象提供了在 Kubernetes 中引起注意的任何显着活动的记录。 使用此快速命令调用所有基于资源的事件的列表:
$ kubectl get events
8. kubectl 命令使用新的 DaemonSets
Kubernetes DaemonSets 确保所有特定节点至少运行一个 pod 副本。 因此,DaemonSets 可以帮助控制整个系统的分布式进程。 然后可以在这些节点内运行边车服务(存储、日志收集、监控)以提高可观察性。
DaemonSet 非常高效。 我们可以利用 DaemonSets 来提供我们的 Kubernetes 本机监控解决方案。 使用此命令创建一个新的、命名为 DaemonSet:
$ kubectl create daemonset <daemonset_name>
9. 用于显示资源状态的 kubectl 命令
要详细显示任意数量资源的状态,请使用 kubectl describe
命令。 默认情况下,输出还列出未初始化的资源。
查看有关特定节点的详细信息:
$ kubectl describe nodes [node-name]
查看有关特定 pod 的详细信息:
$ kubectl describe pods [pod-name]
10. 用于应用和更新资源的 kubectl 命令
要应用或更新资源,请使用 kubectl apply
命令。 此操作中的源可以是文件或标准输入 (stdin)。
使用 [service-name].yaml
文件中包含的定义创建新服务:
$ kubectl apply -f [service-name].yaml
使用 [controller-name].yaml
文件中包含的定义创建一个新的复制控制器:
$ kubectl apply -f [controller-name].yaml
在目录中的任何 .yaml
、.yml
或 .json
文件中创建定义的对象:
$ kubectl apply -f [directory-name
11. kubectl 命令创建具有唯一名称的新命名空间
在组织 Kubernetes 资源时,我们已经谈到了名称空间的重要性。 在大规模管理 Kubernetes 时,资源成倍增加是很常见的——无论是通过日常活动,还是出于更好地维护系统的需要。
我们可能需要创建新的命名空间以保持 Kubernetes 整洁和配置良好。 使用此命令创建一个新的命名空间。 随意命名(只要该名称尚未被使用):
$ kubectl create ns hello-there
12. kubectl 命令在现有 pod 中运行命令
如果你想在 pod 中运行一个命令而不实际登录到 pod,那么你需要使用下面的 kubectl exec <pod_name> -- <commands>
命令。 在这里,我尝试使用 du -sh
命令检查 test-pod-0 pod 的 /u01/test 目录的大小,而无需登录到 test-pod-0 pod,如下所示。
$ kubectl exec test-pod-0 -- du -sh /u01/test/
935M /u01/test/
这就是 Linux 和 Kubernetes 中 kubectl
命令的 12 个示例。 了解这些命令肯定会让你在 Linux 和 Kubernetes 方面处于另一个层次,但不要担心,如果你安装了 kubectl
实用程序,所有这些命令也适用于 Windows。 你现在一定比其他不知道上述命令的高手高了一个档次。 一切尽在掌握,一切顺利。 好好利用它。
相关文章
在 Linux 中安装 MySQL 客户端
发布时间:2023/05/09 浏览次数:72 分类:MySQL
-
在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。
在 Linux 中更新 YUM
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。
在 Linux 中安装 Deb 文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。
Linux 中的 lsof 命令
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。
Linux 解决不能执行二进制文件问题
发布时间:2023/05/04 浏览次数:187 分类:操作系统
-
在本文中,我们将学习如何在 Linux 中执行二进制文件。 如果 Linux 无法执行二进制文件,我们还将学习如何解决错误。
Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
发布时间:2023/05/04 浏览次数:145 分类:操作系统
-
本文介绍如何在 Linux 中解决 mesg: ttyname failed: inappropriate ioctl for device 错误。在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -l 交互导致的。
Linux 中的 ps aux 命令
发布时间:2023/05/04 浏览次数:69 分类:操作系统
-
本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。
Linux 中的 NTP
发布时间:2023/05/04 浏览次数:137 分类:操作系统
-
本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。
在 Linux 中计算文件中的唯一行
发布时间:2023/05/04 浏览次数:70 分类:操作系统
-
计算文件中的唯一行是 Linux 中的一项常见任务,可以使用多种不同的工具和方法来执行此操作。使用 sort 和 uniq 命令计算文件中的唯一行数