4.9. 解析不匹配后验证 pod
使用以下验证步骤,验证两个 Pod 的安全上下文约束(SCC)和 SELinux 标签。
验证
运行以下命令,验证同一 SCC 是否已分配给第一个 pod:
oc describe pod <pod_name_a> |grep -i scc
$ oc describe pod <pod_name_a> |grep -i scc
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<pod_name_a
> 替换为第一个 pod 的名称。
输出示例
openshift.io/scc: restricted
openshift.io/scc: restricted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证同一 SCC 是否已分配给第一个第二个 pod:
oc describe pod <pod_name_b> |grep -i scc
$ oc describe pod <pod_name_b> |grep -i scc
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<pod_name_b
> 替换为第二个 pod 的名称。
输出示例
openshift.io/scc: restricted
openshift.io/scc: restricted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证同一 SELinux 标签是否已应用到第一个 pod:
oc exec <pod_name_a> -- ls -laZ <pvc_mountpoint>
$ oc exec <pod_name_a> -- ls -laZ <pvc_mountpoint>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<pod_name_a
> 替换为第一个 pod 的名称,并将<pvc_mountpoint
> 替换为第一个 pod 中的挂载点。
输出示例
total 4 drwxrwsrwx. 2 root 1000670000 system_u:object_r:container_file_t:s0:c10,c26 19 Aug 29 18:17 . dr-xr-xr-x. 1 root root system_u:object_r:container_file_t:s0:c10,c26 61 Aug 29 18:16 .. -rw-rw-rw-. 1 1000670000 1000670000 system_u:object_r:container_file_t:s0:c10,c26 29 Aug 29 18:17 test1 [...]
total 4 drwxrwsrwx. 2 root 1000670000 system_u:object_r:container_file_t:s0:c10,c26 19 Aug 29 18:17 . dr-xr-xr-x. 1 root root system_u:object_r:container_file_t:s0:c10,c26 61 Aug 29 18:16 .. -rw-rw-rw-. 1 1000670000 1000670000 system_u:object_r:container_file_t:s0:c10,c26 29 Aug 29 18:17 test1 [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证同一 SELinux 标签是否已应用到第二个 pod:
oc exec <pod_name_b> -- ls -laZ <pvc_mountpoint>
$ oc exec <pod_name_b> -- ls -laZ <pvc_mountpoint>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<pod_name_b
> 替换为第二个 pod 的名称,并将<pvc_mountpoint
> 替换为第二个 pod 中的挂载点。
输出示例
total 4 drwxrwsrwx. 2 root 1000670000 system_u:object_r:container_file_t:s0:c10,c26 19 Aug 29 18:17 . dr-xr-xr-x. 1 root root system_u:object_r:container_file_t:s0:c10,c26 61 Aug 29 18:16 .. -rw-rw-rw-. 1 1000670000 1000670000 system_u:object_r:container_file_t:s0:c10,c26 29 Aug 29 18:17 test1 [...]
total 4 drwxrwsrwx. 2 root 1000670000 system_u:object_r:container_file_t:s0:c10,c26 19 Aug 29 18:17 . dr-xr-xr-x. 1 root root system_u:object_r:container_file_t:s0:c10,c26 61 Aug 29 18:16 .. -rw-rw-rw-. 1 1000670000 1000670000 system_u:object_r:container_file_t:s0:c10,c26 29 Aug 29 18:17 test1 [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.9.1. 持久性卷声明 (PVC) 复制链接链接已复制到粘贴板!
每个 PersistentVolumeClaim
对象都包含 spec
和 status
字段,它们是持久性卷声明(PVC)的规格和状态,例如:
PersistentVolumeClaim
对象定义示例
4.9.2. 存储类 复制链接链接已复制到粘贴板!
另外,通过在 storageClassName
属性中指定存储类的名称,声明可以请求一个特定的存储类。只有具有请求的类的 PV( storageClassName
的值与 PVC 中的值相同)才会与 PVC 绑定。集群管理员可配置动态置备程序为一个或多个存储类提供服务。集群管理员可以按需创建一个与 PVC 中的规格匹配的 PV。
集群管理员也可以为所有 PVC 设置默认存储类。当配置了默认存储类时, PVC 必须明确要求将存储类 StorageClass
或 storageClassName
设为 ""
, 以便绑定到没有存储类的 PV。
如果一个以上的存储类被标记为默认,则只能在 storageClassName
被显式指定时才能创建 PVC。因此,应只有一个存储类被设置为默认值。
4.9.3. 访问模式 复制链接链接已复制到粘贴板!
声明在请求带有特定访问权限的存储时,使用与卷相同的格式。
4.9.4. Resources 复制链接链接已复制到粘贴板!
象 pod 一样,声明可以请求具体数量的资源。在这种情况下,请求用于存储。同样的资源模型适用于卷和声明。
4.9.5. 声明作为卷 复制链接链接已复制到粘贴板!
pod 通过将声明作为卷来访问存储。在使用声明时,声明需要和 pod 位于同一个命名空间。集群在 pod 的命名空间中找到声明,并使用它来使用这个声明后台的PersistentVolume
。卷被挂载到主机和 pod 中,例如:
挂载卷到主机和 pod 示例