我正在使用helm charts
在本地集群minikube
中部署kubernetes应用程序。我能够挂载/home/$USER/log
目录,并通过使用shell命令在挂载目录中创建和修改文件进行验证
#touch /log/a
# ls
a delete.cpp dm
但当我使用python创建符号链接时,它失败了
>>> import os
>>> os.symlink("delete.cpp", "b")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
PermissionError: [Errno 1] Operation not permitted: 'delete.cpp' -> 'b'
知道为什么symlink不工作吗
我可以在不同的目录中使用相同的代码
要在我使用的minikube中装载主机目录
minikube mount ~/log:/log
我的部署脚本如下所示
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
template:
metadata:
labels:
app: my-app
spec:
volumes:
- name: log-dir
hostPath:
path: /log
containers:
- name: my-app
image: my-image
imagePullPolicy: never #It's local image
volumeMounts:
- name: log-dir
mountPath: /log
command: [ "/bin/bash", "-ce", "./my_app_executing_symlink" ]
如果您使用的是minikube,那么可以使用^{} persistent volume thatsupports hostPath在单节点集群上进行开发和测试
用法示例:
成功部署后,您将能够在
/log
目录中创建符号链接:如文件中所述:
According to the Linux manpage on ^{}, you'd get that error when the file system doesn't support symlinks.
在
minikube
挂载的情况下,这听起来当然是可能的相关问题 更多 >
编程相关推荐