简体   繁体   English

无法删除处于 ContainerCreating 状态的 pod

[英]Cannot delete pod in status ContainerCreating

I have a failed pod which is not properly created.我有一个未正确创建的失败 pod。 I used these steps:我使用了这些步骤:

kubernetes@kubernetes1:~$ cd /opt/registry
kubernetes@kubernetes1:/opt/registry$ kubectl create -f private-registry1.yaml
persistentvolume/pv1 created
kubernetes@kubernetes1:/opt/registry$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                       READY   STATUS              RESTARTS       AGE
default       private-repository-k8s-6ddbcd9c45-s6dfq    0/1     ContainerCreating   0              2d1h
kube-system   calico-kube-controllers-58dbc876ff-dgs77   1/1     Running             4 (125m ago)   2d13h
kube-system   calico-node-czmzc                          1/1     Running             4 (125m ago)   2d13h
kube-system   calico-node-q4lxz                          1/1     Running             4 (125m ago)   2d13h
kube-system   coredns-565d847f94-k94z2                   1/1     Running             4 (125m ago)   2d13h
kube-system   coredns-565d847f94-nt27m                   1/1     Running             4 (125m ago)   2d13h
kube-system   etcd-kubernetes1                           1/1     Running             5 (125m ago)   2d13h
kube-system   kube-apiserver-kubernetes1                 1/1     Running             5 (125m ago)   2d13h
kube-system   kube-controller-manager-kubernetes1        1/1     Running             5 (125m ago)   2d13h
kube-system   kube-proxy-97djs                           1/1     Running             5 (125m ago)   2d13h
kube-system   kube-proxy-d8bzs                           1/1     Running             4 (125m ago)   2d13h
kube-system   kube-scheduler-kubernetes1                 1/1     Running             5 (125m ago)   2d13h

As you can see the pod is stucked in status ContainerCreating.如您所见,pod 卡在状态 ContainerCreating。 I tried to delete it:我试图删除它:

kubernetes@kubernetes1:/opt/registry$ kubectl get deployments --all-namespaces
NAMESPACE     NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
default       private-repository-k8s    0/1     1            0           2d2h
kube-system   calico-kube-controllers   1/1     1            1           2d14h
kube-system   coredns                   2/2     2            2           2d14h

Delete command:删除命令:

kubernetes@kubernetes1:/opt/registry$ kubectl delete -n default deployment private-repository-k8s
deployment.apps "private-repository-k8s" deleted

kubernetes@kubernetes1:/opt/registry$ kubectl get deployments --all-namespaces
NAMESPACE     NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   calico-kube-controllers   1/1     1            1           2d14h
kube-system   coredns                   2/2     2            2           2d14h


kubernetes@kubernetes1:/opt/registry$ kubectl create -f private-registry1.yaml
Error from server (AlreadyExists): error when creating "private-registry1.yaml": persistentvolumes "pv1" already exists

private-registry1.yaml configuration: private-registry1.yaml 配置:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv1
spec:
  capacity:
    storage: 256Mi # specify your own size
  volumeMode: Filesystem
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /opt/registry # can be any path
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions: # specify the node label which maps to your control-plane node.
        - key: kubernetes1
          operator: In
          values:
          - controlplane-1
  accessModes:
    - ReadWriteOnce # only 1 node will read/write on the path.
    # - ReadWriteMany # multiple nodes will read/write on the path

Do you know how I can delete pv1 ?你知道我怎样才能删除pv1吗?

You can delete the PV using the following two commands:您可以使用以下两个命令删除 PV:

kubectl delete pv <pv_name> --grace-period=0 --force

And then deleting the finalizer using:然后使用以下方法删除终结器:

kubectl patch pv <pv_name> -p '{"metadata": {"finalizers": null}}'

As you have created using a file, you can also use the following command to delete the pv:正如您使用文件创建的一样,您还可以使用以下命令删除 pv:

kubectl delete -f private-registry1.yaml

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM