6.3.4. 将卷添加到 pod
您可以将卷和卷挂载添加到 pod。
流程
将卷和/或卷挂载添加到 pod 模板中:
$ oc set volume <object_type>/<name> --add [options]
选项 | 描述 | 默认 |
---|---|---|
| 卷的名称。 | 若未指定,则自动生成。 |
|
卷源的名称。支持的值有 |
|
|
按名称选择容器。它还可以使用通配符 |
|
|
所选容器内的挂载路径。不要挂载到容器 root、 | |
|
主机路径。 | |
|
secret 的名称。 | |
|
configmap 的名称。 | |
|
持久性卷声明的名称。 | |
|
以 JSON 字符串表示的卷源详情。如果 | |
|
显示修改后的对象,而不在服务器上更新它们。支持的值有 | |
| 输出给定版本的修改后对象。 |
|
例如:
将新卷源 emptyDir 添加到 registry
DeploymentConfig
对象中:$ oc set volume dc/registry --add
提示您还可以应用以下 YAML 来添加卷:
例 6.1. 带有添加卷的部署配置示例
kind: DeploymentConfig apiVersion: apps.openshift.io/v1 metadata: name: registry namespace: registry spec: replicas: 3 selector: app: httpd template: metadata: labels: app: httpd spec: volumes: 1 - name: volume-pppsw emptyDir: {} containers: - name: httpd image: >- image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest ports: - containerPort: 8080 protocol: TCP
- 1
- 添加卷源 emptyDir。
为复制控制器 r1 添加含有 secret secret1 的卷 v1 并挂载到容器中的 /data:
$ oc set volume rc/r1 --add --name=v1 --type=secret --secret-name='secret1' --mount-path=/data
提示您还可以应用以下 YAML 来添加卷:
例 6.2. 带有添加卷和 secret 的复制控制器示例
kind: ReplicationController apiVersion: v1 metadata: name: example-1 namespace: example spec: replicas: 0 selector: app: httpd deployment: example-1 deploymentconfig: example template: metadata: creationTimestamp: null labels: app: httpd deployment: example-1 deploymentconfig: example spec: volumes: 1 - name: v1 secret: secretName: secret1 defaultMode: 420 containers: - name: httpd image: >- image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest volumeMounts: 2 - name: v1 mountPath: /data
使用声明名称 pvc1 将现有持久性卷 v1 添加到磁盘上的部署配置 dc.json,将该卷挂载到容器 c1 中的 /data 并更新服务器上的
DeploymentConfig
:$ oc set volume -f dc.json --add --name=v1 --type=persistentVolumeClaim \ --claim-name=pvc1 --mount-path=/data --containers=c1
提示您还可以应用以下 YAML 来添加卷:
例 6.3. 添加持久性卷的部署配置示例
kind: DeploymentConfig apiVersion: apps.openshift.io/v1 metadata: name: example namespace: example spec: replicas: 3 selector: app: httpd template: metadata: labels: app: httpd spec: volumes: - name: volume-pppsw emptyDir: {} - name: v1 1 persistentVolumeClaim: claimName: pvc1 containers: - name: httpd image: >- image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest ports: - containerPort: 8080 protocol: TCP volumeMounts: 2 - name: v1 mountPath: /data
为所有复制控制器添加基于 Git 存储库 https://github.com/namespace1/project1 且具有修订 5125c45f9f563 的卷 v1:
$ oc set volume rc --all --add --name=v1 \ --source='{"gitRepo": { "repository": "https://github.com/namespace1/project1", "revision": "5125c45f9f563" }}'