用 Kubectl 管理 Kubernetes 的五种有用方法

系统 Linux
Kubectl 是一个强大的工具,由于它是一个终端命令,它可以写成脚本,并能实现用众多 Web UI 无法实现的功能。

[[417383]]

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

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

1、列出并描述资源

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

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

2、创建资源

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

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

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

3、编辑文件

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

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

4、容器之间的传输文件

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

  1. $ kubectl cp foo my-pod:/tmp

5、应用变更

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

  1. $ kubectl apply -f ./mypod.json

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

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

使用 kubectl 

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

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2020-09-25 08:00:57

Kubernetes

2022-11-10 14:33:40

Kubernetes容器

2020-12-03 14:40:10

云管理

2020-08-06 13:19:10

IBM多云管理

2022-11-28 11:35:33

Kubernetes开源工具

2023-03-27 18:32:30

2023-03-27 21:08:30

2020-11-16 15:51:54

Kubernetes

2023-06-09 07:45:29

Kuberneteskubectl

2023-06-26 20:33:47

开源代码

2009-06-18 09:03:58

Unix关机

2022-12-29 08:46:15

IT采购投资

2021-02-07 08:00:00

Kubernetes集群云原生

2022-12-07 11:24:51

首席信息官IT

2009-07-03 17:48:24

JSP页面跳转

2009-10-22 16:38:09

Oracle用户

2010-11-15 11:15:55

2022-11-29 10:33:15

Kubectl命令pod

2020-02-25 21:32:59

TmuxkubectlKubernetes

2018-04-04 15:03:14

点赞
收藏

51CTO技术栈公众号