当前位置: 首页 > news >正文

Kubernetes(k8s):精通 Pod 操作的关键命令

Kubernetes(k8s):精通 Pod 操作的关键命令

    • 1、查看 Pod 列表
    • 2、 查看 Pod 的详细信息
    • 3、创建 Pod
    • 4、删除 Pod
    • 5、获取 Pod 日志
    • 6、进入 Pod 执行命令
    • 7、暂停和启动 Pod
    • 8、改变 Pod 副本数量
    • 9、查看当前部署中使用的镜像版本
    • 10、滚动更新 Pod
    • 11、导出 、导入Pod 的配置
      • 1、导出配置到文件:
      • 2、导入配置文件到集群:
    • 12、查看 Pod 的 CPU、内存 使用情况
    • 13、端口转发


💖The Begin💖点点关注,收藏不迷路💖

Kubernetes 是一个强大的容器编排平台,其中的核心概念之一就是 Pod。Pod 是 Kubernetes 中最小的可部署单元,它由一个或多个容器组成,共享网络和存储资源。

在本篇博客中,我们将深入探讨 Kubernetes 集群中与 Pod 相关的一些重要命令,帮助更好地管理和调试的容器应用。

1、查看 Pod 列表

要查看集群中所有 Pod 的列表,可以使用以下命令:

kubectl get pods

此命令将列出当前命名空间中所有 Pod 的名称、状态、所在节点和创建时间等信息。

在这里插入图片描述

2、 查看 Pod 的详细信息

要查看特定 Pod 的详细信息,可以使用以下命令:

kubectl describe pod <pod_name>kubectl describe pod nginx-deployment-544dc8b7c4-ds6b5

这将显示有关该 Pod 的更详细的信息,包括容器状态、事件、标签和注释等。

在这里插入图片描述

3、创建 Pod

可以使用 kubectl create --help 命令来查看关于 kubectl create 命令的帮助信息和可用选项。

 kubectl create --help

在这里插入图片描述

在这里插入图片描述

1、方式一

从 Kubernetes 版本 1.18 开始,kubectl create pod 命令已经不再建议使用,因为它创建的 Pod 缺少一些默认配置(如控制器)。

建议使用 kubectl run 或者编写 YAML 文件来创建 Pod。

如果想使用 kubectl 命令行直接创建一个简单的 Pod,可以使用 kubectl run 命令。例如:

kubectl run my-pod --image=nginx --restart=Never

这将创建一个名为 my-pod 的 Pod,使用 nginx 镜像, Never 表示当 Pod 终止后不会被自动重启。( --restart=Always 会自动重启容器)

在这里插入图片描述

2、方式二

创建 Deployment 时指定副本数量,使用 --replicas 标志。

kubectl create deployment my-nginx-deployment  --image=nginx --replicas=2

这将创建一个名为 my-nginx-deployment 的 Deployment,使用 nginx 镜像,并配置 Deployment 控制器以管理两个 Pod 副本。

在这里插入图片描述

4、删除 Pod

要删除一个 Pod,可以使用以下命令:

kubectl delete pod <pod_name>kubectl delete pod my-nginx-deployment-56b7d44759-9sdr2

在这里插入图片描述
这将删除指定名称的 Pod,因为前面指定了副本数为2,删除后会自动重建。

在这里插入图片描述

5、获取 Pod 日志

要查看 Pod 的日志,可以使用以下命令:

kubectl logs <pod_name>kubectl logs my-nginx-deployment-56b7d44759-mm7gw

此命令将打印出指定 Pod 的日志。

在这里插入图片描述

6、进入 Pod 执行命令

要在 Pod 内部执行命令,可以使用以下命令:

kubectl exec -it <pod_name> -- /bin/bashkubectl exec -it my-nginx-deployment-56b7d44759-mm7gw -- /bin/bash

这将在指定的 Pod 内部启动一个交互式的 shell,允许执行命令进行调试或查看状态。

在这里插入图片描述

7、暂停和启动 Pod

从 Kubernetes 版本 1.20 开始,kubectl pause 和 kubectl unpause 命令已经不再推荐使用,并且在较新的版本中已被移除。

这是因为这两个命令不再被视为最佳实践,因为它们直接修改了 Pod 的状态,而且可能会引起一些不必要的混淆和意外行为。

相反,推荐的做法是使用更高级的控制器,如 Deployment、StatefulSet、DaemonSet 等,来管理 Pod 的生命周期。通过更新这些控制器的 Pod 模板来控制 Pod 的启动和停止,可以更加灵活地管理应用程序的部署和维护。

1.20 之前的低版本:

要暂停一个 Pod,可以使用以下命令:

kubectl pause pod <pod_name>

要继续一个暂停的 Pod,可以使用以下命令:

kubectl unpause pod <pod_name>

较新的版本(改变 Pod 副本数量):

在 Kubernetes 中,没有直接的 stop 命令来停止 Pod。通常,可以通过删除 Pod 、副本数量缩减来实现停止。

缩放 Deployment:如果您想停止一个 Deployment 下的所有 Pod,可以使用 kubectl scale 命令来将副本数量缩减为 0。例如:

kubectl scale --replicas=0 deployment/<deployment-name>kubectl delete pod <pod-name>

如:将名为 my-nginx-deployment 的部署的副本数量缩减为 0,

kubectl scale --replicas=0 deployment/my-nginx-deployment

这将把名为 nginx 的部署中的所有 Pod 的副本数量缩减为 0,从而停止所有 my-nginx-deployment 的运行。

在这里插入图片描述

8、改变 Pod 副本数量

要改变 Deployment 或 ReplicaSet 中 Pod 的副本数量,可以使用以下命令:

1、语法
kubectl scale deployment <deployment_name> --replicas=<replica_count>2、例子:将 nginx-deployment副本数从2增加至3个kubectl scale deployment nginx-deployment --replicas=3

在这里插入图片描述

9、查看当前部署中使用的镜像版本

1、语法,<deployment_name> 为要查询的 Deployment 的实际名称
kubectl get deployment <deployment_name> -o=jsonpath='{.spec.template.spec.containers[0].image}'2、例子:查看 nginx-deployment 中正在使用的 nginx 容器的镜像版本
kubectl get deployment nginx-deployment -o=jsonpath='{.spec.template.spec.containers[0].image}'

这将返回 nginx-deployment 中正在使用的 nginx 容器的镜像版本。

在这里插入图片描述

10、滚动更新 Pod

使用 kubectl set image 命令来更新 Deployment 中的容器镜像。

如把目前的nginx-deployment 使用的nginx版本更新为nginx:1.22.1版本。

kubectl set image deployment/nginx-deployment nginx=nginx:1.22.1

在这里插入图片描述

11、导出 、导入Pod 的配置

较新的 Kubernetes 版本中,–export 标志已被弃用。

要导出 Pod 的配置,可以使用 kubectl get 命令结合 --export 标志,并将输出保存到文件中。然后,可以使用 kubectl apply 命令将此配置重新导入到集群中。以下是示例:

1、导出配置到文件:

1、语法
kubectl get pod <pod_name>  -o yaml > pod.yamlkubectl get deployment <deployment_name> -o yaml > deployment.yaml2、例子例子1:导出 my-pod 的配置到文件 my-pod.yaml
kubectl get pod my-pod  -o yaml >my-pod.yaml例子2:获取名为 nginx-deployment 的 Deployment 的 YAML 配置,并将其保存到名为 nginx-deployment20240404.yaml 的文件中。kubectl get deployment nginx-deployment -o yaml > nginx-deployment20240404.yaml 

在这里插入图片描述

在这里插入图片描述

2、导入配置文件到集群:

kubectl apply -f nginx-deployment20240404.yaml kubectl apply -f my-pod.yaml

这将根据 yaml 文件中的配置创建或更新 Pod。

在这里插入图片描述

12、查看 Pod 的 CPU、内存 使用情况

## 所有
kubectl top pods##查看特定命名空间中 Pod 
kubectl top pod <pod-name> --namespace=<namespace>kubectl top pods -n=default
kubectl top pod  nginx-deployment-78f585888c-dnd2r -n=default
kubectl top pod  nginx-deployment-78f585888c-dnd2r --namespace=default

在这里插入图片描述
在这里插入图片描述

13、端口转发

在 Kubernetes 中,可以使用 kubectl port-forward 命令来将本地端口与 Pod 中的端口进行转发。

这对于调试和测试非常有用,例如在本地机器上访问运行在 Kubernetes 集群中的 Pod。

kubectl port-forward <pod-name> <local-port>:<pod-port> --namespace=<namespace>其中:<pod-name> 是要转发的 Pod 的名称。
<local-port> 是本地主机上用于转发流量的端口。
<pod-port> 是要转发到 Pod 中的端口。
<namespace> 是 Pod 所在的命名空间。

1、例如:将名为 my-pod 的 Pod 中的端口 80 转发到本地主机上的端口 9090。

kubectl port-forward my-pod 9090:80

本地主机的端口 9090 将会与 Pod 中的端口 80 进行绑定。现在,可以通过访问 http://localhost:9090 来访问 Pod 中运行的服务。

在这里插入图片描述

只能在本地访问,不能在浏览器访问

在这里插入图片描述

2、如果转发到主机的 IP 地址而不是 localhost,你可以通过指定 --address 或 -a 参数来指定要监听的地址。

kubectl port-forward <pod-name> <local-port>:<pod-port> --address <host-ip>kubectl port-forward my-pod 9090:80 --address 192.168.234.20

在浏览器即可访问192.168.234.20:9090。

在这里插入图片描述

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

相关文章:

Kubernetes(k8s):精通 Pod 操作的关键命令

Kubernetes&#xff08;k8s&#xff09;&#xff1a;精通 Pod 操作的关键命令 1、查看 Pod 列表2、 查看 Pod 的详细信息3、创建 Pod4、删除 Pod5、获取 Pod 日志6、进入 Pod 执行命令7、暂停和启动 Pod8、改变 Pod 副本数量9、查看当前部署中使用的镜像版本10、滚动更新 Pod11…...

【随笔】Git 高级篇 -- 相对引用2(十三)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…...

xilinx AXI CAN驱动开发

CAN收发方案有很多&#xff0c;常见的解决方案通过是采用CAN收发芯片&#xff0c;例如最常用的SJA1000,xilinx直接将CAN协议栈用纯逻辑实现&#xff0c;AXI CAN是其中一种&#xff1b; 通过这种方式硬件上只需外接一个PHY芯片即可 上图加了一个电平转换芯片 软件设计方面&…...

Python:百度AI开放平台——OCR图像文字识别应用

一、注册百度AI开放平台 使用百度AI服务的步骤为&#xff1a; 注册&#xff1a;注册成为百度AI开放平台开发者&#xff1b;创建AI应用&#xff1a;在百度API开放平台上创建相关类型的的AI应用&#xff0c;获得AppID、API Key和Secret Key&#xff1b;调用API&#xff1a;调用…...

OpenEuler/Centos制作离线软件源

需求背景&#xff1a; 一般线上服务器都是不能连接外网&#xff0c;服务器安装好系统之后就需要部署相关软件&#xff0c;此时因为无法联网导致无法下载软件&#xff0c;所以都会做一个本地的离线软件源&#xff0c;本文简单介绍如何快速利用已经下载好的rpm包&#xff0c;制作…...

论文笔记:基于多粒度信息融合的社交媒体多模态假新闻检测

整理了ICMR2023 Multi-modal Fake News Detection on Social Media via Multi-grained Information Fusion&#xff09;论文的阅读笔记 背景模型实验 背景 在假新闻检测领域&#xff0c;目前的方法主要集中在文本和视觉特征的集成上&#xff0c;但不能有效地利用细粒度和粗粒度…...

攻防世界 xff_referer 题目解析

xff_referer 一&#xff1a;了解xxf和Referer X-Forwarded-For:简称XFF头&#xff0c;它代表客户端&#xff0c;也就是HTTP的请求端真实的IP&#xff0c;只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。 一般的客户端发送HTTP请求没有X-Forwarded-For头的&#xff0…...

open-cd框架调试记录

源于论文Changer: Feature Interaction Is What You Need forChange Detection 源码位置&#xff1a;open-cd/README.md at main likyoo/open-cd (github.com) 同样是基于MMSegmentation框架的代码&#xff0c;不符合本人编程习惯所以一直也没有研究这东西&#xff0c;近期打…...

【算法刷题day17】Leetcode:110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

文章目录 Leetcode 110.平衡二叉树解题思路代码总结 Leetcode 257. 二叉树的所有路径解题思路代码总结 Leetcode 404.左叶子之和解题思路代码总结 草稿图网站 java的Deque Leetcode 110.平衡二叉树 题目&#xff1a;** 110.平衡二叉树** 解析&#xff1a;代码随想录解析 解题思…...

Linux云计算之Linux基础2——Linux发行版本的安装

目录 一、彻底删除VMware 二、VMware-17虚拟机安装 三、MobaXterm 安装 四、Centos 发行版 7.9的安装 五、rockys 9.1的安装 六、ubuntu2204的安装 一、彻底删除VMware 在卸载VMware虚拟机之前&#xff0c;要先把与VMware相关的服务和进程终止 1. 在windows中按下【Windo…...

C++:赋值运算符(17)

赋值也就是将后面的值赋值给变量&#xff0c;这里最常用的就是 &#xff0c;a1那么a就是1&#xff0c;此外还包含以下的赋值运算 等于int a 1; a10 a10加等于int a 1; a1;a2-减等于int a 1; a-1;a0*乘等于int a 2; a*5;a10/除等于int a 10; a/2;a5%模等于int a 10; a%…...

Spring Boot | Spring Boot的“数据访问“、Spring Boot“整合MyBatis“

目录: 一、Spring Boot”数据访问概述“二、Spring Boot”整合MyBatis”1. 基础环境搭建 (引入对应的“依赖启动器” 配置数据库的“相关参数”)① 数据准备 (导入Sql文件)② 创建项目&#xff0c;引入相应的启动器&#xff0c;编写数据库对应的“实体类”③额外添加pom.xml文…...

ActiViz中的数据集vtkPolyData

文章目录 前言一、数据结构二、数据内容三、几何操作四、数据导入与导出五、数据可视化六、函数详解1、SetPoints(vtkPoints points):2、SetPolys(vtkCellArray polys):3、GetNumberOfPoints():4、GetNumberOfCells():5、GetPointData():6、GetCellData():7、Ge...

【测试篇】测试用例

文章目录 前言具体设计测试用例等价类边界值场景设计法判定表&#xff08;因果图&#xff09;正交排列&#xff08;用的非常少&#xff09;错误猜测法 前言 什么是测试用例&#xff1f;&#xff1f; 测试用例是针对软件系统或应用程序的特定功能或场景编写的一组步骤&#xf…...

Shell学习 - 2.24 Shell let命令:对整数进行数学运算

let 命令和双小括号 (( )) 的用法是类似的&#xff0c;它们都是用来对整数进行运算&#xff0c;读者已经学习了《Shell (())》&#xff0c;再学习 let 命令就相当简单了。 注意&#xff1a;和双小括号 (( )) 一样&#xff0c;let 命令也只能进行整数运算&#xff0c;不能对小数…...

langchain Chroma 构建本地向量数据库

langchain Chroma 构建本地向量数据库 # import from langchain_community.document_loaders import TextLoader from langchain_community.embeddings.sentence_transformer import (SentenceTransformerEmbeddings, ) from langchain_community.embeddings import HuggingFa…...

Rust 中的字符串类型:`str` 和 `String`

Rust 中的字符串类型&#xff1a;&str 和 String 文章目录 Rust 中的字符串类型&#xff1a;&str 和 String1. &str&#xff1a;不可变的字符串引用2. String&#xff1a;可变的字符串3、字符串使用综合案例代码执行结果 在 Rust 编程语言中&#xff0c;有两种主要…...

Visual Studio(VS) 搭建 QT 开发环境

Visual Studio(VS) 搭建 QT 开发环境 在当今的软件开发领域,Visual Studio(VS)是一款备受欢迎的集成开发环境(IDE),而 QT 则是一个强大的跨平台应用程序框架。将两者结合使用,可以为开发人员提供高效、便捷的开发体验。本文将详细介绍如何在 VS2022 中搭建 QT 开发环…...

Qt模拟面试(超硬核)

1. 请简要介绍一下你的 Qt 开发经验。 建议&#xff1a;诚实地描述你的 Qt 经验&#xff0c;包括你使用过的 Qt 版本、开发过的项目类型、遇到的挑战以及如何解决它们。 假如你没有开发经验&#xff0c;可以提供一些关于 Qt 开发的一般信息和常见的经验分享。 Qt 是一个跨平…...

某眼实时票房接口获取

某眼实时票房接口获取 前言解决方案1.找到veri.js2.找到signKey所在位置3.分析它所处的这个函数的内容4.index参数的获取5.signKey参数的获取运行结果关键代码另一种思路票房接口:https://piaofang.maoyan.com/dashboard-ajax https://piaofang.maoyan.com/dashboard 实时票房…...

cesium键盘控制相机位置和姿态

该类主要用于监听键盘事件并在用户按下不同按键时执行相应的相机操作&#xff0c;如改变相机的位置、偏航角、俯仰角和翻滚角&#xff0c;从而实现在三维场景中的漫游。 以下是代码的主要逻辑&#xff1a; 导入Cesium库&#xff0c;并定义一个flags对象&#xff0c;其中包含了…...

基于ArrayList实现简单洗牌

前言 在之前的那篇文章中&#xff0c;我们已经认识了顺序表—>http://t.csdnimg.cn/2I3fE 基于此&#xff0c;便好理解ArrayList和后面的洗牌游戏了。 什么是ArrayList? ArrayList底层是一段连续的空间&#xff0c;并且可以动态扩容&#xff0c;是一个动态类型的顺序表&…...

Paddle实现人脸对比

人脸对比 人脸对比&#xff0c;顾名思义&#xff0c;就是对比两个人脸的相似度。本文将用Paddle实现这一功能。 PS&#xff1a;作者肝了整整3天才稍微搞明白实现方法 数据集准备 这里使用百度AI Studio的开源数据集&#xff1a; 人脸数据_数据集-飞桨AI Studio星河社区 (b…...

挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题

前言 大概故事是这样的&#xff0c;PostgreSQL数据库&#xff0c;表结构&#xff1a; create table t1(a varchar);然后使用标准的Java jdbc去插入数据&#xff0c;其基本代码如下&#xff1a; import java.sql.*; public class PgDoubleTest {public static void main(Stri…...

函数对象基本使用

一、函数对象概念 1.重载函数调用操作符的类&#xff0c;其对象常称为函数对象 2.函数对象使用重载的()时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质&#xff1a; 函数对象(仿函数)是一个类&#xff0c;不是一个函数 二、函数对象使用 特点&#xff1a; 函…...

浅谈HTTP

浅谈HTTP 要通过netty实现HTTP服务器(或者客户端)&#xff0c;首先你要了解HTTP协议。 HTTP在客户端 - 服务器计算模型中用作请求 - 响应协议。 例如&#xff0c;web浏览器可以是客户端&#xff0c;并且在托管网站的计算机上运行的应用程序可以是服务器。 客户端向服务器提交…...

HarmonyOS NEXT应用开发之@Provide装饰器和\@Consume装饰器:与后代组件双向同步

Provide和Consume&#xff0c;应用于与后代组件的双向数据同步&#xff0c;应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递&#xff0c;Provide和Consume摆脱参数传递机制的束缚&#xff0c;实现跨层级传递。 其中Provide装饰的变…...

Docker 安装 | 部署MySQL 8.x 初始设置

1、准备工作 如果不想看前面的废话请直接右边目录跳到 运行容器 处 默认你已经有 docker 环境。 Windows 推荐 Docker Desktop &#xff08;下载地址&#xff09;并基于 WSL2 运行 Docker 环境 mac 推荐 Orbstack &#xff08;下载地址&#xff09;&#xff08;这个很节省资源&…...

linux三剑客之流编辑器sed

sed&#xff08;stream editor&#xff09;是Linux和Unix系统中一个非常强大的文本处理工具。它主要用于对文本数据进行过滤和转换。sed 可以在不打开文件的情况下&#xff0c;直接对输入流进行操作&#xff0c;并且可以将结果输出到标准输出或文件。 基本语法&#xff1a; s…...

【Android Studio】上位机-安卓系统手机-蓝牙调试助手

【Android Studio】上位机-安卓系统手机-蓝牙调试助手 文章目录 前言AS官网一、手机配置二、移植工程三、配置四、BUG五、Java语言总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 AS官网 AS官网 一、手机配置 Android Studio 下真机调试 …...

用服务器做网站需要购买域名吗/乐天seo培训

根据一位群里的大神提供的思路&#xff0c;在Hi8pro的主板上有一个预留的3G网卡的位置&#xff0c;通过查询引脚定义可以找到D&#xff0c;D-两个USB数据引脚&#xff0c;然后使用万用表测量找到5V供电引脚即可。 如下图&#xff0c;这是USB四个引脚的接线点&#xff0c;焊点比…...

建设企业人力资源网站/关键词采集网站

{2015-04-24}接口更新了&#xff0c;暂时用不了了。 再次更新&#xff1a;【2015-4-24 22:13:11】接口链接更新。正常。 function getWeather($city){include weather_code.php;$code$weather_code[$city];//$url"http://tq.360.cn/api/weatherquery/querys?apptq360&am…...

网站开发的外文文献/拓客渠道有哪些

入门案例测试数据表结构介绍导入测试数据按照日期统计订单总额/总数量&#xff08;Hive方式&#xff09;按照日期统计订单总额/总数量&#xff08;Kylin方式&#xff09;创建项目&#xff08;Project&#xff09;创建数据源&#xff08;DataSource&#xff09;创建模型&#xf…...

国内谷歌网站SEO优化/seo收索引擎优化

RxJava正在Android开发者中变的越来越流行。唯一的问题就是上手不容易&#xff0c;尤其是大部分人之前都是使用命令式编程语言。但是一旦你弄明白了&#xff0c;你就会发现RxJava真是太棒了。 这里仅仅是帮助你了解RxJava&#xff0c;整个系列共有四篇文章&#xff0c;希望你看…...

中国互联网协会网站/能让手机流畅到爆的软件

在实际工作中经常遇到以下问题&#xff1a;邮件发送给错误的收件人&#xff0c;简而言之就是邮件发错了&#xff0c;如果遇到群发更麻烦。Exchange中提供了批量删除邮件功能&#xff0c;当用户发现发送错误后&#xff0c;管理员可以检索并删除指定的邮件。 案例任务&#xff1a…...

网站用户互动/网站安全查询系统

1&#xff1a; React 组件 (函数式组件) 1&#xff1a;React提供了两种创建组件方式:1.1&#xff1a;函数式组件 1.2: 类组件执行了ReactDOM.render(<myComponent />... 之后, 发生了什么)1&#xff1a; React 解析组件标签。 找到myComponent 组件2&#xff1a; 发现…...