通过新的速查表学习必要的 Kubernetes 命令

开始探索 kubectl、容器、Pod 等,然后下载我们的免费速查表,以便您随时掌握关键命令。
61 位读者喜欢这篇文章。
Blender Hotkey Cheat Sheet

Opensource.com

云在很大程度上运行在 Kubernetes 上,Kubernetes 在很大程度上运行在 Linux 上,而当 Linux 由熟练的系统管理员控制时,它才能最佳运行。无论您认为自己是云架构师还是仅仅是一位普通的系统管理员,现代互联网都需要了解如何在容器中创建、按需扩展以及明智地监控和管理应用程序和服务的用户。

进入勇敢的容器世界的第一步是学习 Kubernetes 及其最重要的命令:kubectl

安装 kubectl

kubectl 命令允许您在 Kubernetes 集群上运行命令。您可以使用 kubectl 来部署应用程序、查看日志、检查和管理集群资源,以及在出现问题时进行故障排除。关于 kubectl(以及整个 Kubernetes)的经典“问题”是,要针对集群运行命令,您首先需要一个集群。但是,有一些简单的解决方案。

首先,您可以创建自己的 Kubernetes 集群,成本仅为三个 Raspberry Pi 板和相关的外围设备(主要是电源)。一旦您获得了硬件,请阅读 Chris Collins 的使用 Raspberry Pi 构建 Kubernetes 集群,您将拥有自己的集群并安装了 kubectl

获取集群的另一种方法是使用 Minikube,这是一个 Kubernetes 的实践环境。在所有启动和运行集群的方法中,这是最简单的方法。

还有更多选择;例如,您可以参加 Kubernetes 课程以获得访问运行集群的实验室的权限,或者您可以在云上购买时间。如何获得集群访问权限并不重要,重要的是您拥有一个 Kubernetes 环境来练习。

一旦您有权访问集群,您就可以开始探索 kubectl 命令。

了解 Pod 和容器

容器是一个轻量级的、部分 Linux 系统,专门用于运行应用程序或服务。容器受到内核命名空间的约束,该命名空间使其能够访问其主机(运行容器的计算机)上的重要系统组件,同时防止其将数据发送到其主机之外。容器被保存为容器镜像(或简称镜像),并由名为 ContainerfilesDockerfiles 的文本文件定义。

Pod 是容器的正式集合,也是管理员扩展、监控和维护任意数量容器的简便方法。

总而言之,这些就像 Kubernetes 的“应用程序”。创建或获取容器镜像是您在云上运行服务的方式。

运行 Pod

容器镜像的两个可靠注册表是 Docker Hub 和 Quay。您可以搜索注册表网站以获取可用镜像列表。通常有大型项目的官方镜像(由项目提供),以及针对专门、定制或小众项目的社区镜像。最简单和最小的镜像之一是 BusyBox 容器,它提供了一个最小的 shell 环境和一些常用命令。

无论您是从注册表拉取镜像,还是编写自己的镜像定义并从 Git 仓库中将其拉取到您的集群中,工作流程都是相同的。当您想在 Kubernetes 中启动 Pod 时

  1. Docker HubQuay 上找到您想要使用的镜像
  2. 拉取镜像
  3. 创建 Pod
  4. 部署 Pod

如果您想使用 BusyBox 容器示例,您可以在单个命令中完成最后三个步骤

$ kubectl create deployment my-busybox --image=busybox

等待 kubectl 完成该过程,最后,您将拥有一个正在运行的 BusyBox 实例。Pod 不会暴露给外界。它只是在您的集群后台静默运行。

要查看集群上正在运行哪些 Pod

$ kubectl get pods --all-namespaces

您还可以获取有关 Pod 部署的信息

$ kubectl describe deployment my-busybox

与 Pod 交互

容器通常包含配置文件,这些文件使它们能够自动化运行。例如,将 Nginx httpd 服务器作为容器安装不应需要您的交互。您启动容器运行,它就可以正常工作。对于您添加到 Pod 的第一个容器以及之后的每个容器,情况都是如此。

Kubernetes 模型的优势之一是您可以根据需要扩展服务。如果您的 Web 服务因意外流量而不堪重负,您可以在云中启动一个相同的容器(使用 scaleautoscale 子命令),使您的服务处理传入请求的能力翻倍。

即便如此,有时很高兴看到一些证据表明 Pod 正在按预期运行,或者能够排除一些似乎无法正常工作的问题。为此,您可以在容器中运行任意命令

$ kubectl exec my-busybox -- echo "hello cloud"

或者,您可以在容器中打开一个 shell,将您的标准输入管道传输到其中,并将其输出传输到终端的 stdout

$ kubectl exec --stdin --tty my-busybox -- /bin/sh

暴露服务

默认情况下,Pod 在创建后不会暴露给外部世界,这让您有时间在上线之前进行测试和验证。假设您想在集群上安装和部署 Nginx Web 服务器作为 Pod 并使其可访问。与任何服务一样,您必须将 Pod 指向服务器上的端口。kubectl 子命令 expose 可以为您做到这一点

$ kubectl create deployment \
my-nginx --image=nginx
$ kubectl expose deployment \
my-nginx --type=LoadBalancer --port=8080

只要您的集群可以从互联网访问,您就可以通过打开浏览器并导航到您的公共 IP 地址来测试新 Web 服务器的可访问性。

不仅仅是 Pod

Kubernetes 提供的不仅仅是常见服务的库存镜像。除了作为容器编排系统之外,它还是一个云开发平台。您可以编写和部署应用程序、管理和监控性能和流量、实施智能负载均衡策略等等。

Kubernetes 是一个强大的系统,并且它已迅速成为各种云的基础,最重要的是开放混合云。立即开始学习 Kubernetes。当您更多地了解 Kubernetes 时,您将需要一些快速提醒,记住其主要概念和通用语法,因此下载我们的 Kubernetes 速查表并将其放在手边。

接下来阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 爱好者、自由文化倡导者、独立多媒体艺术家和 D&D 迷。他曾在电影和计算机行业工作,并且经常同时从事这两个行业。

评论已关闭。

© . All rights reserved.