【发布时间】:2021-02-02 05:31:10
【问题描述】:
我无法通过 Kubernetes 中的部署 YAML 上传文件。
部署 YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: openjdk:14
ports:
- containerPort: 8080
volumeMounts:
- name: testing
mountPath: "/usr/src/myapp/docker.jar"
workingDir: "/usr/src/myapp"
command: ["java"]
args: ["-jar", "docker.jar"]
volumes:
- hostPath:
path: "C:\\Users\\user\\Desktop\\kubernetes\\docker.jar"
type: File
name: testing
我收到以下错误:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 19s default-scheduler Successfully assigned default/test-64fb7fbc75-mhnnj to minikube
Normal Pulled 13s (x3 over 15s) kubelet Container image "openjdk:14" already present on machine
Warning Failed 12s (x3 over 14s) kubelet Error: Error response from daemon: invalid mode: /usr/src/myapp/docker.jar
当我删除 volumeMount 时,它运行时出现无法访问 docker.jar 的错误。
volumeMounts:
- name: testing
mountPath: "/usr/src/myapp/docker.jar"
【问题讨论】:
-
Windows 存在一个已知错误 (github.com/kubernetes/kubernetes/issues/59876) 来跟踪此问题,该问题已因不活动而关闭,但人们已找到解决此问题的几种变通方法。您可以尝试修改对某些人有效的
/C/Users/user/Desktop/kubernetes/docker.jar的路径。你可以试试看: -
我尝试了解决方案,问题是kubernetes现在不识别它是一个文件,所以当它上传到机器时,我不知道它上传了什么并且可能创建了一个默认文件而不是我的文件。由于这是一个 Windows 问题,我将尝试将它部署在 linux 机器上。谢谢!!!!
标签: kubernetes