下面是找到这里的例子。
我只是想了解库伯奈特斯的卷是如何工作的。我正在本地测试,所以我需要和minikube抗衡。我试着让这件事尽可能简单。我正在使用nginx,希望它能够显示从本地主机上的文件夹中挂载的内容。
环境: macOS 10.12.5微型库0.20.0 + xhvve
我使用的是最新的来自GitHub的ngninx图像,没有任何修改。
这是完美的工作,当我运行码头形象以外的迷你库。
docker run --name flow-4 \
-v $(pwd)/website:/usr/share/nginx/html:ro \
-P -d nginx但是,当我试图在中运行它时,当我访问托管页面-always时,我会得到一个404响应。为什么?
这是我的kubernetes配置文件..。
kubernets/部署/部署
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
run: flow-4
name: flow-4
spec:
replicas: 1
selector:
matchLabels:
run: flow-4
template:
metadata:
labels:
run: flow-4
spec:
containers:
- image: nginx
name: flow-4
ports:
- containerPort: 80
volumeMounts:
- mountPath: /usr/share/nginx/html
name: flow-4-volume
volumes:
- name: flow-4-volume
hostPath:
path: /Users/myuser/websitekubernets/deploy/svc.yaml
apiVersion: v1
kind: Service
metadata:
labels:
run: flow-4
name: flow-4
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: flow-4
type: NodePort最后,我像这样运行它:
kubectl create -f kubernetes/deploy/
minikube service flow-4当它在我的浏览器中打开时,我不会在网站文件夹中看到我的index.html页面,我只会收到一条'404 Not‘消息(在nginx/1.13.3页脚上方)
我为什么得到404?nginx不能看到我挂载的文件夹的内容吗?托管库的虚拟机没有访问我的‘网站’文件夹吗?
我想这就是问题所在。我进入库伯内特斯舱
kubectl exec -it flow-4-1856897391-m0jh1 /bin/bash当我查看/usr/share/nginx/html文件夹时,它是空的。如果我手动添加一个index.html文件,那么我可以在浏览器中看到它。但是为什么Kubernetes不把我的本地驱动器安装到这个文件夹呢?
更新
从我/User/**文件夹安装完整路径似乎有问题。相反,我使用'minikube挂载‘命令将本地文件夹容器index.html挂载到minikube中。然后,在另一个终端中,我启动了我的部署,它可以很好地看到index.html文件。
下面是我更新的deployment.yaml文件,它有更清晰的文件名,以更好地解释不同的文件夹以及它们的安装位置.
这是我的kubernetes配置文件..。
kubernets/部署/部署
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
run: flow-4
name: flow-4
spec:
replicas: 1
selector:
matchLabels:
run: flow-4
template:
metadata:
labels:
run: flow-4
spec:
containers:
- image: nginx
name: flow-4
ports:
- containerPort: 80
volumeMounts:
- mountPath: /usr/share/nginx/html
name: flow-4-volume
volumes:
- name: flow-4-volume
hostPath:
path: /kube-website它使用的是之前发布的相同的svc.yaml文件。
然后像这样从我的当前目录中运行整个过程。
mkdir local-websiteecho 'Hello from local storage' > local-website/index.htmlminikube mount local-website:/kube-website
让这一切..。在一个新的终端里,同一个文件夹.
kubectl create -f kubernetes/deploy/一旦所有的吊舱都在运行..。
minikube service flow-4您应该在浏览器中看到“本地存储中的Hello”消息。您可以编辑本地index.html文件,然后刷新浏览器以查看内容的更改。
你可以用这个把它全部撕下来..。kubectl delete deployments,services flow-4
发布于 2017-07-18 14:43:56
您创建的文件夹可能不在kubernetes节点(它是minikube )。
尝试在vm中创建文件夹,然后重试
ssh -i ~/.minikube/machines/minikube/id_rsa docker@$(minikube ip)
mkdir /Users/myuser/website还请看一看minikube主机装入文件夹特性
https://stackoverflow.com/questions/45114910
复制相似问题