如何将临时卷转换为持久卷声明
How to Transition Ephemeral Volumes to Persistent Volume Claims
目前,我的一些 pods 正在使用临时卷(由 Docker 在容器级别创建的卷)。我想要某种形式的持久数据存储在主机上的特定目录中(如 Docker 中的绑定挂载),这样我的 pods 可以重新启动而不会丢失数据。 Persistent Volume Claims 似乎是执行此操作的最佳方式。我应该如何将现有 pods 转换为使用从现有临时卷复制数据的 PVC?
- 在主机上,创建用于保存数据的目录。例如。
mkdir /local_data
- 复制数据到本地目录。例如。
kubectl cp <namespace>/<pod>:/path/in/the/container /local_data
- 检查并再次检查您在
/local_data
中的所有数据是否完好无损
- 使用以下规范创建一个新 pod。
示例:
kind: Pod
...
spec:
...
nodeName: <name> # <-- if you have multiple nodes this ensure your pod always run on the host that hold the data
containers:
- name: ...
...
volumeMounts:
- name: local_data
mountPath: /path/in/the/container
...
volumes:
- name: local_data
hostPath: /local_data
type: Directory
应用并检查您的 pod 是否按预期运行
目前,我的一些 pods 正在使用临时卷(由 Docker 在容器级别创建的卷)。我想要某种形式的持久数据存储在主机上的特定目录中(如 Docker 中的绑定挂载),这样我的 pods 可以重新启动而不会丢失数据。 Persistent Volume Claims 似乎是执行此操作的最佳方式。我应该如何将现有 pods 转换为使用从现有临时卷复制数据的 PVC?
- 在主机上,创建用于保存数据的目录。例如。
mkdir /local_data
- 复制数据到本地目录。例如。
kubectl cp <namespace>/<pod>:/path/in/the/container /local_data
- 检查并再次检查您在
/local_data
中的所有数据是否完好无损
- 使用以下规范创建一个新 pod。
示例:
kind: Pod
...
spec:
...
nodeName: <name> # <-- if you have multiple nodes this ensure your pod always run on the host that hold the data
containers:
- name: ...
...
volumeMounts:
- name: local_data
mountPath: /path/in/the/container
...
volumes:
- name: local_data
hostPath: /local_data
type: Directory
应用并检查您的 pod 是否按预期运行