当rancher建好集群后,k8s集群出现有几个pod在rancher ui上无法删除,后来尝试从k8s的kubectl命令行进行删除。首先是

pod是ternamtied的,这类直接使用强制删除命令,首先使用kubectl get nodes获取所有节点,kubectl get namespace获取所有命名空间。使用参数 -o wide 显示所有信息列。

强制删除资源命令如下

kubectl delete pod podname --force --grace-period=0 (pod是一种资源,还有其它资源也可以如类似命令)

对于pod是pending状态,有时即使使用强制删除也会重新恢复,这个时候就需要先了解pod状态使用如下命令

kubectl describe pod podname |grep -E '搜索内容'

当时情况是主机名改了,然后pod是挂在该之前主机上,使用kubectl get nodes会获取节点状态处于not ready状态

使用kubectl delete node nodename删除后pod也会删除掉。

总的来说当遇到k8s的问题,还是需要先查看相关日志信息,从日志信息里分析原因。

附上常用的kubectl的命令 (官方地址https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

kubectl annotate – 更新资源的注解。
kubectl api-versions – 以“组/版本”的格式输出服务端支持的API版本。
kubectl apply – 通过文件名或控制台输入,对资源进行配置。
kubectl attach – 连接到一个正在运行的容器。
kubectl autoscale – 对replication controller进行自动伸缩。
kubectl cluster-info – 输出集群信息。
kubectl config – 修改kubeconfig配置文件。
kubectl create – 通过文件名或控制台输入,创建资源。
kubectl delete – 通过文件名、控制台输入、资源名或者label selector删除资源。
kubectl describe – 输出指定的一个/多个资源的详细信息。
kubectl edit – 编辑服务端的资源。
kubectl exec – 在容器内部执行命令。
kubectl expose – 输入replication controller,service或者pod,并将其暴露为新的kubernetes service。
kubectl get – 输出一个/多个资源。
kubectl label – 更新资源的label。
kubectl logs – 输出pod中一个容器的日志。
kubectl namespace -(已停用)设置或查看当前使用的namespace。
kubectl patch – 通过控制台输入更新资源中的字段。
kubectl port-forward – 将本地端口转发到Pod。
kubectl proxy – 为Kubernetes API server启动代理服务器。
kubectl replace – 通过文件名或控制台输入替换资源。
kubectl rolling-update – 对指定的replication controller执行滚动升级。
kubectl run – 在集群中使用指定镜像启动容器。
kubectl scale – 为replication controller设置新的副本数。
kubectl stop – (已停用)通过资源名或控制台输入安全删除资源。
kubectl version – 输出服务端和客户端的版本信息。
kubectl cordon    设定node不可使用|
kubectl uncordon    设定node可以使用|
kubectl drain    设定node进入维护模式|
kubectl taint 设置节点的亲和性

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐