背景
今天执行k8s命令进入容器内的时候遇到一个报错:
kubectl exec -it xxxx-service-bfbd45bb9-ktvzj bash -n bit error: exec [POD] [COMMAND] is not supported anymore. Use exec [POD] -- [COMMAND] instead See 'kubectl exec -h' for help and examples
一开始没仔细看报错,以为是因为太久没有用k8s导致命令敲错了,后来查了一下,发现命令好像没问题,但是就是进不去容器,仔细看了下报错才发现原来是新版本的 kubectl
中,命令格式发生变化了,果然,还是太久没用的原因。
错误原因
在新版本的 kubectl
里,kubectl exec
命令的格式有所改变。以前可以直接在 POD
名称之后写要执行的命令,现在需要在 POD
名称之后添加 --
分隔符,再写要执行的命令。
解决方案
需要在 POD
名称和要执行的命令之间添加 --
分隔符。下面是修改后的命令:
kubectl exec -it xxxx-service-bfbd45bb9-ktvzj -- bash -n bit
在这个命令里:
kubectl exec
:用于在 Kubernetes 集群的 Pod 内部执行命令。-it
:表示以交互式终端的形式执行命令。xxxx-service-bfbd45bb9-ktvzj
:这是要执行命令的 Pod 名称。--
:作为分隔符,用于区分 Pod 名称和要执行的命令。bash -n bit
:这是要在 Pod 内部执行的命令。
执行修改后的命令,成功进入容器内部。
果然,还是需要经常学习才行,不然k8s都要抛弃你。
除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接
文章评论