如何在 Virtualbox 中将新硬盘附加到 Minikube?
How to attach a new hard disk to Minikube in Virtualbox?
我正在尝试将硬盘连接到 Minikube。我可以通过转到设置 > 存储并从那里添加一个新硬盘来创建一个新硬盘,但我不知道如何将它连接到 Minikube。任何人都知道如何?任何帮助将不胜感激!
可以在 Virtualbox 环境中以多种方式为您的 minikube
实例提供额外的存储空间。
其中一些是:
创建一个额外的 Virtualbox 磁盘并将其挂载到 minikube
实例
将 Users
主机目录挂载到 minikube
实例 (默认完成):
使用$ minikube mount ABSOLUTE_HOST_PATH:ABSOLUTE_MINIKUBE_PATH
关注:
创建一个额外的 Virtualbox 磁盘并将其装载到 minikube
个实例
假设:
- 您已经启动了
minikube
实例并且 运行 Virtualbox 作为驱动程序
- 您将新创建的磁盘附加到您的 minikube 实例(例如
VMDK
)
步骤:
- 检查
minikube
实例是否知道新磁盘
- 准备要挂载的新磁盘
- 安装你的磁盘
- 使用您新创建的磁盘作为示例 pods
检查 minikube
实例是否知道新磁盘
您需要连接到您的 minikube
实例:
- 运行 在
powershell
/cmd
/terminal
以下命令:
$ minikube ssh
- 使用 Virtualbox 图形化
您需要确定您之前安装的磁盘。您可以使用以下命令来完成:
$ fdisk -l
此命令的输出应如下所示:
Disk /dev/sdb: 16 GiB, 17179869184 bytes, 33554432 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb925daf0
准备要挂载的新磁盘
您需要为此磁盘创建分区 table 并对其进行格式化。
$ fdisk /dev/sdb
n,p,1,enter,enter
- 为整个磁盘创建一个分区
您可以使用以下指南获取更多参考:
您还需要格式化此磁盘:
mkfs.ext4 /dev/sdb1
# 请注意数字
安装你的磁盘
您可以使用以下命令挂载此磁盘:
mkdir /data/disk
- 创建一个文件夹以将您的磁盘装入
mount /dev/sdb1 /data/disk
- 将磁盘挂载到指定位置(重启后不工作)
Disclaimer!
Creating an entry in /etc/fstab
to have this disk mounted between shutdowns/reboots will not work as /etc/fstab
will be overridden with each $ minikube start
要克服 /etc/fstab
被覆盖的问题,您需要:
- 在以下位置创建文件:
/var/lib/boot2docker/
- 姓名:
bootlocal.sh
- 内容:
mount /dev/sdb1 /data/disk
此步骤将创建一个脚本,该脚本将在每次启动 minikube
实例时执行,将磁盘安装到 /data/disk
。
参考minikube
中的启动命令:
使用您新创建的磁盘作为示例 pods
默认minikube
实例支持hostPath
:
您可以使用以下示例创建 PV 和 PVC:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0001
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
hostPath:
path: /data/disk/pv0001
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv0001-claim
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeName: pv0001
您可以将之前创建的 PVC 挂载到 pod:
apiVersion: v1
kind: Pod
metadata:
name: ubuntu
spec:
volumes:
- name: storage-name
persistentVolumeClaim:
claimName: pv0001-claim
containers:
- name: ubuntu
image: ubuntu
command:
- sleep
- "infinity"
volumeMounts:
- mountPath: "/storage"
name: storage-name
我在 /data/disk/pv0001
中放入了一个文件来检查它是否正常工作:
$ kubectl exec -it ubuntu -- cat /storage/hello.txt
Hello there!
我正在尝试将硬盘连接到 Minikube。我可以通过转到设置 > 存储并从那里添加一个新硬盘来创建一个新硬盘,但我不知道如何将它连接到 Minikube。任何人都知道如何?任何帮助将不胜感激!
可以在 Virtualbox 环境中以多种方式为您的 minikube
实例提供额外的存储空间。
其中一些是:
创建一个额外的 Virtualbox 磁盘并将其挂载到
minikube
实例将
Users
主机目录挂载到minikube
实例 (默认完成):使用
$ minikube mount ABSOLUTE_HOST_PATH:ABSOLUTE_MINIKUBE_PATH
关注:
创建一个额外的 Virtualbox 磁盘并将其装载到 minikube
个实例
假设:
- 您已经启动了
minikube
实例并且 运行 Virtualbox 作为驱动程序 - 您将新创建的磁盘附加到您的 minikube 实例(例如
VMDK
)
步骤:
- 检查
minikube
实例是否知道新磁盘 - 准备要挂载的新磁盘
- 安装你的磁盘
- 使用您新创建的磁盘作为示例 pods
检查 minikube
实例是否知道新磁盘
您需要连接到您的 minikube
实例:
- 运行 在
powershell
/cmd
/terminal
以下命令:$ minikube ssh
- 使用 Virtualbox 图形化
您需要确定您之前安装的磁盘。您可以使用以下命令来完成:
$ fdisk -l
此命令的输出应如下所示:
Disk /dev/sdb: 16 GiB, 17179869184 bytes, 33554432 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb925daf0
准备要挂载的新磁盘
您需要为此磁盘创建分区 table 并对其进行格式化。
$ fdisk /dev/sdb
n,p,1,enter,enter
- 为整个磁盘创建一个分区
您可以使用以下指南获取更多参考:
您还需要格式化此磁盘:
mkfs.ext4 /dev/sdb1
# 请注意数字
安装你的磁盘
您可以使用以下命令挂载此磁盘:
mkdir /data/disk
- 创建一个文件夹以将您的磁盘装入mount /dev/sdb1 /data/disk
- 将磁盘挂载到指定位置(重启后不工作)
Disclaimer!
Creating an entry in
/etc/fstab
to have this disk mounted between shutdowns/reboots will not work as/etc/fstab
will be overridden with each$ minikube start
要克服 /etc/fstab
被覆盖的问题,您需要:
- 在以下位置创建文件:
/var/lib/boot2docker/
- 姓名:
bootlocal.sh
- 内容:
mount /dev/sdb1 /data/disk
此步骤将创建一个脚本,该脚本将在每次启动 minikube
实例时执行,将磁盘安装到 /data/disk
。
参考minikube
中的启动命令:
使用您新创建的磁盘作为示例 pods
默认minikube
实例支持hostPath
:
您可以使用以下示例创建 PV 和 PVC:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0001
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
hostPath:
path: /data/disk/pv0001
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv0001-claim
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeName: pv0001
您可以将之前创建的 PVC 挂载到 pod:
apiVersion: v1
kind: Pod
metadata:
name: ubuntu
spec:
volumes:
- name: storage-name
persistentVolumeClaim:
claimName: pv0001-claim
containers:
- name: ubuntu
image: ubuntu
command:
- sleep
- "infinity"
volumeMounts:
- mountPath: "/storage"
name: storage-name
我在 /data/disk/pv0001
中放入了一个文件来检查它是否正常工作:
$ kubectl exec -it ubuntu -- cat /storage/hello.txt
Hello there!