我尝试使用kubernetes安装dgraph(单台服务器),现在我只需要删除创建的Pod。我使用kubectl delete pod pod-name删除了它,结果显示为“ pod delete”,但是pod再次创建了自己,继续复制。我需要从Kubernetes中取出那些豆荚。我现在该怎么办?
答案 0 :(得分:4)
根据您的指定,您使用此https://raw.githubusercontent.com/dgraph-io/dgraph/master/contrib/config/kubernetes/dgraph-single.yaml创建了dgraph
服务器,因此只需使用此服务器即可删除您创建的资源:
$ kubectl delete -f https://raw.githubusercontent.com/dgraph-io/dgraph/master/contrib/config/kubernetes/dgraph-single.yaml
答案 1 :(得分:3)
我确实遇到了同样的问题。运行命令“ kubectl获取部署”,您将获得各自的部署到您的Pod。复制它,然后运行命令“ kubectl delete deployment xyz”,然后检查。不会创建任何新的广告连播。
答案 2 :(得分:1)
@Shudipta Sharma的答案显然是有关删除吊舱的正确方法。我只想确保作者能够理解为什么会这样。 原因是Kubernetes的“思维定势”,其中Pod被视为短暂的,一次性的实体。随着Pod的出现,StatefulSets是确保给定数量的具有唯一身份的Pod可以在任何给定时间运行的一种方式。到达用于部署的yaml文件:
# This StatefulSet runs 1 pod with one Zero, one Alpha & one Ratel containers.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: dgraph
spec:
serviceName: "dgraph"
replicas: 1
通过部署它,基本上是说您希望Kubernetes随时运行该Pod的1个副本。当您删除Pod时,该条件不再成立,因此在删除之后,将再次产生一个Pod以确保上述条件有效。 @Shudipta Sharma提供的方式只是删除该StatefulSet,因此您不再具有所需的状态,该状态将密切注意正在运行的Pod的数量。
您可以在Kubernetes文档中找到有关此内容的更多信息:
More about Kubernetes objects and difference between each of them
答案 3 :(得分:1)
kubernetes中的Pod也取决于其类型。 像
执行kubectl describe pod <podname>
并检查
apiVersion: apps/v1
kind: StatefulSet
metadata:
现在kubectl get <pod-kind>
最后,将其删除,并且pod也将被删除。
答案 4 :(得分:1)
删除部署,而不是Pod。正是部署使另一个吊舱得以实现。删除广告连播后,您可以看到其他的广告连播名称。
kubectl get all
kubectl delete deployment DEPLOYMENTNAME
答案 5 :(得分:0)
您可以使用以下命令执行优美的pod删除:
kubectl delete pods <pod>
如果要使用kubectl版本> = 1.5强制删除Pod,请执行以下操作:
kubectl delete pods <pod> --grace-period=0 --force
如果您使用的是任何版本的kubectl <= 1.4,则应省略--force选项,并使用:
kubectl delete pods <pod> --grace-period=0
如果即使在执行了这些命令之后,pod仍处于“未知”状态,请使用以下命令从集群中删除该pod:
kubectl patch pod <pod> -p '{"metadata":{"finalizers":null}}'