kubectl常用命令(个人记录)

本文详细介绍了如何使用Kubernetes进行Pod管理,包括获取Pod信息、查看服务日志、删除Pod、查看副本等操作。同时,也涵盖了如何查看和删除labels,以及通过标签筛选服务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、获取pod信息
1、获取当前集群运行的所有的pods的信息
kubectl get pod
 
2、获取当前集群运行的所有的pod运行在哪个节点
kubectl get pods -owide
 
3、未显示指定的namespace下,所有操作都是针对于default namespace,列出default和kube-system的pods
4、获取namsspace信息
[root@gz232-110 yang]# kubectl get namespaces
NAME          STATUS    AGE
default       Active    2d
kube-system   Active    2d
 
5、将一个pod分别以yaml和json格式输出
[root@gz232-110 yang]# kubectl get pod kafka-server-kafka1-510245904-37kzj -o yaml
[root@gz232-110 yang]# kubectl get pod kafka-server-kafka1-510245904-37kzj -o json
 
6、描述一个pod的信息
[root@gz232-110 yang]# kubectl describe po kafka-server-kafka1-510245904-37kzj
 
7、删除一个pod
[root@gz232-110 yang]# kubectl delete po kafka-server-kafka1-510245904-37kzj
 
8、 查看容器与标签
kubectl get nodes --show-labels 
 
9、删除labels
kubectl label nodes node242 search-server-search1-
 
10、查看服务日志
[root@gz232-110 yang]# kubectl logs kafka-server-kafka1-510245904-37kzj
11、查看副本
[root@gz232-110 yang]# kubectl get deploy
 
12、根据标签名字查看服务
[root@gz232-110 yang]# kubectl get pods -l name=kafka-server-kafka1,pod-template-hash=510245904,podConflictName=kafka-server-kafka1
 
13、查看创建的服务
[root@gz232-110 yang]# kubectl get svc
NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   10.10.10.1   <none>        443/TCP   2d
 
14、创建命名空间
kubectl create namespace mytest

转载于:https://www.cnblogs.com/yfb918/p/10417150.html

<think>嗯,用户现在询问的是如何使用kubectl命令重新部署StatefulSet。结合之前的对话历史,用户之前了解过LocalPV的访问模式区别,现在转向了StatefulSet的操作问题,说明他可能在管理有状态应用时遇到了部署更新的需求。用户提供的几个引用内容并不直接相关,可能是系统自动附带的参考信息,可以忽略。真正需要关注的是用户对StatefulSet重新部署的具体操作需求。考虑到StatefulSet的特殊性(每个Pod有稳定的标识),直接删除重建不是最佳实践。用户可能正在金丝雀发布或配置更新,需要触发Pod滚动更新但保留存储数据。ta的真实需求应该是“如何安全地更新StatefulSet而不丢失数据”,而不仅仅是字面上的“重新部署”。在技术层面,需要强调两种主流方法:修改镜像触发更新和删除Pod手动重建。前者更安全,后者适合强制刷新。要特别提醒强制删除的风险,因为用户之前关注过存储相关的问题,说明ta的环境可能涉及重要数据。那个云服务证书的引用图片虽然无关,倒是提醒我要注意配置变更可能导致的意外重启。不过用户当前问题不涉及证书管理,可以跳过。最后生成的相关问题要围绕StatefulSet的生命周期管理展开,这是用户知识链的自然延伸。</think> 重新部署 StatefulSet 的 `kubectl` 常用操作如下(**保留存储数据**): ### 方法一:滚动更新(推荐) ```bash # 1. 修改 StatefulSet 的镜像版本触发滚动更新(Pod 按序号顺序重建) kubectl patch statefulset <sts-name> -p '{"spec":{"template":{"spec":{"containers":[{"name":"<container-name>","image":"<new-image>:<tag>"}]}}}}' # 2. 或直接编辑配置(会触发同样效果) kubectl edit statefulset <sts-name> ``` **机制**: StatefulSet 控制器会自动按**逆序**(如 Pod-2 → Pod-1 → Pod-0)重建 Pod[^1],每个 Pod 需进入 `Ready` 状态后才会更新下一个。 ### 方法二:强制删除 Pod(慎用) ```bash # 直接删除所有 Pod(StatefulSet 会自动重建) kubectl delete pods -l app.kubernetes.io/instance=<sts-name> --force --grace-period=0 ``` **注意**: - 此操作**中断服务**,适用于开发环境[^2] - 生产环境需确保存储卷(如 PVC/PV)有容错机制 --- ### 验证操作 ```bash # 查看滚动更新状态 kubectl rollout status statefulset/<sts-name> # 检查 Pod 重建情况 kubectl get pods -l app.kubernetes.io/instance=<sts-name> --watch ``` ### 关键注意事项 1. **存储保留**:StatefulSet 重建的 Pod 会**自动绑定原 PVC**,数据不丢失[^1] 2. **有序性**:控制器严格保证 Pod 的创建/删除顺序(如 `web-0`, `web-1`) 3. **服务发现**:重建期间 `pod-name.<svc-name>` 的 DNS 记录保持稳定 > 生产建议:优先使用滚动更新,避免直接删除 Pod 导致的业务中断。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值