我们有一个集群,看来似乎永远都不想完全删除名称空间,现在无法重新创建自定义指标名称空间以能够收集自定义指标以正确设置HPA。我完全理解,我可以使用所有自定义指标资源创建另一个名称空间,但是由于名称空间陷入了“终止”状态,因此与集群的整体运行状况有些关系
$ kubectl get ns
NAME STATUS AGE
cert-manager Active 14d
custom-metrics Terminating 7d
default Active 222d
nfs-share Active 15d
ingress-nginx Active 103d
kube-public Active 222d
kube-system Active 222d
lb Terminating 4d
monitoring Terminating 6d
production Active 221d
Run Code Online (Sandbox Code Playgroud)
我已经尝试将名称空间导出为JSON,删除终结器并使用已编辑的JSON文件重新创建。还尝试kubectl编辑ns自定义指标并删除“-kubernetes”终结器。一切都无济于事。
是否有人对我如何可以销毁这些“卡住”的命名空间有其他建议?
卷曲到https://master-ip/api/v1/namespace/...../finalize对我来说似乎不适用于Google Kubernetes Engine,我假设在GKE集群上不允许这些操作
尝试类似的事情也不起作用:
$ kubectl delete ns custom-metrics --grace-period=0 --force
Run Code Online (Sandbox Code Playgroud)
警告:立即删除不会等待确认正在运行的资源已终止。资源可能会无限期地继续在群集上运行。服务器错误(冲突):无法在名称空间“自定义指标”上执行操作:系统正在确保从该名称空间中删除所有内容。完成后,该名称空间将由系统自动清除。
并且此命名空间中根本没有列出任何资源:
kubectl get all -n custom-metrics或者循环访问此命名空间中的所有api资源都表明根本不存在任何资源:
kubectl api-resources --namespaced=true -o name | xargs -n 1 kubectl get -n custom-metrics
Terminating在删除与 Pod 相关的部署(和服务)后,Kubernetes Pod 的状态为。目前他们这种状态已经持续了3个小时左右。
部署和服务是从文件创建的,然后在稍后通过引用相同的文件来删除。在此期间,文件没有以任何方式更改。
kubectl apply -f mydeployment.yaml -f myservice.yaml
...
kubectl delete -f mydeployment.yaml -f myservice.yaml
Run Code Online (Sandbox Code Playgroud)
尝试手动删除任何 Pod 都会导致我的终端挂起,直到我按Ctrl+c。
kubectl kdelete pod mypod-ba97bc8ef-8rgaa --now
Run Code Online (Sandbox Code Playgroud)
有一个GitHub 问题建议输出日志来查看错误,但没有可用的日志(注意“mycontainer”是“mypod”中唯一的容器 -
kubectl logs mypod-ba97bc8ef-8rgaa
Run Code Online (Sandbox Code Playgroud)
来自服务器的错误(BadRequest):pod“mypod-ba97bc8ef-8rgaa”中的容器“mycontainer”已终止
上述GitHub 问题表明卷清理可能是问题所在。有两个卷附加到“mycontainer”,但在创建和删除部署之间都没有发生任何变化(用于存储 Azure 存储帐户名称和访问密钥的 Secret [通用] 也没有发生变化)。
尽管没有 Pod 可用的日志,但可以对它们进行描述。不过,里面似乎并没有太多有用的信息。请注意,下面的Started和Finished时间与describe 命令的输出中的时间完全相同。
kubectl describe pod mypod-ba97bc8ef-8rgaa
Run Code Online (Sandbox Code Playgroud)
>
Containers:
mycontainer:
...
State: Terminated
Exit Code: 0
Started: Mon, 01 Jan 0001 00:00:00 +0000
Finished: Mon, 01 Jan …Run Code Online (Sandbox Code Playgroud)