速查表:学习 Kubernetes 的基本命令
创始人
2024-03-02 07:20:54
0

开始探索 kubectl、容器、吊舱等,接着下载我们的免费的速查表,这样你就可以随时掌握关键的命令了。

云计算主要是在 Kubernetes 上运行,Kubernetes 主要是在 Linux 上运行,而 Linux 在有熟练的系统管理员控制时运行得最好。无论你认为自己是云计算架构师还是只是一个保守的系统管理员,现代互联网都需要了解如何在容器中创建应用和服务,按需扩展,按需扩展以及如何明智地进行监视和管理。

进入勇敢的容器世界的第一步是学习 Kubernetes 和它的基本命令:kubectl

安装 kubectl

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

首先,你可以创建自己的 Kubernetes 集群,只需买三块树莓派板和相关外围设备(主要是电源)。当你获得了硬件,阅读 Chris Collins 的 使用树莓派构建 Kubernetes 集群,你就会拥有自己的安装有 kubectl 的集群。

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

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

当你你能访问一个集群,你就可以开始探索 kubectl 命令。

了解吊舱和容器

容器是一个轻量级的、部分的 Linux 系统,专门用于运行一个应用或服务。容器受到 内核命名空间 的限制,这使它能够访问其主机(运行容器的计算机)上的重要系统组件,同时防止它向其主机发送数据。容器以容器镜像(或简称 镜像)的形式保存,并由称为 ContainerfileDockerfile 的文本文件定义。

吊舱 Pod 是容器的正式集合,也是管理员扩展、监控和维护任何数量的容器的一种简单方法。

这些一起就像 Kubernetes 的“应用程序”。创建或获取容器镜像是你在云上运行服务的方式。

运行一个吊舱

容器镜像的两个可靠的仓库是 Docker Hub 和 Quay。你可以在仓库中搜索可用的镜像列表。通常有由项目提供的大型项目的官方镜像,也有专门的、定制的或特殊项目的社区镜像。最简单和最小的镜像之一是 BusyBox 容器,它提供了一个最小的 shell 环境和一些常用命令。

无论你是从仓库中拉取镜像,还是自己编写镜像定义并从 Git 仓库中拉取到集群中,其工作流程都是一样的。当你想在 Kubernetes 中启动一个吊舱时:

  1. Docker HubQuay 上找到一个你想使用的镜像
  2. 拉取镜像
  3. 创建一个吊舱
  4. 部署吊舱

以 BusyBox 容器为例子,你可以用一条命令完成最后三个步骤:

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

等待 kubectl 完成这个过程,最后你就有了一个正在运行的 BusyBox 实例。这个吊舱并没有暴露给其他人。它只是在后台安静地在你的集群上运行。

要看你的集群上有哪些吊舱在运行:

$ kubectl get pods --all-namespaces

你也可以获得关于吊舱部署的信息:

$ kubectl describe deployment my-busybox

与吊舱互动

容器通常包含使其自动化的配置文件。例如,将 Nginx httpd 服务器作为容器安装,应该不需要你的互动。你开始运行容器,它就会工作。对于你添加到吊舱中的第一个容器和之后的每个容器都是如此。

Kubernetes 模型的优点之一是,你可以根据需要扩展你的服务。如果你的网络服务被意外的流量淹没,你可以在你的云中启动一个相同的容器(使用 scaleautoscale 子命令),使你的服务处理传入请求的能力增加一倍。

即便如此,有时还是很高兴看到一些证明吊舱正在按预期运行的证据,或者能够对似乎无法正常运行的某些问题进行故障排除。为此,你可以在一个容器中运行任意的命令:

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

另外,你可以在你的容器中打开一个 shell,用管道将你的标准输入输入到其中,并将其输出到终端的标准输出:

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

暴露服务

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

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

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

不仅仅是吊舱

Kubernetes 提供了很多东西,而不仅仅是存储普通服务的镜像。除了作为一个 容器编排 系统,它还是一个云开发的平台。你可以编写和部署应用,管理和监控性能和流量,实施智能负载平衡策略等。

Kubernetes 是一个强大的系统,它已经迅速成为各种云的基础,最主要的是 开放混合云。今天就开始学习 Kubernetes 吧。随着你对 Kubernetes 的进一步了解,你会需要一些关于其主要概念和一般语法的快速提醒,所以 下载我们的 Kubernetes 速查表 并将它放在身边。


via: https://opensource.com/article/21/5/kubernetes-cheat-sheet

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

Linux运维相关认证有哪...
在 Linux 运维领域,拥有相关认证不仅能证明个人的专业能力,还...
2025-03-01 12:23:35
Agoda 将 macOS...
作者 | Aditya Kulkarni 译者 | 刘雅梦 策...
2025-02-18 16:48:44
不重复使用flexbox容...
下面是一个示例,展示了如何使用flexbox来创建一个复杂的布局。...
2025-01-12 13:00:37
不知道图像的方向时,将图像...
以下是一个使用Python的代码示例,该代码示例演示了如何将图像按...
2025-01-12 09:01:41
不支持来自cli容器的背书...
要解决“不支持来自cli容器的背书节点签署链码实例化”的问题,您可...
2025-01-11 23:00:34
不在交互模式下运行的容器将...
要解决这个问题,你可以在容器的启动命令中使用-i和-t选项来指定交...
2025-01-11 15:01:39

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...