A. *_*val 3 shell sh fish kubernetes
我跑
kubectl edit deployment
Run Code Online (Sandbox Code Playgroud)
更改我的一个Pod的版本(此命令在文本编辑器中打开一个临时文件,然后我通常会编辑并关闭该临时文件),甚至在我在文本编辑器中关闭该临时文件之前,我也可以在我的拳头。
Edit cancelled, no changes made.
Run Code Online (Sandbox Code Playgroud)
在安装fish之前还可以,然后尝试切换到bash,但它也无济于事。
我该如何解决?
对@faho提供的充足答案的改进。
使用 $EDITOR 变量的方法可以实现目标,但会更改默认的命令行编辑器。这可能会影响依赖于此设置的其他程序(例如 crontab、edquota)。
最好依赖 $KUBE_EDITOR 变量。例如,对于一次性使用,您可以尝试:
KUBE_EDITOR="nano" kubectl edit deploy/hello-world
Run Code Online (Sandbox Code Playgroud)
(请参阅编辑资源)
之所以这样,是因为它打开了一个分叉而不是停留的编辑器。
这意味着您需要将$ EDITOR设置为等待的编辑器。例如nano,vim或emacs应该可以工作,例如,如果您使用崇高的文字,则必须使用subl -w显式告诉它等待。
目前尚不清楚您正在运行哪个shell。如果是bash,请运行export EDITOR="subl -w",以鱼运行set -gx EDITOR subl -w(或者"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
Run Code Online (Sandbox Code Playgroud)
然后删除该文件
rm /tmp/nginx.yaml
Run Code Online (Sandbox Code Playgroud)
所以基本上使用apply保存在/tmp/<file.yaml>
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |