k8s中如何正确删除pod
我们以kind类型为deployment,声明式创建k8s pod
nginx-deployment.yaml样例文件如下:
[root@k2 default]# cat mynginx-default.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: 2021-08-27T06:31:57Z generation: 1 labels: run: mynginx //目标pod拥有此标签 name: mynginx // #deployment的名称,全局唯一 namespace: default //部署所在的命名空间 selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/mynginx spec: progressDeadlineSeconds: 600 replicas: 1 //#pod replicas期待的数量,目前设定了2个pod revisionHistoryLimit: 10 selector: matchLabels: run: mynginx strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: //根据此模板创建pod副本 metadata: creationTimestamp: null labels: run: mynginx spec: containers: //容器设置,可以有多个容器设置 - image: nginx:1.15-alpine //容器镜像(名称+版本) imagePullPolicy: IfNotPresent //远程拉取还是本地加载 name: mynginx //容器名称 resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 status: availableReplicas: 1 conditions: - lastTransitionTime: 2021-08-27T06:31:57Z lastUpdateTime: 2021-08-27T06:31:57Z message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: 2021-08-27T06:31:57Z lastUpdateTime: 2021-08-27T06:33:28Z message: ReplicaSet "mynginx-5dcdc64d96" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1
pod来说关键有几个部分apiVersion,kind,metadata,spec,status
具体查看解释命令如下:
[root@k2 default]# kubectl explain pod.status
[root@k2 default]# kubectl explain pod.spec
[root@k2 default]# kubectl explain pod.apiVersion
[root@k2 default]# kubectl explain pod.kind
[root@k2 default]# kubectl explain pod.metadata
1、创建pod
[root@k2 default]# kubectl apply -f mynginx-default.yaml
2、删除对应的kind类型资源
否则只是删除pod是不管用的,还会看到pod,因为*.yaml文件中定义了副本数量
删除pod
[root@k2 default]# kubectl get pod -n default NAME READY STATUS RESTARTS AGE pod-8698b5449c-grbdm 1/1 Running 0 8s [root@k2 default]# kubectl delete pod mynginx-5dcdc64d96-mgtk9 -n default
pod "mynginx-5dcdc64d96-mgtk9" deleted
查看pod仍然存储
[root@k2 default]#kubectl get pod -n default NAME READY STATUS RESTARTS AGE mynginx-5dcdc64d96-mgtk9 1/1 Running 0 7s
删除deployment
[root@k2 default]# kubectl get deployment -n default NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE mynginx-5dcdc64d96-mgtk9 1 1 1 1 1h
[root@k2 default]# kubectl delete deployment mynginx
deployment.extensions "mynginx" deleted
再次查看pod消失
[root@k2 default]# kubectl get deployment -n default No resources found. [root@test2 ~]# kubectl get pod -n default No resources found.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类