在 kubernetes 中使用 Linux 作为 OS 和 kvm 作为驱动程序时,VM 文件夹是什么?
What is the VM folder when using Linux as OS and kvm as driver in kubernetes?
kubernetes docs 在挂载 hostPath.
类型的卷时为每个 OS 和每个驱动程序提供名称 VM
然而,它缺少那个案例:
- OS: linux
- 驱动程序:kvm
- 主机文件夹:/home
- 虚拟机文件夹:???
这是我想要使用的目标部署,以避免在每次更改代码后重新创建映像。
这仅适用于开发环境。在生产环境中,代码将直接在图像中。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: php-hostpath
spec:
replicas: 1
template:
metadata:
labels:
app: php-hostpath
spec:
containers:
- name: php-hostpath
image: php:7.0-apache
ports:
- containerPort: 80
volumeMounts:
- name: vol-php-hostpath
mountPath: /var/www/html
volumes:
- name: vol-php-hostpath
hostPath:
path: /hosthome/amine/DockerProjects/gcloud-kubernetes/application/06-hostPath-volume-example-minikube/src/
谢谢...
基于此doc,主机文件夹共享尚未在 KVM 驱动程序中实现。这是我实际使用的驱动程序。
要克服这个问题,有 2 个解决方案:
使用 virtualbox 驱动程序,以便您可以通过将本地主机 /home/THE_USR/...
上的路径更改为 /hosthome/THE_USR/...
来挂载 hostPath 卷
根据命令 $ minikube mount /home/THE_USR/...
将卷挂载到 minikube VM。该命令将为您 return 您在 minikube VM 上安装的卷的路径。示例如下。
例子
(a) 在 minikube VM 上安装卷
minikube mount
命令returned那个路径/mount-9p
$ minikube mount -v 3 /home/amine/DockerProjects/gcloud-kubernetes/application/06-hostPath-volume-example-minikube
Mounting /home/amine/DockerProjects/gcloud-kubernetes/application/06-hostPath-volume-example-minikube into /mount-9p on the minikubeVM
This daemon process needs to stay alive for the mount to still be accessible...
2017/03/31 06:42:27 connected
2017/03/31 06:42:27 >>> 192.168.42.241:34012 Tversion tag 65535 msize 8192 version '9P2000.L'
2017/03/31 06:42:27 <<< 192.168.42.241:34012 Rversion tag 65535 msize 8192 version '9P2000'
(b) 部署路径规范
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: php-hostpath
spec:
replicas: 1
template:
metadata:
labels:
app: php-hostpath
spec:
containers:
- name: php-hostpath
image: php:7.0-apache
ports:
- containerPort: 80
volumeMounts:
- name: vol-php-hostpath
mountPath: /var/www/html
volumes:
- name: vol-php-hostpath
hostPath:
path: /mount-9p
(c) 检查安装卷是否正常
amine@amine-Inspiron-N5110:~/DockerProjects/gcloud-kubernetes/application/06-hostPath-volume-example-minikube$ kubectl exec -ti php-hostpath-3498998593-6mxsn bash
root@php-hostpath-3498998593-6mxsn:/var/www/html# cat index.php
<?php
echo "This is my first docker project";
root@php-hostpath-3498998593-6mxsn:/var/www/html# cat index.php
<?php
echo 'This is my first hostPath on kubernetes';
root@php-hostpath-3498998593-6mxsn:/var/www/html# cat index.php
<?php
echo 'This is my first hostPath on kubernetes';
root@php-hostpath-3498998593-6mxsn:/var/www/html#
注意:这种卷挂载只是开发环境。如果我在生产环境,代码不会被挂载:它会在镜像中。
希望对其他人有所帮助。
kubernetes docs 在挂载 hostPath.
类型的卷时为每个 OS 和每个驱动程序提供名称 VM然而,它缺少那个案例:
- OS: linux
- 驱动程序:kvm
- 主机文件夹:/home
- 虚拟机文件夹:???
这是我想要使用的目标部署,以避免在每次更改代码后重新创建映像。
这仅适用于开发环境。在生产环境中,代码将直接在图像中。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: php-hostpath
spec:
replicas: 1
template:
metadata:
labels:
app: php-hostpath
spec:
containers:
- name: php-hostpath
image: php:7.0-apache
ports:
- containerPort: 80
volumeMounts:
- name: vol-php-hostpath
mountPath: /var/www/html
volumes:
- name: vol-php-hostpath
hostPath:
path: /hosthome/amine/DockerProjects/gcloud-kubernetes/application/06-hostPath-volume-example-minikube/src/
谢谢...
基于此doc,主机文件夹共享尚未在 KVM 驱动程序中实现。这是我实际使用的驱动程序。
要克服这个问题,有 2 个解决方案:
使用 virtualbox 驱动程序,以便您可以通过将本地主机
/home/THE_USR/...
上的路径更改为/hosthome/THE_USR/...
来挂载 hostPath 卷根据命令
$ minikube mount /home/THE_USR/...
将卷挂载到 minikube VM。该命令将为您 return 您在 minikube VM 上安装的卷的路径。示例如下。
例子
(a) 在 minikube VM 上安装卷
minikube mount
命令returned那个路径/mount-9p
$ minikube mount -v 3 /home/amine/DockerProjects/gcloud-kubernetes/application/06-hostPath-volume-example-minikube
Mounting /home/amine/DockerProjects/gcloud-kubernetes/application/06-hostPath-volume-example-minikube into /mount-9p on the minikubeVM
This daemon process needs to stay alive for the mount to still be accessible...
2017/03/31 06:42:27 connected
2017/03/31 06:42:27 >>> 192.168.42.241:34012 Tversion tag 65535 msize 8192 version '9P2000.L'
2017/03/31 06:42:27 <<< 192.168.42.241:34012 Rversion tag 65535 msize 8192 version '9P2000'
(b) 部署路径规范
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: php-hostpath
spec:
replicas: 1
template:
metadata:
labels:
app: php-hostpath
spec:
containers:
- name: php-hostpath
image: php:7.0-apache
ports:
- containerPort: 80
volumeMounts:
- name: vol-php-hostpath
mountPath: /var/www/html
volumes:
- name: vol-php-hostpath
hostPath:
path: /mount-9p
(c) 检查安装卷是否正常
amine@amine-Inspiron-N5110:~/DockerProjects/gcloud-kubernetes/application/06-hostPath-volume-example-minikube$ kubectl exec -ti php-hostpath-3498998593-6mxsn bash
root@php-hostpath-3498998593-6mxsn:/var/www/html# cat index.php
<?php
echo "This is my first docker project";
root@php-hostpath-3498998593-6mxsn:/var/www/html# cat index.php
<?php
echo 'This is my first hostPath on kubernetes';
root@php-hostpath-3498998593-6mxsn:/var/www/html# cat index.php
<?php
echo 'This is my first hostPath on kubernetes';
root@php-hostpath-3498998593-6mxsn:/var/www/html#
注意:这种卷挂载只是开发环境。如果我在生产环境,代码不会被挂载:它会在镜像中。
希望对其他人有所帮助。