Kubernetes:MountVolume.SetUp 失败:hostPath 类型检查失败不是目录
Kubernetes: MountVolume.SetUp failed: hostPath type check failed is not a directory
我正在尝试使用 hydra 部署登录同意提供程序。
这是 yaml
文件。
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: login-consent-deployment
labels:
app: login-consent-nginx
spec:
replicas: 1
selector:
matchLabels:
app: login-consent-nginx
template:
metadata:
labels:
app: login-consent-nginx
spec:
containers:
- name: login-consent-nginx
image: ubergarm/openresty-nginx-jwt:latest
command: ["/usr/local/openresty/bin/openresty", "-g", "daemon off;", "-c", "/usr/local/openresty/nginx/conf/nginx.conf"]
ports:
- name: http-lc-port
containerPort: 80
resources:
limits:
cpu: "0.1"
memory: 32Mi
volumeMounts:
- mountPath: /etc/nginx/conf.d
name: login-consent-nginx-conf-volume
- mountPath: /usr/local/openresty/nginx/html
name: login-consent-www-resources
volumes:
- name: login-consent-nginx-conf-volume
configMap:
name: login-consent-conf
items:
- key: login-consent.conf
path: login-consent.conf
- name: login-consent-www-resources
hostPath:
path: C:\Users\myUser\www
type: Directory
---
apiVersion: v1
kind: Service
metadata:
name: login-consent-service
spec:
type: LoadBalancer
selector:
app: login-consent-nginx
ports:
- protocol: TCP
name: http-lc-nginx
port: 3000
targetPort: http-lc-port
部署后 pod 描述中的错误
Warning FailedMount 2s (x4 over 6s) kubelet, docker-for-desktop MountVolume.SetUp failed for volume "login-consent-www-resources" : hostPath type check failed: C:\Users\myUser\www is not a directory
www
是我的用户主目录中的一个文件夹
$docker run --rm -v c:/Users/myUser:/data alpine ls /data
3D Objects
...
...
...
...
www
我想知道我在这里做错了什么?我将 docker 用于 windows 及其自己的集成 Kubernetes,并且我在 dockers.
中启用了我的共享文件夹 C
有什么帮助吗?
因此,在 docker 容器内,您的 c:/Users/myUser
现在可用 /data
。因此,您必须使用 /data/www
作为主机路径。
Windows-style 路径对我不起作用,直到我将其更改为 Unix-style,如下所示:
path: /C/Users/myUser/www
我正在尝试使用 hydra 部署登录同意提供程序。
这是 yaml
文件。
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: login-consent-deployment
labels:
app: login-consent-nginx
spec:
replicas: 1
selector:
matchLabels:
app: login-consent-nginx
template:
metadata:
labels:
app: login-consent-nginx
spec:
containers:
- name: login-consent-nginx
image: ubergarm/openresty-nginx-jwt:latest
command: ["/usr/local/openresty/bin/openresty", "-g", "daemon off;", "-c", "/usr/local/openresty/nginx/conf/nginx.conf"]
ports:
- name: http-lc-port
containerPort: 80
resources:
limits:
cpu: "0.1"
memory: 32Mi
volumeMounts:
- mountPath: /etc/nginx/conf.d
name: login-consent-nginx-conf-volume
- mountPath: /usr/local/openresty/nginx/html
name: login-consent-www-resources
volumes:
- name: login-consent-nginx-conf-volume
configMap:
name: login-consent-conf
items:
- key: login-consent.conf
path: login-consent.conf
- name: login-consent-www-resources
hostPath:
path: C:\Users\myUser\www
type: Directory
---
apiVersion: v1
kind: Service
metadata:
name: login-consent-service
spec:
type: LoadBalancer
selector:
app: login-consent-nginx
ports:
- protocol: TCP
name: http-lc-nginx
port: 3000
targetPort: http-lc-port
部署后 pod 描述中的错误
Warning FailedMount 2s (x4 over 6s) kubelet, docker-for-desktop MountVolume.SetUp failed for volume "login-consent-www-resources" : hostPath type check failed: C:\Users\myUser\www is not a directory
www
是我的用户主目录中的一个文件夹
$docker run --rm -v c:/Users/myUser:/data alpine ls /data
3D Objects
...
...
...
...
www
我想知道我在这里做错了什么?我将 docker 用于 windows 及其自己的集成 Kubernetes,并且我在 dockers.
中启用了我的共享文件夹 C有什么帮助吗?
因此,在 docker 容器内,您的 c:/Users/myUser
现在可用 /data
。因此,您必须使用 /data/www
作为主机路径。
Windows-style 路径对我不起作用,直到我将其更改为 Unix-style,如下所示:
path: /C/Users/myUser/www