用 kubectl 管理 Kubernetes 的 5 种有用方法
创始人
2024-03-02 08:16:56
0

学习 kubectl,提升你与 Kubernetes 的互动方式。

Ship captain sailing the Kubernetes seas

Kubernetes 可以帮你编排运行有大量容器的软件。Kubernetes 不仅提供工具来管理(或者说 编排)运行的容器,还帮助这些容器根据需要进行扩展。有了 Kubernetes 作为你的中央 控制面板 control panel (或称 控制平面 control plane ),你需要一种方式来管理 Kubernetes,而这项工作的工具就是 kubectl。kubectl 命令让你控制、维护、分析和排查 Kubernetes 集群的故障。与许多使用 ctl(“控制”的缩写)后缀的工具一样,如 systemctlsysctlkubectl 拥有大量的功能和任务权限,所以如果你正在运行 Kubernetes,你肯定会经常使用它。它是一个拥有众多选项的命令,所以下面是 kubectl 中简单易用的五个常见任务。

1、列出并描述资源

按照设计,容器往往会成倍增加。在某些条件下,它们可以快速增加。如果你只能通过 podman psdocker ps 来查看正在运行的容器,这可能会让你不知所措。通过 kubectl getkubectl describe,你可以列出正在运行的 吊舱 pod 以及它们正在处理的容器信息。更重要的是,你可以通过使用 --namespacename--selector等选项,只列出所需信息。

get 子命令不仅仅对吊舱和容器有用。它也有关于节点、命名空间、发布、服务和副本的信息。

2、创建资源

如果你只通过类似 OpenShift、OKD 或 Kubernetes 提供的 Web 用户界面(UI)创建过发布,但你想从 Linux 终端控制你的集群,那么可以使用 kubectl createkubectl create 命令并不只是实例化一个新的应用发布。Kubernetes 中还有很多其他组件可以创建,比如服务、配额和 计划任务

Kubernetes 中的计划任务可以创建一个临时的吊舱,用来在你选择的时间表上执行一些任务。它们并不难设置。下面是一个计划任务,让一个 BusyBox 镜像每分钟打印 “hello world”。

$ kubectl create cronjob \
    hello-world \
    --image=busybox \
    --schedule="*/1 * * * *" -- echo "hello world"

3、编辑文件

Kubernetes 中的对象都有相应的配置文件,但在文件系统中查找相应的文件较为麻烦。有了 kubectl edit,你可以把注意力放在对象上,而不是定义文件上。你可以通过 kubectl 找到并打开文件(通过 KUBE_EDITOR 环境变量,你可以设置成你喜欢的编辑器)。

$ KUBE_EDITOR=emacs \
    kubectl edit cronjob/hello-world

4、容器之间的传输文件

初次接触容器的人往往对无法直接访问的共享系统的概念感到困惑。他们可能会在容器引擎或 kubectl 中了解到 exec 选项,但当他们不能从容器中提取文件或将文件放入容器中时,容器仍然会显得不透明。使用 kubectl cp 命令,你可以把容器当做远程服务器,使主机和容器之间文件传输如 SSH 命令一样简单:

$ kubectl cp foo my-pod:/tmp

5、应用变更

对 Kubernetes 对象进行修改,可以通过 kubectl apply 命令完成。你所要做的就是将该命令指向一个配置文件:

$ kubectl apply -f ./mypod.json

类似于运行 Ansible 剧本或 Bash 脚本,apply 使得快速“导入”设置到运行中的 Kubernetes 实例很容易。例如,GitOps 工具 ArgoCD 由于 apply 子命令,安装起来出奇地简单:

$ kubectl create namespace argocd
$ kubectl apply -n argocd \
    -f https://raw.githubusercontent.com/argoproj/argo-cd/vx.y.z/manifests/install.yaml

使用 kubectl

Kubectl 是一个强大的工具,由于它是一个终端命令,它可以写成脚本,并能实现用众多 Web UI 无法实现的功能。学习 kubectl 是进一步了解 Kubernetes、容器、吊舱以及围绕这些重要的云计算创新技术的一个好方法。下载我们的 kubectl 速查表,以获得快速参考,其中包括命令示例,以帮助你学习,并在为你提供注意细节。


via: https://opensource.com/article/21/7/kubectl

作者:Alan Smithee 选题:lujun9972 译者:geekpi 校对:turbokernel

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

相关内容

【云原生】k8s集群命令行...
kubectl应用部署命令详解一、准备工作1.1、Replicat...
2025-06-01 06:37:18
部署后,Helm清单与ku...
在执行kubectl apply命令之前,使用helm templ...
2025-01-07 16:00:56
不使用Pod名称末尾的随机...
要执行kubectl进入一个容器,可以使用kubectl exec...
2024-12-29 05:31:27
bitnami/kubec...
在容器中使用root用户权限或添加用户组权限。方法1:使用root...
2024-12-19 19:31:55
本地kubectl与托管在...
要在本地kubectl与托管在vagrant上的远程minikub...
2024-11-29 21:01:37
aws-lambda-la...
如果您的AWS Lambda Layer中的kubectl配置错误...
2024-11-18 18:00:47

热门资讯

为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...