我试图通过扩展程序向虚拟机添加一个自定义脚本。我观察到,当创建VM时,Microsoft.Azure.Extensions.CustomScript类型默认以 "cse-agent "名称创建。因此,我尝试通过对文件进行脚本属性编码来更新扩展名。
az vm extension set \
--resource-group test_RG \
--vm-name aks-agentpool \
--name CustomScript \
--subscription ${SUBSCRIPTION_ID} \
--publisher Microsoft.Azure.Extensions \
--settings '{"script": "'"$value"'"}'
$value代表以64进制编码的脚本文件。
这样做会给我一个错误。
Deployment failed. Correlation ID: xxxx-xxxx-xxx-xxxxx.
VM has reported a failure when processing extension 'cse-agent'.
Error message: "Enable failed: failed to get configuration: invalid configuration:
'commandToExecute' and 'script' were both specified, but only one is validate at a time"
在文档中,提到当脚本属性存在时,不需要commandToExecute。如你所见,我没有提到commandToExecute,它是以某种方式从以前的扩展中获取的。有没有办法在不删除它的情况下更新它?另外,我也很想知道当删除 cse-agent 扩展时,会产生什么影响。
顺便说一下:我试着从虚拟机中删除 "cse-agent "扩展,然后添加我的扩展。它工作了。
cse-agent vm扩展是至关重要的,它管理着配置节点被认为是有效的Kubernetes节点所需的所有后安装。删除此CSE将破坏虚拟机,并将使您的集群无法操作。
如果你有兴趣对现有集群中的节点应用更改,虽然官方不支持,但你可以利用以下项目。
https:/github.comjuan-leeknode
这允许你使用DaemonSet来配置节点,当你的节点池启用了自动伸缩功能时,这对你有帮助。
对于简单的节点改变文件系统,带有主机路径的特权 pod 也可以工作。
https:/dev.todannypsnlprivileged-pod-debug-kubernetes-node-5129。