Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

작업자 노드를 준비합니다

기여자

Kubernetes 클러스터의 모든 작업자 노드는 Pod용으로 프로비저닝된 볼륨을 마운트할 수 있어야 합니다. 작업자 노드를 준비하려면 드라이버 선택에 따라 NFS, iSCSI, NVMe/TCP 또는 FC 툴을 설치해야 합니다.

올바른 도구 선택

드라이버 조합을 사용하는 경우 드라이버에 필요한 모든 도구를 설치해야 합니다. 최신 버전의 RedHat CoreOS에는 기본적으로 도구가 설치되어 있습니다.

NFS 툴

"NFS 툴을 설치합니다" 다음을 사용하는 경우: ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, azure-netapp-files, gcp-cvs.

iSCSI 툴

"iSCSI 도구를 설치합니다" 다음을 사용하는 경우: ontap-san, ontap-san-economy, solidfire-san.

NVMe 툴

"NVMe 툴을 설치합니다" 을 사용하는 경우 ontap-san NVMe/TCP(Nonvolatile Memory Express) 프로토콜을 통한 NVMe(Nonvolatile Memory Express)

참고 NVMe/TCP에 ONTAP 9.12 이상을 사용하는 것이 좋습니다.
SCSI over FC 도구

FC(SCSI over Fibre Channel)는 Trident 24.10 릴리스의 기술 미리 보기 기능입니다.

"FC 툴을 설치합니다" sanType fcp(SCSI over FC)을 사용하는 경우 ontap-san

자세한 내용은 을 "FC 및 AMP, FC-NVMe SAN 호스트를 구성하는 방법" 참조하십시오.

노드 서비스 검색

Trident는 노드에서 iSCSI 또는 NFS 서비스를 실행할 수 있는지 여부를 자동으로 감지합니다.

참고 노드 서비스 검색은 검색된 서비스를 식별하지만 서비스가 올바르게 구성된다고 보장하지 않습니다. 반대로 검색된 서비스가 없으면 볼륨 마운트가 실패한다고 보장할 수 없습니다.
이벤트를 검토합니다

Trident는 검색된 서비스를 식별하기 위해 노드에 대한 이벤트를 생성합니다. 이러한 이벤트를 검토하려면 다음을 실행합니다.

kubectl get event -A --field-selector involvedObject.name=<Kubernetes node name>
검색된 서비스를 검토합니다

Trident는 Trident 노드 CR의 각 노드에 대해 활성화된 서비스를 식별합니다. 검색된 서비스를 보려면 다음을 실행합니다.

tridentctl get node -o wide -n <Trident namespace>

NFS 볼륨

운영 체제의 명령을 사용하여 NFS 툴을 설치합니다. 부팅 중에 NFS 서비스가 시작되었는지 확인합니다.

RHEL 8+
sudo yum install -y nfs-utils
우분투
sudo apt-get install -y nfs-common
경고 볼륨에 연결할 때 오류가 발생하지 않도록 NFS 툴을 설치한 후 작업자 노드를 재부팅합니다.

iSCSI 볼륨

Trident는 자동으로 iSCSI 세션을 설정하고, LUN을 스캔하고, 다중 경로 장치를 검색하고, 포맷하고, Pod에 마운트할 수 있습니다.

iSCSI 자동 복구 기능

ONTAP 시스템의 경우 Trident는 5분마다 iSCSI 자동 복구를 실행하여 다음을 수행합니다.

  1. * 원하는 iSCSI 세션 상태와 현재 iSCSI 세션 상태를 식별합니다.

  2. * 원하는 상태를 현재 상태와 비교 * 하여 필요한 수리를 확인합니다. Trident는 수리 우선 순위와 수리 선점 시기를 결정합니다.

  3. * 현재 iSCSI 세션 상태를 원하는 iSCSI 세션 상태로 되돌리는 데 필요한 복구 수행 *

참고 자가 치유 활동 로그는 trident-main 해당 Demonset POD의 컨테이너에 있습니다. 로그를 보려면 Trident 설치 중에 "true"로 설정해야 debug 합니다.

Trident iSCSI 자동 복구 기능은 다음과 같은 이점을 제공합니다.

  • 네트워크 연결 문제가 발생한 후 발생할 수 있는 오래되거나 비정상적인 iSCSI 세션. 오래된 세션의 경우 Trident는 로그아웃하기 전에 7분 동안 기다렸다가 포털과의 연결을 다시 설정합니다.

    참고 예를 들어, 스토리지 컨트롤러에서 CHAP 암호를 회전시키고 네트워크에서 연결이 끊어지면 이전의 (stale) CHAP 암호가 지속될 수 있습니다. 자동 복구 기능은 이 문제를 인식하고 업데이트된 CHAP 암호를 적용하기 위해 세션을 자동으로 다시 설정할 수 있습니다.
  • iSCSI 세션이 누락되었습니다

  • LUN이 없습니다

  • Trident 업그레이드 전에 고려해야 할 사항 *

  • 23.04+에서 도입된 노드별 igroup만 사용 중인 경우, iSCSI 자동 복구가 SCSI 버스의 모든 장치에 대해 SCSI 재검색을 시작합니다.

  • 백엔드 범위 igroup(23.04부터 더 이상 사용되지 않음)만 사용 중인 경우 iSCSI 자동 복구가 SCSI 버스에서 정확한 LUN ID에 대한 SCSI 재검색을 시작합니다.

  • 노드당 igroup과 백엔드 범위 igroup이 함께 사용되고 있는 경우 iSCSI 자동 복구가 SCSI 버스에서 정확한 LUN ID에 대한 SCSI 재검색을 시작합니다.

iSCSI 도구를 설치합니다

운영 체제의 명령을 사용하여 iSCSI 도구를 설치합니다.

시작하기 전에
  • Kubernetes 클러스터의 각 노드에는 고유한 IQN이 있어야 합니다. * 이것은 필수 전제 조건입니다 *.

  • RHCOS 버전 4.5 이상 또는 기타 RHEL 호환 Linux 배포를 사용하는 경우 를 참조하십시오 solidfire-san 드라이버 및 Element OS 12.5 이전 버전에서는 CHAP 인증 알고리즘이 에서 MD5로 설정되어 있는지 확인합니다 /etc/iscsi/iscsid.conf. 보안 FIPS 호환 CHAP 알고리즘 SHA1, SHA-256 및 SHA3-256은 Element 12.7에서 사용할 수 있습니다.

    sudo sed -i 's/^\(node.session.auth.chap_algs\).*/\1 = MD5/' /etc/iscsi/iscsid.conf
  • iSCSI PVS에서 RHEL/RedHat CoreOS를 실행하는 작업자 노드를 사용하는 경우 를 지정합니다 discard StorageClass의 mountOption을 사용하여 인라인 공간 재확보를 수행합니다. 을 참조하십시오 "RedHat 설명서".

RHEL 8+
  1. 다음 시스템 패키지를 설치합니다.

    sudo yum install -y lsscsi iscsi-initiator-utils device-mapper-multipath
  2. iscsi-initiator-utils 버전이 6.2.0.874-2.el7 이상인지 확인합니다.

    rpm -q iscsi-initiator-utils
  3. 다중 경로 설정:

    sudo mpathconf --enable --with_multipathd y --find_multipaths n
    참고 etc/multipath.conf에 debrofs 아래에 find_multiprohs no가 포함되어 있는지 확인합니다.
  4. iscsid와 multipathd가 실행 중인지 확인합니다.

    sudo systemctl enable --now iscsid multipathd
  5. "iSCSI" 활성화 및 시작:

    sudo systemctl enable --now iscsi
우분투
  1. 다음 시스템 패키지를 설치합니다.

    sudo apt-get install -y open-iscsi lsscsi sg3-utils multipath-tools scsitools
  2. open-iscsi 버전이 2.0.874-5ubuntu2.10 이상(bionic) 또는 2.0.874-7.1uubuttu6.1 이상(focal)인지 확인합니다.

    dpkg -l open-iscsi
  3. 스캔을 수동으로 설정합니다.

    sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
  4. 다중 경로 설정:

    sudo tee /etc/multipath.conf <<-EOF
    defaults {
        user_friendly_names yes
        find_multipaths no
    }
    EOF
    sudo systemctl enable --now multipath-tools.service
    sudo service multipath-tools restart
    참고 etc/multipath.conf에 debrofs 아래에 find_multiprohs no가 포함되어 있는지 확인합니다.
  5. 'open-iscsi'와 'multirpath-tools'가 활성화되어 실행되고 있는지 확인합니다.

    sudo systemctl status multipath-tools
    sudo systemctl enable --now open-iscsi.service
    sudo systemctl status open-iscsi
    참고 Ubuntu 18.04의 경우 iSCSI 데몬이 시작되도록 "open-iscsi"를 시작하기 전에 iscsiadm"이 있는 타겟 포트를 검색해야 합니다. 또는 iSCSI 서비스를 수정하여 iscsid를 자동으로 시작할 수 있습니다.

iSCSI 자동 복구를 구성하거나 사용하지 않도록 설정합니다

다음 Trident iSCSI 자동 복구 설정을 구성하여 오래된 세션을 수정할 수 있습니다.

  • iscsi 자동 복구 간격: iSCSI 자동 복구가 호출되는 빈도를 결정합니다(기본값: 5분). 더 큰 숫자를 설정하여 더 적은 숫자를 설정하거나 더 자주 실행되도록 구성할 수 있습니다.

참고

iSCSI 자동 복구 간격을 0으로 설정하면 iSCSI 자동 복구가 완전히 중지됩니다. iSCSI 자동 복구를 비활성화하는 것은 권장하지 않습니다. iSCSI 자동 복구가 의도된 대로 작동하지 않거나 디버깅 목적으로 작동하지 않는 특정 시나리오에서만 비활성화해야 합니다.

  • * iSCSI 자동 복구 대기 시간 *: 비정상 세션에서 로그아웃하고 다시 로그인을 시도하기 전에 iSCSI 자동 복구 대기 시간을 결정합니다(기본값: 7분). 상태가 좋지 않은 것으로 확인된 세션이 로그아웃되기 전에 더 오래 대기해야 하고 다시 로그인하려고 시도하거나 더 적은 수의 숫자를 사용하여 이전에 로그아웃하도록 구성할 수 있습니다.

헬름

iSCSI 자동 복구 설정을 구성하거나 변경하려면 를 전달합니다 iscsiSelfHealingIntervaliscsiSelfHealingWaitTime Helm 설치 또는 Helm 업데이트 중 매개변수.

다음 예에서는 iSCSI 자동 복구 간격을 3분으로 설정하고 자동 복구 대기 시간을 6분으로 설정합니다.

helm install trident trident-operator-100.2410.0.tgz --set iscsiSelfHealingInterval=3m0s --set iscsiSelfHealingWaitTime=6m0s -n trident
tridentctl 을 선택합니다

iSCSI 자동 복구 설정을 구성하거나 변경하려면 를 전달합니다 iscsi-self-healing-intervaliscsi-self-healing-wait-time tridentctl 설치 또는 업데이트 중 매개 변수입니다.

다음 예에서는 iSCSI 자동 복구 간격을 3분으로 설정하고 자동 복구 대기 시간을 6분으로 설정합니다.

tridentctl install --iscsi-self-healing-interval=3m0s --iscsi-self-healing-wait-time=6m0s -n trident

NVMe/TCP 볼륨

운영 체제의 명령을 사용하여 NVMe 툴을 설치합니다.

참고
  • NVMe에는 RHEL 9 이상이 필요합니다.

  • Kubernetes 노드의 커널 버전이 너무 오래되었거나 NVMe 패키지를 커널 버전에서 사용할 수 없는 경우 노드의 커널 버전을 NVMe 패키지를 사용하여 커널 버전을 업데이트해야 할 수 있습니다.

RHEL 9 를 참조하십시오
sudo yum install nvme-cli
sudo yum install linux-modules-extra-$(uname -r)
sudo modprobe nvme-tcp
우분투
sudo apt install nvme-cli
sudo apt -y install linux-modules-extra-$(uname -r)
sudo modprobe nvme-tcp

설치를 확인합니다

설치 후 명령을 사용하여 Kubernetes 클러스터의 각 노드에 고유한 NQN이 있는지 확인합니다.

cat /etc/nvme/hostnqn
경고 Trident는 이 값을 수정하여 ctrl_device_tmo NVMe가 다운될 경우 경로를 포기하지 않도록 합니다. 이 설정을 변경하지 마십시오.

FC 툴을 설치합니다

운영 체제의 명령을 사용하여 FC 툴을 설치합니다.

  • FC PVS와 함께 RHEL/RedHat CoreOS를 실행하는 작업자 노드를 사용하는 경우 discard 인라인 공간 재확보를 수행하려면 StorageClass에 mount옵션을 지정합니다. 을 "RedHat 설명서"참조하십시오.

RHEL 8+
  1. 다음 시스템 패키지를 설치합니다.

    sudo yum install -y lsscsi device-mapper-multipath
  2. 다중 경로 설정:

    sudo mpathconf --enable --with_multipathd y --find_multipaths n
    참고 etc/multipath.conf에 debrofs 아래에 find_multiprohs no가 포함되어 있는지 확인합니다.
  3. multipathd 실행 중인지 확인합니다.

    sudo systemctl enable --now multipathd
우분투
  1. 다음 시스템 패키지를 설치합니다.

    sudo apt-get install -y lsscsi sg3-utils multipath-tools scsitools
  2. 다중 경로 설정:

    sudo tee /etc/multipath.conf <<-EOF
    defaults {
        user_friendly_names yes
        find_multipaths no
    }
    EOF
    sudo systemctl enable --now multipath-tools.service
    sudo service multipath-tools restart
    참고 etc/multipath.conf에 debrofs 아래에 find_multiprohs no가 포함되어 있는지 확인합니다.
  3. 가 활성화되어 있고 실행 중인지 multipath-tools 확인합니다.

    sudo systemctl status multipath-tools