8.18.2.2. Red Hat Enterprise Linux CoreOS(RHCOS)8 でのホストパスプロビジョナーの SELinux の設定

HostPathProvisioner カスタムリソースを作成する前に、SELinux を設定する必要があります。Red Hat Enterprise Linux CoreOS(RHCOS)8 ワーカーで SELinux を設定するには、各ノードに MachineConfig オブジェクトを作成する必要があります。

前提条件

  • ホストパスプロビジョナーが作成する永続ボリューム (PV) 用に、各ノードにバッキングディレクトリーを作成すること。

    重要

    / パーティションは RHCOS で読み取り専用であるため、バッキングディレクトリーはファイルシステムのルートディレクトリーに配置することはできません。たとえば、/var/<directory_name> を使用することができますが、/& lt;directory_name> を使用することはできません

手順

  1. MachineConfig ファイルを作成します。以下は例になります。

    $ touch machineconfig.yaml
  2. ファイルを編集し、ホストパスプロビジョナーが PV を作成するディレクトリーを組み込みます。以下は例になります。

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      name: 50-set-selinux-for-hostpath-provisioner
      labels:
        machineconfiguration.openshift.io/role: worker
    spec:
      config:
        ignition:
          version: 3.2.0
        systemd:
          units:
            - contents: |
                [Unit]
                Description=Set SELinux chcon for hostpath provisioner
                Before=kubelet.service
    
                [Service]
                ExecStart=/usr/bin/chcon -Rt container_file_t <backing_directory_path> 1
    
                [Install]
                WantedBy=multi-user.target
              enabled: true
              name: hostpath-provisioner.service
    1
    プロビジョナーが PV を作成するバッキングディレクトリーを指定します。このディレクトリーは、ファイルシステムの root ディレクトリー(/)に配置してはいけません
  3. MachineConfig オブジェクトを作成します。

    $ oc create -f machineconfig.yaml -n <namespace>