写点什么

你一定会用到的 7 条 kubectl 命令

  • 2020-05-18
  • 本文字数:1664 字

    阅读完需:约 5 分钟

你一定会用到的7条kubectl命令

kubectl 是 Kubernetes 的命令行工具,人们通常通过它与 Kubernetes 进行交互。通过 kubectl 能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。我们在《使用Kubectl管理Kubernetes的全解教程》一文中详细介绍了在不同的操作系统中如何安装 kubectl 以及如何使用 RKE 和 Rancher 创建配置文件。在本文中,我们将介绍 kubectl 中最常使用的命令。


首先,让我们来看看 kubectl 是如何工作的:


  • 一个 kubectl 命令可以执行一个行动,如 get、create 或者 describe

  • 一个行动可以在一个资源上执行,如 Deployment

  • kubectl 命令遵循这一语法格式:


kubectl an_action a_resource a_resource_name –flags


在大部分情况下,名称和标志并不是必要的。例如,要获得关于现有 pod 的信息,你通常可以直接运行这一命令:kubectl get pods。


这里有一个小技巧:如果你不想每次都手动输入 kubectl,可以制作一个 Bash alias。设置 alias k=‘kubectl’,之后只需输入“k”即可代替 kubectl。


接下来,我们来看看最常见的 kubectl 资源类型及其缩写(括号内为缩写)。

最常见的 11 种 kubectl 资源类型

  • pods (po)

  • nodes(no)

  • deployments (deploy)

  • replicasets(rs)

  • daemonsets(ds)

  • statefulsets(sts)

  • jobs

  • cronjobs(cj)

  • services(svc)

  • persistentvolumes(pv)

  • persistentvolumeclaim (pvc)


你还需要知道的名称是 all 和 event。all 是指所有已存在的资源,kubectl get all 显示运行中的 Pod、Service、Deployment 以及 ReplicaSet 的关键信息。这个命令十分方便。


类似地,kubectl get events 显示了 event 的历史记录。它像是 Kubernetes 级别的日志,而不是容器级别的日志。


如果你想要看到更多类型的 kubectl 资源,请查阅官方文档:


https://kubernetes.io/docs/reference/kubectl/overview/


现在让我们来看看在资源上执行的常见行动。

最常用的 kubectl 命令

  • help—获取帮助

  • get— 显示有关一个或多个资源的信息

  • describe—显示关于一个或多个资源的详细信息

  • logs—显示容器日志

  • exec—进入容器中一个正在运行的进程

  • apply—创建或选择一个资源

  • delete—删除一个或多个资源


现在,让我们来简单了解每个命令。

help

在命令之后输入–help 以获取该命令的帮助。如,kubectl get pods –help

get

kubectl get all 显示了关于运行中的 pod、service、deployment 以及 Replicaset 的关键信息。这是检查事物状态的首选命令,你可以将 get 和单个对象一起使用,并添加–watch 标志以实时观察更新。

describe

kubectl describe all 显示大量与你的集群相关的详细信息,你也可以将 describe 与单个对象一起使用。这个命令在 debug 过程中将大有用处。

logs

logs 命令需要一个 pod 名称。当在多个 pod 中时,使用-c my-container 标志来指定一个容器。使用–previous 标志来获取不再运行的容器信息。

exec

exec 帮助你 debug 一个容器进程,它允许你通过带-it 的伪终端在容器内执行进程。例如,要在 my_pod 中进入容器并运行 Bash,请输入 kubectl exec -it my_pod bash。

apply

这一命令可以通过文件名或控制台输入,对资源进行配置。并且 apply 能够对集群资源进行声明式管理:如果资源不存在,apply 将创建它;如果它存在,apply 将更改它。此外,apply 还能够添加 Service 到适用的资源或者通过添加 Pod 自动化弹性伸缩的 Deployment。


请注意,你可以使用 create 来创建一个 Deployment 并且使用 expose 创建一个 Service。但相对来说,无论对于文件本身还是之后需要重新使用来说,使用带有 apply 的 YAML 文件是更好选择。apply 是创建和更新资源的“瑞士军刀”。

delete

kubectl delete pod my_pod 这一命令可用于删除名称为 my_pod 的 Pod。


要删除所有相同类型的资源,需要使用–all 标志。例如,使用 kubectl delete rs –all 可以删除所有 ReplicaSet。请注意,如果你尝试这一操作,那么要先删除 Deployment,否则 ReplicaSet 将会重新启动。


现在你已经了解 K8s 的关键命令了,如果你还想查看更多的 kubectl 命令,请参阅:


https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands


2020-05-18 18:014924

评论

发布
暂无评论
发现更多内容

osx安装mpd和ncmpcpp

Geek_pwdeic

macos

面试官:你是怎样进行react组件代码复用的

beifeng1996

React

2023-01-02:某天,小美在玩一款游戏,游戏开始时,有n台机器, 每台机器都有一个能量水平,分别为a1、a2、…、an, 小美每次操作可以选其中的一台机器,假设选的是第i台, 那小美可以将其变成

福大大架构师每日一题

算法 rust Solidity 福大大

朋友圈的架构设计

lory(侯保国)

Portraiture2023汉化中文版磨皮滤镜软件下载

茶色酒

Portraiture2023 Portraiture

前端二面vue面试题(边面边更)

bb_xiaxia1998

Vue

假如面试官问你Babel的原理该怎么回答

loveX001

JavaScript

面试官:说说React-SSR的原理

beifeng1996

React

vue组件通信6种方式总结(常问知识点)

bb_xiaxia1998

Vue

阿里前端二面必会react面试题总结

beifeng1996

React

滴滴前端一面高频vue面试题及答案

bb_xiaxia1998

Vue

外包学生管理系统架构设计

陈天境

架构训练营 模块六

张建闯

架构实战营

模块四-考试试卷存储方案

悟空

存储 考试

前端高频面试题集锦

loveX001

JavaScript

坚果的2022年终总结

坚果

年终总结 OpenHarmony

TorchDynamo初探:Python ByteCode的动态修改

OneFlow

人工智能 深度学习 TorchDynamo

架构实战营模块四作业

张Dave

能够释放大量Mac内存空间的方法教程

茶色酒

CleanMyMac X CleanMyMac X2023

CorelDRAW2023最新绿色免费版矢量图形处理软件

茶色酒

CorelDraw2023 CorelDraw

勿以善小而不为,让AI成为温柔的力量

wood

AI 烟火气 温柔

vivo 服务端监控体系建设实践

vivo互联网技术

云原生 监控 可用性 可观测

vue组件通信方式有哪些?

bb_xiaxia1998

Vue

CleanMyMacX2023永久版Mac系统清理软件

茶色酒

CleanMyMac CleanMyMac X CleanMyMac X2023

《我有一个朋友》首集上线,曹操出行CEO讲述热爱经历

极客天地

那些高级前端是如何回答面试题的

loveX001

JavaScript

令人头秃的js隐式转换面试题,你能做对吗

loveX001

JavaScript

字节前端必会react面试题

beifeng1996

React

常见的Web安全攻击

穿过生命散发芬芳

HTTP 1月月更

LinearLayout(线性布局)

芯动大师

Android Studio android布局 LinearLayout weight属性

Java高手速成│实战:应用数据库和GUI开发产品销售管理软件(1)

TiAmo

JDBC GUI 数据库·

你一定会用到的7条kubectl命令_文化 & 方法_Rancher_InfoQ精选文章