我跑步
kubectl edit deployment
更改我的其中一个 Pod 的版本(此命令在我的文本编辑器中打开一个临时文件,然后我通常编辑并关闭此临时文件),甚至在我在文本编辑器中close此临时文件之前,我可以看到在我的 bash 中遵循以下注释。
Edit cancelled, no changes made.
在我安装fish之前一切都好,我尝试切换到bash,但也没有帮助。
我该如何修复它?
这样的事情很可能是由于它打开了一个分叉而不是留下来的编辑器造成的。
这意味着您需要将 $EDITOR 设置为等待的编辑器。例如。
nano
、vim
或 emacs
应该有效,例如如果您使用 sublime text,则必须使用 subl -w
明确告诉它等待。
目前还不清楚您正在运行哪个 shell。如果是 bash,则运行
export EDITOR="subl -w"
,在 Fish 中运行 set -gx EDITOR subl -w
(如果您使用 Fish ,则运行
"subl -w"
< 3.0).)
使用 vim,当您尝试保存时,它会保存在
/tmp/
路径中指定的已编辑副本,以及退出编辑器时的错误消息。
这相当于使用
get
资源,在文本编辑器中编辑它,然后应用更新版本的资源:
kubectl get deployment my-nginx -o yaml > /tmp/nginx.yaml
vim /tmp/nginx.yaml
kubectl apply -f /tmp/nginx.yaml
deployment.apps/my-nginx configured
然后删除该文件
rm /tmp/nginx.yaml
所以基本上对保存在
apply
中的文件使用
/tmp/<file.yaml>
当 kubectl 未选择您所做的更改时,也可能会发生此问题,例如。因为 YAML 不正确。
问题复制示例:
spec: clusterIP: 10.152.183.151 clusterIPs: - 10.152.183.151 ports: - port: 80 protocol: TCP targetPort: 80 selector: app: xxx app: rng
我有同样的问题,但编辑器的类型不是问题,问题是你在编辑 yaml 文件时需要小心,因为缩进中的任何更改都不会保存我正在更改版本的文件nginx x 图像,当我在 nginx 之后输入标签:1.16 时,图像位置发生了变化,因此我尝试将其返回到原始位置,文件确认我的编辑成功