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

news2025/1/12 22:52:06

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/bash

kubectl 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.yaml

kubectl get deployment <deployment_name> -o yaml > deployment.yaml

2、例子

例子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💖点点关注,收藏不迷路💖

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

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

相关文章

【Unity灶台】食品加工系统模型搭建

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

黑马鸿蒙笔记

目录 27.网络连接-Http请求数据 28.网络连接-第三方库axios 29.数据持久化-用户首选项 27.网络连接-Http请求数据 Http常见 GET一般与String配合&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE与Object配合 28.网络连接-第三方库axios 29.数据持久化-用户首选项 不行&a…

C语言 | Leetcode C语言题解之第9题回文数

题目&#xff1a; 题解&#xff1a; bool isPalindrome(int x) {if(x < 0)return false;long int sum0;long int nx;while(n!0){sumsum*10n%10;nn/10;}if(sumx)return true;elsereturn false; }

labview如何创建2D多曲线XY图和3D图

1如何使用labview创建2D多曲线图 使用“索引与捆绑簇数组”函数将多个一维数组捆绑成一个簇的数组&#xff0c;然后将结果赋值给XY图&#xff0c;这样一个多曲线XY图就生成了。也可以自己去手动索引&#xff0c;手动捆绑并生成数组&#xff0c;结果是一样的 2.如何创建3D图 在…

Qt 使用QPropertyAnimation动画效果的图片浏览器

文章目录 效果图功能点代码解析图片切换显示与动画效果图片缩放 总结 效果图 功能点 加载指定路径下的所有图片并显示滑动滑动条查看指定图片&#xff0c;也滚轮切换图片滑动条缩略图加入动画效果图片可以进行缩放移动查看 代码解析 整体来说相对&#xff0c;显示图片的是一…

小组分享内容第一部分:总览+HttpClients

目录 1.网络爬虫的作用&#xff08;人话&#xff09;&#xff1a; 2.使用的工具 3.不使用程序进行网页信息的获取的操作步骤 4.如何使用程序来进行上述操作 1.打开浏览器 2.输入网址 3.发送请求 4.获取响应 5.判断响应是否成功 6.获取响应里需要的内容 7.记得最后关…

window中如何在Anaconda虚拟环境中安装compressai

1, 进入CompressAI的Github代码页下载压缩包并解压到自己的项目路径 2&#xff0c;打开anaconda的prompt命令行&#xff0c;激活需要安装的虚拟环境&#xff0c;然后进入compressai文件夹&#xff0c;比如下操作&#xff1a; 3&#xff0c;输出安装命令行 pip install -e . -…

设计模式总结-简单工厂模式

简单工厂模式 创建型模式创建型模式概述创建型模式种类 简单工厂模式模式定义模式动机模式结构模式分析模式实例与解析实例一&#xff1a;简单电视机工厂实例二&#xff1a;权限管理 模式优缺点简单工厂模式的优点简单工厂模式的缺点 模式适用环境模式扩展 小结 创建型模式 创…

方案评估(Solution Evaluation)

背景 Evaluation 这个词更喜欢的翻译是评估&#xff0c;评价和估计&#xff0c;估计就是瞎蒙&#xff0c;忽悠&#xff0c;不确定的、动态的世界&#xff0c;想做确定性的方案很难的&#xff0c;那么就整一些数据指标经验来相互折腾、忽悠&#xff0c;以至于大家都信了&#x…

使用labelImg标注yolov5数据集并在kaggle中使用yolov5

使用labelImg标注yolov5数据集并在kaggle中使用yolov5 文章目录 前言一、labelImg标注1.1. 下载exe文件1.2. labelImg 下载&#xff08;源码&#xff09;1.3. 环境配置1.4. 使用1.4.1. 设置1.4.2. 导入图片并标注 二、在kaggle中使用2.1. 下载源码2.2. 编辑配置文件2.3. 将压缩…

2024年第八届人工智能与虚拟现实国际会议(AIVR 2024)即将召开!

2024年第八届人工智能与虚拟现实国际会议&#xff08;AIVR 2024&#xff09;将2024年7月19-21日在日本福冈举行。人工智能与虚拟现实的发展对推动科技进步、促进经济发展、提升人类生活质量等具有重要意义。AIVR 2024将携手各专家学者&#xff0c;共同挖掘智能与虚拟的无限可能…

网易RAG问答知识库开源了,Star 6K!!

网易RAG问答知识库开源了&#xff0c;Star 6K&#xff01;&#xff01; RAG 问答知识库 QAnything 开源了QAnything 架构设计剖析整个架构的工作流程主要包含三个环节为什么需要两阶段检索&#xff1f;使用的基座大模型相关技术组件 QAnything 本地部署一键部署安装&#xff0c…

【MATLAB源码-第30期】基于matlab的内边界边缘检测算法。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 在计算机视觉领域&#xff0c;图像分割&#xff08;segmentation&#xff09;指的是将数字图像细分为多个图像子区域&#xff08;像素的集合&#xff09;&#xff08;也被称作超像素&#xff09;的过程。图像分割的目的是简化…

从零开始实现一个RPC框架(一)

前言 在上一篇文章中我们先列举了大致的需求&#xff0c;定义了消息协议。这次我们着手搭建基本的RPC框架&#xff0c;首先实现基础的方法调用功能。 功能设计 RPC调用的第一步&#xff0c;就是在服务端定义要对外暴露的方法&#xff0c;在grpc或者是thrift中&#xff0c;这一…

Codeforces CodeTON Round 8(Div.1 + Div.2) A~E

A. Farmer John’s Challenge (模拟) 题意&#xff1a; 构造一个长度为 n n n的数组&#xff0c;将这些数组围成一个圈&#xff08;顺时针&#xff09;从任意一个位置打开&#xff0c;有且仅有 k k k个非降序排列的数组。 分析&#xff1a; k 1 k1 k1时&#xff0c;升序输…

WGCAT工单系统使用指南 - 工单有哪几种状态

WGCAT工单管理系统设计的工单生命周期比较简单易懂 1、待接收 2、处理中 3、已拒绝 4、已完成 5、已关闭

鸿蒙OS开发实例:【应用状态变量共享】

平时在开发的过程中&#xff0c;我们会在应用中共享数据&#xff0c;在不同的页面间共享信息。虽然常用的共享信息&#xff0c;也可以通过不同页面中组件间信息共享的方式&#xff0c;但有时使用应用级别的状态管理会让开发工作变得简单。 根据不同的使用场景&#xff0c;ArkT…

阿基米德签证管理系统源码正式发布啦,基于thinkphp8.0+element-plus+uni-app

太棒了&#xff01;太棒了&#xff01;太棒了! 阿基米德签证系统的上线将为签证申请流程带来更高效和便利。 为什么选择阿基米德软件&#xff1f; 专注于行业垂直细分领域 / 专业级系统软件开发服务商 一、用户前端支持小程序、H5、PC和APP等主流流量端口 这样可以覆盖更广泛…

【零基础学数据结构】顺序表实现书籍存储

目录 书籍存储的实现规划 ​编辑 前置准备&#xff1a; 书籍结构体&#xff1a; 书籍展示的初始化和文件加载 书籍展示的销毁和文件保存 书籍展示的容量检查 书籍展示的尾插实现 书籍展示的书籍增加 书籍展示的书籍打印 书籍删除展示数据 书籍展示修改数据 在指定位置之前…

学习鸿蒙基础(12)

目录 一、网络json-server配置 &#xff08;1&#xff09;然后输入&#xff1a; &#xff08;2&#xff09;显示下载成功。但是输入json-server -v的时候。报错。 &#xff08;3&#xff09;此时卸载默认的json-server &#xff08;4&#xff09;安装和nodejs匹配版本的js…