4.9. 解析不匹配后验证 pod


使用以下验证步骤,验证两个 Pod 的安全上下文约束(SCC)和 SELinux 标签。

验证

  1. 运行以下命令,验证同一 SCC 是否已分配给第一个 pod:

    $ oc describe pod <pod_name_a> |grep -i scc 
    1
    Copy to Clipboard Toggle word wrap
    1
    <pod_name_a > 替换为第一个 pod 的名称。

    输出示例

    openshift.io/scc: restricted
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令,验证同一 SCC 是否已分配给第一个第二个 pod:

    $ oc describe pod <pod_name_b> |grep -i scc 
    1
    Copy to Clipboard Toggle word wrap
    1
    <pod_name_b > 替换为第二个 pod 的名称。

    输出示例

    openshift.io/scc: restricted
    Copy to Clipboard Toggle word wrap

  3. 运行以下命令,验证同一 SELinux 标签是否已应用到第一个 pod:

    $ oc exec <pod_name_a> -- ls -laZ <pvc_mountpoint> 
    1
    Copy to Clipboard Toggle word wrap
    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
    [...]
    Copy to Clipboard Toggle word wrap

  4. 运行以下命令,验证同一 SELinux 标签是否已应用到第二个 pod:

    $ oc exec <pod_name_b> -- ls -laZ <pvc_mountpoint> 
    1
    Copy to Clipboard Toggle word wrap
    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
    [...]
    Copy to Clipboard Toggle word wrap

 change
@@ -1,115 +0,0 @@
// Module included in the following assemblies:
//
// * storage/understanding-persistent-storage.adoc
//* microshift_storage/understanding-persistent-storage-microshift.adoc
Copy to Clipboard Toggle word wrap

4.9.1. 持久性卷声明 (PVC)

每个 PersistentVolumeClaim 对象都包含 specstatus 字段,它们是持久性卷声明(PVC)的规格和状态,例如:

PersistentVolumeClaim 对象定义示例

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim 
1

spec:
  accessModes:
    - ReadWriteOnce 
2

  resources:
    requests:
      storage: 8Gi 
3

  storageClassName: gold 
4

status:
  ...
Copy to Clipboard Toggle word wrap

1
PVC 的名称。
2
访问模式,用来指定读/写和挂载权限。
3
PVC 可用的存储量。
4
声明所需的 StorageClass 的名称。

4.9.2. 存储类

另外,通过在 storageClassName 属性中指定存储类的名称,声明可以请求一个特定的存储类。只有具有请求的类的 PV( storageClassName的值与 PVC 中的值相同)才会与 PVC 绑定。集群管理员可配置动态置备程序为一个或多个存储类提供服务。集群管理员可以按需创建一个与 PVC 中的规格匹配的 PV。

集群管理员也可以为所有 PVC 设置默认存储类。当配置了默认存储类时, PVC 必须明确要求将存储类 StorageClassstorageClassName设为 "", 以便绑定到没有存储类的 PV。

注意

如果一个以上的存储类被标记为默认,则只能在 storageClassName 被显式指定时才能创建 PVC。因此,应只有一个存储类被设置为默认值。

4.9.3. 访问模式

声明在请求带有特定访问权限的存储时,使用与卷相同的格式。

4.9.4. Resources

象 pod 一样,声明可以请求具体数量的资源。在这种情况下,请求用于存储。同样的资源模型适用于卷和声明。

4.9.5. 声明作为卷

pod 通过将声明作为卷来访问存储。在使用声明时,声明需要和 pod 位于同一个命名空间。集群在 pod 的命名空间中找到声明,并使用它来使用这个声明后台的PersistentVolume。卷被挂载到主机和 pod 中,例如:

挂载卷到主机和 pod 示例

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: dockerfile/nginx
      volumeMounts:
      - mountPath: "/var/www/html" 
1

        name: mypd 
2

  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: myclaim 
3
Copy to Clipboard Toggle word wrap

1
在 pod 中挂载卷的路径。
2
要挂载的卷的名称。不要挂载到容器 root、/ 或主机和容器中相同的任何路径。如果容器有足够权限,可能会损坏您的主机系统(如主机的 /dev/pts 文件)。使用 /host 挂载主机是安全的。
3
要使用的 PVC 名称(存在于同一命名空间中)。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat