K8S(六)—kubectl

这里写目录标题

  • Kubectl
    • delete
    • get
    • explain
    • apply

Kubectl

kubectl 是 Kubernetes 命令行工具,用于与 Kubernetes 集群进行交互、管理资源、执行操作以及获取有关集群和应用程序的信息。以下是一些常用的 kubectl 命令及其详细介绍:

  1. 基本信息和状态查询命令

    • kubectl version:显示 Kubernetes 客户端和服务器的版本信息。
    • kubectl cluster-info:显示集群的基本信息,如控制平面的地址和端口。
    • kubectl get nodes:获取集群中的节点列表。
    • kubectl get pods:获取所有命名空间中的 Pod 列表。
    • kubectl get services:获取所有命名空间中的服务列表。
  2. 资源管理命令

    • kubectl create:创建资源对象,如 Pod、Service、Deployment 等。
    • kubectl apply:将配置文件中的资源对象应用到集群。
    • kubectl delete:删除资源对象。
    • kubectl scale:调整副本数。
    • kubectl expose:将 Deployment 或 Replication Controller 暴露为 Service。
  3. 资源查询和描述命令

    • kubectl describe:显示资源对象的详细信息,如 Pod、Service、Node 等。
    • kubectl logs:查看容器的日志。
    • kubectl get events:获取事件列表,显示有关集群中发生的事件的信息。
  4. 应用程序管理命令

    • kubectl exec:在容器中执行命令。
    • kubectl port-forward:将本地端口与容器端口进行转发。
    • kubectl run:创建一个 Pod。
  5. 命名空间命令

    • kubectl create namespace:创建命名空间。
    • kubectl get namespaces:获取命名空间列表。
  6. 配置和上下文命令

    • kubectl config use-context:切换到不同的集群和上下文。
    • kubectl config current-context:显示当前上下文。
    • kubectl config view:查看和管理配置文件。
  7. 升级和回滚命令

    • kubectl rollout status:监控 Deployment、DaemonSet 或 StatefulSet 升级的状态。
    • kubectl rollout history:查看资源对象的版本历史。
    • kubectl rollout undo:回滚到以前的版本。
  8. 插件和其他命令

    • kubectl plugin:管理 kubectl 插件。
    • kubectl apply -f:应用配置文件。
    • kubectl get -o yaml:获取资源对象的 YAML 格式配置。

以上只是一些常用的 kubectl 命令,Kubernetes 提供了更多功能丰富的命令用于集群管理和应用程序部署。您可以通过运行 kubectl --help 查看完整的命令列表以及每个命令的选项和说明。

delete

kubectl delete 是 Kubernetes 命令行工具中的一个子命令,用于从 Kubernetes 集群中删除资源对象。使用 kubectl delete 命令可以删除 Pod、Deployment、Service、Namespace 等各种 Kubernetes 资源。以下是 kubectl delete 命令的详细介绍:

基本用法

kubectl delete RESOURCE_TYPE RESOURCE_NAME
  • RESOURCE_TYPE: 要删除的资源类型,如 pod、deployment、service 等。
  • RESOURCE_NAME: 要删除的资源对象的名称。

删除指定命名空间中的资源

可以使用 -n--namespace 参数指定要删除资源所在的命名空间。如果不指定命名空间,则默认为当前命名空间。

kubectl delete RESOURCE_TYPE RESOURCE_NAME -n NAMESPACE

删除所有资源

如果要删除一个命名空间中的所有资源,可以使用 --all 参数。

kubectl delete RESOURCE_TYPE --all -n NAMESPACE

强制删除

默认情况下,kubectl delete 命令将会尝试优雅地删除资源,即先发送一个删除信号给资源对象,然后等待资源对象自行终止。如果资源对象没有正确终止,可以添加 --grace-period=0 参数来立即删除资源。

kubectl delete RESOURCE_TYPE RESOURCE_NAME --grace-period=0

删除符合条件的资源

可以使用 --selector 参数删除符合特定标签选择器的资源。

kubectl delete RESOURCE_TYPE --selector=LABEL_SELECTOR

删除指定文件中定义的资源

可以使用 -f--filename 参数指定一个 YAML 或 JSON 文件,其中定义了要删除的资源对象的信息。

kubectl delete -f FILENAME

常见的 RESOURCE_TYPE 类型

以下是一些常见的 RESOURCE_TYPE 类型:

  • pod: 删除一个或多个 Pod。
  • deployment: 删除一个或多个 Deployment。
  • service: 删除一个或多个 Service。
  • namespace: 删除一个命名空间及其所有资源。
  • configmap: 删除一个或多个 ConfigMap。
  • secret: 删除一个或多个 Secret。
  • ingress: 删除一个或多个 Ingress。

请注意,在使用 kubectl delete 命令时,请谨慎操作,以免意外删除重要的资源。确保在删除前确认您要删除的资源和命名空间。

kubectl delete pod k8s-nginx2-7d9f66c959-j2dqw

删除其中一个,查看是否自动启动其他容器填充

[root@k8smaster1 ~]# kubectl get rs
NAME                    DESIRED   CURRENT   READY   AGE
k8s-nginx-75f95db655    3         3         1       20m
k8s-nginx2-7d9f66c959   3         3         3       8m11s
[root@k8smaster1 ~]# kubectl get pod -o wide
NAME                          READY   STATUS    RESTARTS   AGE     IP               NODE       NOMINATED NODE   READINESS GATES
...
k8s-nginx2-7d9f66c959-sqglm   1/1     Running   0          8m18s   10.244.185.198   k8snode2   <none>           <none>
k8s-nginx2-7d9f66c959-v5gfm   1/1     Running   0          32s     10.244.185.199   k8snode2   <none>           <none>
k8s-nginx2-7d9f66c959-xnjv7   1/1     Running   0          8m18s   10.244.185.196   k8snode2   <none>           <none>

get

explain

kubectl explain 是一个用于查看 Kubernetes 资源对象及其字段的详细说明的命令。它可以帮助您了解 Kubernetes API 中每个资源类型的属性和配置选项。以下是对 kubectl explain 命令的详细解析:

命令格式:

kubectl explain <资源类型> [选项]

参数说明:

  • <资源类型>:指定要查看的资源类型,如 poddeploymentservice 等。
  • [选项]:可选参数,用于指定要查看的属性或字段。

使用示例:

  1. 查看资源类型的基本信息:

    kubectl explain <资源类型>
    
  2. 查看资源类型的某个字段的详细信息:

    kubectl explain <资源类型>.<字段>
    
  3. 查看嵌套字段的详细信息:

    kubectl explain <资源类型>.<嵌套字段>.<子嵌套字段>
    

示例解释:

假设您想要了解 Pod 的 spec 字段的详细信息,可以执行以下命令:

kubectl explain pod.spec

这将显示 Pod 资源类型的 spec 字段的详细信息,包括该字段的类型、描述、可能的值范围等。

如果您想要查看嵌套字段,例如查看 Podspec.containers 字段的详细信息,可以执行以下命令:

kubectl explain pod.spec.containers

这将显示 Pod 资源类型中的 spec 字段的 containers 字段的详细信息,以及它包含的属性和值的描述。

通过使用 kubectl explain 命令,您可以在命令行中方便地查看 Kubernetes 资源对象的详细说明,从而更好地了解如何配置和使用这些资源。这对于编写和管理 Kubernetes 配置文件以及进行资源操作非常有帮助。

[root@k8smaster ~]# kubectl explain ResourceQuota
[root@k8smaster ~]# kubectl explain ResourceQuota.metadata

apply

kubectl apply 是用于将 Kubernetes 资源配置应用到集群中的命令。它可以用来创建、更新或删除资源,并且支持声明式配置,使得您可以通过修改配置文件来管理资源状态。以下是对 kubectl apply 命令的详细解析:

命令格式:

kubectl apply -f <配置文件> [选项]

参数说明:

  • -f <配置文件>:指定要应用的资源配置文件,可以是 YAML 或 JSON 格式。
  • [选项]:可选参数,用于指定命名空间、输出格式等。

使用示例:

  1. 创建或更新资源:

    kubectl apply -f <配置文件>
    
  2. 删除资源:

    kubectl delete -f <配置文件>
    

特点和功能:

  • 声明式配置kubectl apply 支持声明式配置,即您可以通过修改配置文件来定义所需的资源状态,而不必手动执行多个命令来达到目标状态。

  • 幂等性kubectl apply 是幂等的,这意味着无论您执行多少次相同的应用操作,最终结果都会是一样的,而不会引起冲突或错误。

  • 创建与更新:如果资源不存在,kubectl apply 会创建它;如果资源已存在,但与配置文件不匹配,它会更新资源的配置以符合文件中的定义。

  • 局部更新kubectl apply 可以部分更新资源,只更新配置文件中指定的字段,而不影响其他字段的值。

  • 命名空间支持:您可以通过 -n--namespace 选项指定要应用资源的命名空间。

  • 多文件应用:您可以一次性应用多个配置文件,kubectl apply -f <文件1> -f <文件2>

  • 输出格式:可以使用 --dry-run-o--output 选项指定输出的格式,如 jsonyaml 等。

使用示例解释:

假设您有一个名为 deployment.yaml 的配置文件,其中定义了一个 Deployment 资源。通过以下命令,您可以将此配置文件中定义的 Deployment 应用到集群中:

kubectl apply -f deployment.yaml

如果此 Deployment 已存在,但是配置文件中的定义与现有资源不同,kubectl apply 将会更新现有的 Deployment 以匹配配置文件中的定义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/227313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序 如何做性能优化?

小程序的性能优化可以分为两个方面&#xff1a;前端性能优化和后端性能优化。 前端性能优化&#xff1a; 减少HTTP请求&#xff1a;减少小程序页面中的HTTP请求&#xff0c;可以大大提高页面加载速度。您可以通过使用图片精灵、合并脚本和样式表等技术来减少HTTP请求。 图片优…

《Kotlin核心编程》笔记:特设多态、运算符重载和扩展函数

多态的不同形式 Kotlin 的扩展函数其实只是多态的表现形式之一。 子类型多态 继承父类后&#xff0c;用子类实例使用父类的方法&#xff0c;例如&#xff1a; 然后我们就可以使用父类DatabaseHelper的所有方法。这种用子类型替换超类型实例的行为&#xff0c;就是我们通常说…

【数据结构】双链表的定义和操作

目录 1.双链表的定义 2.双链表的创建和初始化 3.双链表的插入节点操作 4.双链表的删除节点操作 5.双链表的查找节点操作 6.双链表的更新节点操作 7.完整代码 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助…

WPF-UI HandyControl 控件简单实战

文章目录 前言UserControl简单使用新建项目直接新建项目初始化UserControlGeometry:矢量图形额外Icon导入最优解决方案 按钮Button切换按钮ToggleButton默认按钮图片可切换按钮加载按钮切换按钮 单选按钮和复选按钮没有太大特点&#xff0c;就不展开写了总结 DataGrid数据表格G…

网络安全-等保测评相关知识

什么是等保测评&#xff1f; 信息安全等级保护&#xff0c;是对信息和信息载体按照重要性等级分级别进行保护的一种工作&#xff0c;其目的就是对信息系统安全防护体系能力的分析与确认&#xff0c;发现存在的安全隐患&#xff0c;帮助运营使用单位认识不足, 及时改进&#xff…

详细了解stm32---按键

提示&#xff1a;永远支持知识文档免费开源&#xff0c;喜欢的朋友们&#xff0c;点个关注吧&#xff01;蟹蟹&#xff01; 目录 一、了解按键 二、stm32f103按键分析 三、按键应用 一、了解按键 同学们&#xff0c;又见面了o(*&#xffe3;▽&#xffe3;*)ブ&#xff0c;最…

vue制作简易日历

你可以使用Vue.js来制作一个简易日历。&#xff1a; <!DOCTYPE html> <html> <head><title>Vue简易日历</title><script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><style>table {border-colla…

C++ Qt开发:Tab与Tree组件实现分页菜单

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍tabWidget选择夹组件与TreeWidget树形选择组件…

43 贪心算法 -第K个排列

题 目 描 述 n 个 字 共 有 n &#xff01; 种 排 列 。 给 定 参 数 n &#xff0c; 从 1 到 n 会 有 n 个 整 数 &#xff1a; 123 按 大 小 顺 升 序 列 出 所 有 排 列 的 情 况 &#xff0c; 并 己 当 n 3 时 &#xff0c; 所 有 排 列 如 下 &#xff1a; “ 123 …

升华 RabbitMQ:解锁一致性哈希交换机的奥秘【RabbitMQ 十】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 升华 RabbitMQ&#xff1a;解锁一致性哈希交换机的奥秘【RabbitMQ 十】 前言第一&#xff1a;该插件需求为什么需要一种更智能的消息路由方式&#xff1f;一致性哈希的基本概念&#xff1a; 第二&…

【Linux】MySQL 数据库安装配置教程(Ubuntu 22.04)

前言 MySQL是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛用于Web应用程序的后端数据存储&#xff0c;如许多动态网站、电子商务系统和在线出版物等。 MySQL具有高性能、可靠性和易用性的特点&#xff0c;它支持大型数据库&#xff0c;…

Web应用安全—信息泄露

从书本和网上了解到Web应用安全的信息泄露的知识&#xff0c;今天跟大家分享点。 robots.txt泄漏敏感信息 漏洞描述&#xff1a;搜索引擎可以通过robots文件可以获知哪些页面可以爬取&#xff0c;哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范&#xff0c;其…

UniGUI之提示信息MessageDlg及获得信息Prompt

UniGui的信息弹出框MessageDlg的原型定义如下&#xff1a; procedure MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; CallBack: TUniDialogCallBackAnonProc); 1. 其中DlgType(对话框架的类型) 1、mtConfirmation 2、mtCustom 3、mtError…

【Java】使用递归的方法获取层级关系数据demo

使用递归来完善各种业务数据的层级关系的获取 引言&#xff1a;在Java开发中&#xff0c;我们通常会遇到层层递进的关系型数据的获取问题&#xff0c;有时是树状解构&#xff0c;或金字塔结构&#xff0c;怎么描述都行&#xff0c;错综复杂的关系在程序中还是可以理清的。 这…

uniGUI之上传文件UniFileUploadButton

TUniFileUploadButton主要属性&#xff1a; Filter: 文件类型过滤&#xff0c;有图片image/* audio/* video/*三种过滤 MaxAllowedSize: 设置文件最大上传尺寸&#xff1b; Message&#xff1a;标题以及消息文本&#xff0c;可翻译成中文 TUniFileUploadButton控件 支持多…

K8S(八)—有、无状态.md

目录 无状态有状态&#xff08;StatefulSet&#xff09;介绍应用应用21. **状态持久性&#xff1a;**2. **水平扩展&#xff1a;**3. **存储和卷&#xff1a;**4. **Pod标识和网络标识&#xff1a;**5. **部署和更新&#xff1a;** 有状态和无状态对比1. 概念&#xff1a;2. 数…

【OpenCV】实时屏幕捕获

文章目录 前言基本思路安装依赖包实时捕获屏幕画面转换屏幕画面数据调用窗体显示屏幕截取画面增加实时捕获时间保存实时视频流效果图完整实现代码 前言 日常中如果需要进行大数据分析&#xff0c;那么就要记录用户的使用情况和数据分析。 实时屏幕捕获就可以很好地获取数据&a…

云原生之深入解析Linkerd Service Mesh的功能和使用

一、简介 Linkerd 是 Kubernetes 的一个完全开源的服务网格实现&#xff0c;它通过为你提供运行时调试、可观测性、可靠性和安全性&#xff0c;使运行服务更轻松、更安全&#xff0c;所有这些都不需要对代码进行任何更改。Linkerd 通过在每个服务实例旁边安装一组超轻、透明的…

Other -- 了解网上服务器(ECS、VPS)

喜欢在公网上自己做网站发布的就会研究网上的售卖的各种服务器&#xff0c;下面简单了解下&#xff1a; 1. 虚拟专用服务器&#xff08;VPS,VirtualPrivateServer&#xff09; 借助容器或者虚拟化技术&#xff0c;将一台物理服务器分割成多个虚拟服务器&#xff0c;每个服务器…

MX6ULL学习笔记(十二)Linux 自带的 LED 灯

前言 前面我们都是自己编写 LED 灯驱动&#xff0c;其实像 LED 灯这样非常基础的设备驱动&#xff0c;Linux 内 核已经集成了。Linux 内核的 LED 灯驱动采用 platform 框架&#xff0c;因此我们只需要按照要求在设备 树文件中添加相应的 LED 节点即可&#xff0c;本章我们就来学…