vs网站开发教程/成都网络优化公司有哪些

vs网站开发教程,成都网络优化公司有哪些,衡阳广告设计公司,中国旅游局网站建设情况分析kubectl 命令参数详解与示例 kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群交互。下面我将详细介绍 kubectl 的主要命令参数,并提供相应的使用示例。 一、基础命令 1. kubectl get - 获取资源信息 常用参数: -n, --namesp…

kubectl 命令参数详解与示例

kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群交互。下面我将详细介绍 kubectl 的主要命令参数,并提供相应的使用示例。

一、基础命令

1. kubectl get - 获取资源信息

常用参数

  • -n, --namespace: 指定命名空间
  • -o, --output: 输出格式 (json|yaml|wide|name|custom-columns=…)
  • -w, --watch: 监听资源变化
  • --show-labels: 显示标签
  • --sort-by: 按指定字段排序

示例

# 获取默认命名空间的所有pod
kubectl get pods# 获取kube-system命名空间的pod,显示标签
kubectl get pods -n kube-system --show-labels# 以yaml格式获取pod信息
kubectl get pod my-pod -o yaml# 监听pod状态变化
kubectl get pods -w# 自定义列输出
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName

2. kubectl describe - 显示资源详细信息

常用参数

  • -n, --namespace: 指定命名空间
  • -l, --selector: 根据标签选择器过滤

示例

# 描述特定pod
kubectl describe pod my-pod# 描述命名空间中的所有service
kubectl describe services -n kube-system# 使用标签选择器描述pod
kubectl describe pods -l app=nginx

3. kubectl create - 创建资源

常用参数

  • -f, --filename: 使用文件或URL创建
  • --dry-run=client: 试运行(不实际创建)
  • -o, --output: 输出格式
  • --save-config: 保存配置到注解中

示例

# 从YAML文件创建资源
kubectl create -f deployment.yaml# 试运行创建deployment
kubectl create deployment my-nginx --image=nginx --dry-run=client -o yaml# 创建命名空间
kubectl create namespace test-ns

4. kubectl apply - 应用配置变更

常用参数

  • -f, --filename: 使用文件或URL
  • -k, --kustomize: 使用kustomization目录
  • --prune: 删除不再存在的资源
  • --dry-run=server: 服务器端试运行

示例

# 应用YAML配置
kubectl apply -f deployment.yaml# 使用kustomize
kubectl apply -k ./kustomize-dir# 试运行应用变更
kubectl apply -f deployment.yaml --dry-run=server

二、调试命令

1. kubectl logs - 查看容器日志

常用参数

  • -f, --follow: 实时跟踪日志
  • --tail: 显示最后N行日志
  • --since: 显示特定时间后的日志(如5s, 2m, 3h)
  • -p, --previous: 查看前一个容器的日志(容器崩溃时)

示例

# 查看pod日志
kubectl logs my-pod# 实时跟踪日志
kubectl logs -f my-pod# 查看最后50行日志
kubectl logs --tail=50 my-pod# 查看过去1小时的日志
kubectl logs --since=1h my-pod# 多容器pod中指定容器
kubectl logs my-pod -c my-container

2. kubectl exec - 在容器中执行命令

常用参数

  • -i, --stdin: 保持STDIN打开
  • -t, --tty: 分配TTY
  • -c, --container: 指定容器

示例

# 在pod中执行简单命令
kubectl exec my-pod -- ls /# 交互式shell
kubectl exec -it my-pod -- /bin/bash# 在特定容器中执行命令
kubectl exec -it my-pod -c my-container -- /bin/sh

3. kubectl port-forward - 端口转发

常用参数

  • --address: 绑定地址(默认为localhost)
  • --pod-running-timeout: 等待pod运行的最长时间

示例

# 将本地8080转发到pod的80端口
kubectl port-forward my-pod 8080:80# 转发到service
kubectl port-forward svc/my-service 8080:80# 绑定到所有网络接口
kubectl port-forward --address 0.0.0.0 my-pod 8080:80

三、部署管理

1. kubectl rollout - 管理部署的滚动更新

子命令

  • history: 查看历史
  • pause: 暂停
  • resume: 恢复
  • status: 查看状态
  • undo: 回滚

示例

# 查看部署历史
kubectl rollout history deployment/my-deployment# 查看特定修订版本详情
kubectl rollout history deployment/my-deployment --revision=2# 暂停部署
kubectl rollout pause deployment/my-deployment# 恢复部署
kubectl rollout resume deployment/my-deployment# 回滚到上一个版本
kubectl rollout undo deployment/my-deployment# 回滚到特定版本
kubectl rollout undo deployment/my-deployment --to-revision=2

2. kubectl scale - 扩缩容

常用参数

  • --current-replicas: 当前副本数验证
  • --replicas: 目标副本数

示例

# 将deployment扩展到3个副本
kubectl scale --replicas=3 deployment/my-deployment# 基于当前副本数进行扩展
kubectl scale --current-replicas=2 --replicas=5 deployment/my-deployment

四、集群管理

1. kubectl config - 管理kubeconfig

常用子命令

  • current-context: 显示当前上下文
  • get-contexts: 列出所有上下文
  • use-context: 切换上下文
  • set-cluster: 配置集群
  • set-credentials: 配置凭证

示例

# 查看当前配置
kubectl config view# 切换上下文
kubectl config use-context dev-cluster# 添加新集群配置
kubectl config set-cluster prod-cluster --server=https://prod.example.com

2. kubectl cluster-info - 显示集群信息

常用参数

  • --dump: 转储当前集群状态
  • --output: 输出格式

示例

# 显示集群基本信息
kubectl cluster-info# 显示详细集群信息
kubectl cluster-info dump

五、高级命令

1. kubectl patch - 部分更新资源

常用参数

  • --type: 补丁类型(merge|json|strategic)
  • -p, --patch: 补丁内容

示例

# 更新deployment的镜像
kubectl patch deployment my-deployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"my-container","image":"nginx:1.19"}]}}}}'# 使用strategic merge patch
kubectl patch deployment my-deployment --type strategic -p '{"spec":{"replicas":5}}'

2. kubectl label - 管理资源标签

常用参数

  • --overwrite: 覆盖现有标签
  • --list: 显示现有标签
  • --all: 选择所有资源

示例

# 添加标签
kubectl label pods my-pod env=prod# 覆盖现有标签
kubectl label pods my-pod env=staging --overwrite# 批量添加标签
kubectl label pods --all env=test# 删除标签
kubectl label pods my-pod env-

3. kubectl annotate - 管理资源注解

常用参数

  • --overwrite: 覆盖现有注解
  • --list: 显示现有注解

示例

# 添加注解
kubectl annotate pods my-pod description="This is a test pod"# 查看注解
kubectl annotate pods my-pod --list# 删除注解
kubectl annotate pods my-pod description-

六、资源管理

1. kubectl delete - 删除资源

常用参数

  • -f, --filename: 使用文件删除
  • --all: 删除所有资源
  • --grace-period: 优雅删除期限(秒)
  • --force: 强制删除

示例

# 按名称删除pod
kubectl delete pod my-pod# 使用YAML文件删除
kubectl delete -f deployment.yaml# 删除命名空间下所有pod
kubectl delete pods --all -n test-ns# 强制删除pod
kubectl delete pod my-pod --grace-period=0 --force

2. kubectl edit - 编辑资源

常用参数

  • -f, --filename: 使用文件
  • --output: 输出格式
  • --record: 记录当前命令到资源注解

示例

# 编辑deployment
kubectl edit deployment/my-deployment# 使用特定编辑器
KUBE_EDITOR="nano" kubectl edit deployment/my-deployment# 编辑时记录命令
kubectl edit deployment/my-deployment --record

七、排错命令

1. kubectl top - 显示资源使用情况

常用参数

  • --containers: 显示容器级别统计
  • --sort-by: 按指定字段排序

示例

# 查看节点资源使用
kubectl top nodes# 查看pod资源使用
kubectl top pods# 查看容器级别资源使用
kubectl top pods --containers# 按CPU排序
kubectl top pods --sort-by=cpu

2. kubectl cp - 在容器和本地系统间复制文件

常用参数

  • -c, --container: 指定容器

示例

# 从本地复制到pod
kubectl cp /local/path/file.txt my-pod:/remote/path/# 从pod复制到本地
kubectl cp my-pod:/remote/path/file.txt /local/path/# 指定容器复制
kubectl cp /local/path/file.txt my-pod:/remote/path/ -c my-container

八、插件管理

kubectl plugin - 管理插件

常用子命令

  • list: 列出已安装插件
  • install: 安装插件
  • uninstall: 卸载插件

示例

# 列出插件
kubectl plugin list# 安装插件(插件名需以kubectl-开头)
mv my-plugin /usr/local/bin/kubectl-my_plugin
chmod +x /usr/local/bin/kubectl-my_plugin# 使用插件
kubectl my-plugin

九、API资源管理

kubectl api-resources - 查看API资源

常用参数

  • --namespaced: 仅显示命名空间资源
  • --verbs: 过滤支持的动词
  • --sort-by: 排序字段

示例

# 查看所有API资源
kubectl api-resources# 查看命名空间资源
kubectl api-resources --namespaced=true# 查看支持create操作的资源
kubectl api-resources --verbs=create

十、自定义输出

自定义列输出

示例

# 自定义列显示pod信息
kubectl get pods -o custom-columns="NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName,IP:.status.podIP"# 使用JSONPath表达式
kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.startTime}{"\n"}{end}'

十一、边车模式

在Kubernetes中,要向已经运行的Pod添加临时边车容器,有几种方法可以实现。需要注意的是,Kubernetes本身不支持直接修改正在运行的Pod的容器配置,因为Pod在Kubernetes中是 immutable(不可变)的。

方法1: 使用Ephemeral Containers (临时容器) - Kubernetes 1.23+
从Kubernetes 1.23开始,临时容器功能已稳定,这是官方推荐的向运行中Pod添加边车容器的方法。

kubectl debug <pod-name> -it --image=<sidecar-image> --target=<container-name> --share-processes

示例:

kubectl debug my-pod -it --image=busybox:latest --target=main-container --share-processes

参数说明:

–image: 指定边车容器使用的镜像

–target: 指定目标容器,边车将共享其命名空间

–share-processes: 允许边车查看主容器的进程

方法2: 使用kubectl alpha debug (旧版本)
对于Kubernetes 1.18-1.22版本:

kubectl alpha debug <pod-name> -it --image=<sidecar-image> --share-processes

方法3: 通过修改Deployment/DaemonSet/StatefulSet
如果需要更持久的边车容器,可以修改控制器定义:

编辑Deployment/DaemonSet/StatefulSet:

kubectl edit deployment <deployment-name>

在spec.template.spec.containers下添加边车容器定义

保存后,Kubernetes会滚动更新Pod

方法4: 使用临时Pod进行调试
如果只是需要临时调试,可以创建一个新Pod并共享目标Pod的命名空间:

kubectl run debugger --image=busybox -it --rm --restart=Never --pod-running-timeout=1m --overrides='{"spec": {"shareProcessNamespace": true, "containers": [{"name": "debugger", "image": "busybox", "stdin": true, "tty": true, "securityContext": {"privileged": true}}]}}' --target <pod-name>

注意事项
临时容器是短暂的,不会在Pod重启后保留

需要确保API服务器启用了临时容器功能

某些安全策略可能会限制临时容器的使用

对于生产环境,建议使用方法3(修改控制器定义)以获得更可靠的结果

验证边车容器
添加后,可以使用以下命令验证:


kubectl describe pod <pod-name>
kubectl exec -it <pod-name> -c <sidecar-container-name> -- /bin/sh

总结

kubectl 提供了丰富的命令和参数来管理 Kubernetes 集群。掌握这些参数可以帮助您:

  1. 高效地查询和管理资源
  2. 调试和排查问题
  3. 自动化日常操作
  4. 定制输出以满足特定需求

建议结合 --help 参数查看各命令的详细用法,如 kubectl get --help。随着 Kubernetes 版本更新,部分参数可能会有所变化,请参考对应版本的官方文档。

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

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

相关文章

如何在 Postman 中导入和导出 cURL 命令?

cURL 是一款广受欢迎的命令行工具&#xff0c;专门用于执行 HTTP 请求。它在 Web 应用或 API 测试中极为实用&#xff0c;让用户得以借助在 API 开发者社区广为流行的成熟语法&#xff0c;直接通过命令行与 API 进行交互。若你需要在多个环境下运行众多 cURL 命令&#xff0c;可…

用python制作一个贪吃蛇小游戏

文章目录 效果图python源码使用说明效果图 只需要一百多行python代码,就能制作一个贪吃蛇小游戏。效果如下: 操作说明: 你可以使用上下左右箭头键来控制蛇的移动方向。蛇吃到食物后会变长,当蛇撞到墙壁或自己的身体时游戏结束。游戏结束后,你可以按 Q 退出游戏,或按 C…

react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析

一、React 15&#xff08;2016&#xff09; 核心架构&#xff1a;Stack Reconciler&#xff08;栈协调器&#xff09; 工作原理&#xff1a; 同步递归渲染&#xff1a;采用深度优先遍历方式递归处理 Virtual DOM&#xff0c;形成不可中断的调用栈渲染流程&#xff1a;1. 触发 …

微信小程序pdf预览

1.示例图 2.代码 fileId&#xff1a;要预览的pdf文件的id viewsFiles(fileId) {wx.showLoading({title: 加载中...});var params {url: "/common/getFile/" fileId ,//后端提供的接口method: "GET",responseType: "arraybuffer",callBack: …

把手搭建vue前后端管理系统-TAB标签通过pinia来进行管理(二十六)

目标&#xff1a;通过pinia的store来进行组件状态的统一管理&#xff0c;这样大家都可以共用到这个组件的状态信息&#xff0c;就可以实现组件的联动 一、添加侧边栏菜单的点击事件&#xff1a; 1、CommonAside.vue里面添加click的事件 <el-menu-itemv-for"item in …

计算机网络——数据链路层的功能

目录 物理链路 逻辑链路 封装成帧&#xff08;组帧&#xff09; 帧定界 透明传输 SDU 差错控制 可靠传输 流量控制 介质访问控制 主机需要实现第一层到第五层的功能&#xff0c;而路由器这种节点只需要实现第一层到第三层的这些功能 假设左边用户需要给右边用户发送…

数据抓取的缓存策略:减少重复请求与资源消耗

在数据采集领域&#xff0c;爬虫效率是决定项目成败的关键因素之一。传统的爬虫架构往往因请求频繁、资源消耗较大以及重复抓取等问题&#xff0c;导致效率低下。这些问题不仅拖慢了数据获取的速度&#xff0c;还可能引发目标服务器的过载风险&#xff0c;甚至导致爬虫被限制。…

k8s部署argocd

前言 ArgoCD是一个基于Kubernetes的GitOps持续交付工具&#xff0c;应用的部署和更新都可以在Git仓库上同步实现&#xff0c;并自带一个可视化界面。本文介绍如何使用GitHelmArgocd方式来实现在k8s中部署和更新应用服务&#xff1b; 安装Argocd 准备一个k8s集群&#xff0c;然…

【Linux】MAC帧

目录 一、MAC帧 &#xff08;一&#xff09;IP地址和MAC地址 &#xff08;二&#xff09;MAC帧格式 &#xff08;三&#xff09;MTU对IP协议的影响、 &#xff08;四&#xff09;MTU对UDP协议的影响 &#xff08;五&#xff09;MTU对TCP协议的影响 二、以太网协议 &…

【Unity3D】摄像机适配场景以及Canvas适配

目录 宽度不变策略 高度不变策略 宽度不变策略 开发分辨率 750*1334 (宽高比:0.56) 真机分辨率 1170*2532 (宽高比:0.46) 真机宽高比<开发宽高比&#xff0c;采用宽度不变策略 理由&#xff1a;小于代表真机高度比开发高度更大&#xff0c;因此不需要担心高度上…

二叉树的前,中,后序遍历

我们来了解一下二叉树的遍历&#xff0c;话不多说 二叉树的遍历的概念&#xff1a; 二叉树有四种遍历方式&#xff0c;分别为前序遍历&#xff0c;中序遍历&#xff0c;后序遍历和层序遍历&#xff0c;但我们今天谈谈前三种&#xff0c;并实现它 前序遍历&#xff1a; 按照根…

golang Error的一些坑

golang Error的一些坑 golang error的设计可能是被人吐槽最多的golang设计了。 最经典的err!nil只影响代码风格设计&#xff0c;而有一些坑会导致我们的程序发生一些与我们预期不符的问题&#xff0c;开发过程中需要注意。 ​​ errors.Is​判断error是否Wrap不符合预期 ​…

逼用户升级Win11,微软开始给Win10限速

随着Windows10的支持时间越来越短&#xff0c;微软也加大了对Win10用户的驱赶力度。 最近&#xff0c;微软官宣了将要在今年6月份降低OneNote for Windows 10的同步速度。软件也将和Windows10在今年的10月14日一同停止支持和维护。 这将影响实时协作和多设备访问。 对OneNote…

SpringMVC_day02

一、SSM 整合 核心步骤 依赖管理 包含 SpringMVC、Spring JDBC、MyBatis、Druid 数据源、Jackson 等依赖。注意点&#xff1a;确保版本兼容性&#xff08;如 Spring 5.x 与 MyBatis 3.5.x&#xff09;。 配置类 SpringConfig&#xff1a;扫描 Service 层、启用事务管理、导入…

SQLAlchemy关键词搜索技术深度解析:从基础过滤到全文检索

在数据驱动的应用开发中&#xff0c;基于关键词的模糊查询是常见的业务需求。SQLAlchemy作为Python生态中最流行的ORM框架&#xff0c;提供了多种实现关键词搜索的技术方案。本文将从性能、适用场景和技术复杂度三个维度&#xff0c;系统对比分析SQLAlchemy中关键词搜索的最佳实…

算法每日一练 (20)

&#x1f4a2;欢迎来到张翊尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 算法每日一练 (20)不同路径 II题目描述解题思路解题代…

【银河麒麟系统常识】命令:uname -m(查看系统架构)

命令&#xff1a; uname -m 功能 常用的 Linux/Unix 终端命令&#xff0c;用于显示当前系统的硬件架构&#xff1b; 返回 返回系统的CPU架构类型&#xff0c;用于判断软件兼容性&#xff1b; 输出结果架构说明常见设备x86_64Intel/AMD 64位 CPU主流 PC、服务器aarch64ARM 64位 …

sql结尾加刷题

找了一下mysql对extractvalue()、updatexml()函数的官方介绍https://dev.mysql.com/doc/refman/5.7/en/xml-functions.html#function_extractvalue ExtractValue(xml_frag, xpath_expr) 知识点 解释一下这两个参数xml_frag&#xff0c;是xml标记片段&#xff0c;第二个参数…

JVM类加载过程详解

文章目录 前言1.加载2.链接验证文件格式验证元数据验证字节码验证符号引用验证 准备解析 3.初始化4.类卸载 前言 类从被加载到虚拟机内存中开始到卸载出内存为止&#xff0c;它的整个生命周期可以简单概括为 7 个阶段&#xff1a;加载&#xff08;Loading&#xff09;、验证&a…

el-select 可搜索下拉框 在ios、ipad 无法唤出键盘,造成无法输入

下一篇&#xff1a;el-select 可搜索下拉框&#xff0c;选中选项后&#xff0c;希望立即失去焦点&#xff0c;收起键盘&#xff0c;执行其他逻辑 【效果图】&#xff1a;分组展示选项 >【去界面操作体验】 首先&#xff0c;通过 夸克浏览器的搜索: el-select 在 ipad 输入框…