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.

 

posted @ 2022-05-24 13:33  jinzi  阅读(32)  评论(0编辑  收藏  举报