작업자 노드를 준비합니다
Kubernetes 클러스터의 모든 작업자 노드는 Pod용으로 프로비저닝된 볼륨을 마운트할 수 있어야 합니다. 작업자 노드를 준비하려면 드라이버 선택에 따라 NFS, iSCSI 또는 NVMe/TCP 도구를 설치해야 합니다.
올바른 도구 선택
드라이버 조합을 사용하는 경우 드라이버에 필요한 모든 도구를 설치해야 합니다. 최신 버전의 RedHat CoreOS에는 기본적으로 도구가 설치되어 있습니다.
다음을 사용 중인 경우 NFS 툴을 설치합니다. ontap-nas
, ontap-nas-economy
, ontap-nas-flexgroup
, azure-netapp-files
, gcp-cvs
.
다음을 사용하는 경우 iSCSI 도구를 설치합니다. ontap-san
, ontap-san-economy
, solidfire-san
.
를 사용하는 경우 NVMe 툴을 설치합니다 ontap-san
NVMe/TCP(Nonvolatile Memory Express) 프로토콜을 통한 NVMe(Nonvolatile Memory Express)
NVMe/TCP에 ONTAP 9.12 이상을 사용하는 것이 좋습니다. |
노드 서비스 검색
Astra Trident는 노드가 iSCSI 또는 NFS 서비스를 실행할 수 있는지 자동으로 감지하려고 시도합니다.
노드 서비스 검색은 검색된 서비스를 식별하지만 서비스가 올바르게 구성된다고 보장하지 않습니다. 반대로 검색된 서비스가 없으면 볼륨 마운트가 실패한다고 보장할 수 없습니다. |
Astra Trident는 검색된 서비스를 식별하기 위해 노드에 대한 이벤트를 생성합니다. 이러한 이벤트를 검토하려면 다음을 실행합니다.
kubectl get event -A --field-selector involvedObject.name=<Kubernetes node name>
Astra Trident는 Trident 노드 CR의 각 노드에 대해 활성화된 서비스를 식별합니다. 검색된 서비스를 보려면 다음을 실행합니다.
tridentctl get node -o wide -n <Trident namespace>
NFS 볼륨
운영 체제의 명령을 사용하여 NFS 툴을 설치합니다. 부팅 중에 NFS 서비스가 시작되었는지 확인합니다.
sudo yum install -y nfs-utils
sudo apt-get install -y nfs-common
볼륨에 연결할 때 오류가 발생하지 않도록 NFS 툴을 설치한 후 작업자 노드를 재부팅합니다. |
iSCSI 볼륨
Astra Trident는 iSCSI 세션을 자동으로 설정하고, LUN을 검색하고, 다중 경로 장치를 검색하고, 포맷하고, 포드에 마운트할 수 있습니다.
iSCSI 자동 복구 기능
ONTAP 시스템의 경우, Astra Trident가 5분마다 iSCSI 자동 복구를 실행하여 다음을 수행합니다.
-
* 원하는 iSCSI 세션 상태와 현재 iSCSI 세션 상태를 식별합니다.
-
* 원하는 상태를 현재 상태와 비교 * 하여 필요한 수리를 확인합니다. Astra Trident는 수리 우선 순위 및 수리 시기를 결정합니다.
-
* 현재 iSCSI 세션 상태를 원하는 iSCSI 세션 상태로 되돌리는 데 필요한 복구 수행 *
자동 복구 작업의 로그는 에 있습니다 trident-main 각 드로포드에 있는 용기. 로그를 보려면 을(를) 설정해야 합니다 debug Astra Trident를 설치하는 동안 "참"으로 표시합니다.
|
Astra Trident iSCSI 자동 복구 기능을 사용하면 다음과 같은 문제를 방지할 수 있습니다.
-
네트워크 연결 문제가 발생한 후 발생할 수 있는 오래되거나 비정상적인 iSCSI 세션. 오래된 세션의 경우 Astra Trident는 로그아웃하기 7분 전에 대기하여 포털과의 연결을 다시 설정합니다.
예를 들어, 스토리지 컨트롤러에서 CHAP 암호를 회전시키고 네트워크에서 연결이 끊어지면 이전의 (stale) CHAP 암호가 지속될 수 있습니다. 자동 복구 기능은 이 문제를 인식하고 업데이트된 CHAP 암호를 적용하기 위해 세션을 자동으로 다시 설정할 수 있습니다. -
iSCSI 세션이 누락되었습니다
-
LUN이 없습니다
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 설명서".
-
다음 시스템 패키지를 설치합니다.
sudo yum install -y lsscsi iscsi-initiator-utils sg3_utils device-mapper-multipath
-
iscsi-initiator-utils 버전이 6.2.0.874-2.el7 이상인지 확인합니다.
rpm -q iscsi-initiator-utils
-
스캔을 수동으로 설정합니다.
sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
-
다중 경로 설정:
sudo mpathconf --enable --with_multipathd y --find_multipaths n
확인합니다 etc/multipath.conf
포함find_multipaths no
에서defaults
. -
확인하십시오
iscsid
및multipathd
실행 중:sudo systemctl enable --now iscsid multipathd
-
활성화 및 시작
iscsi
:sudo systemctl enable --now iscsi
-
다음 시스템 패키지를 설치합니다.
sudo apt-get install -y open-iscsi lsscsi sg3-utils multipath-tools scsitools
-
open-iscsi 버전이 2.0.874-5ubuntu2.10 이상(bionic) 또는 2.0.874-7.1uubuttu6.1 이상(focal)인지 확인합니다.
dpkg -l open-iscsi
-
스캔을 수동으로 설정합니다.
sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
-
다중 경로 설정:
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
포함find_multipaths no
에서defaults
. -
확인하십시오
open-iscsi
및multipath-tools
활성화 및 실행:sudo systemctl status multipath-tools sudo systemctl enable --now open-iscsi.service sudo systemctl status open-iscsi
Ubuntu 18.04의 경우 을 사용하여 대상 포트를 검색해야 합니다 iscsiadm
시작 전open-iscsi
iSCSI 데몬을 시작합니다. 또는 을 수정할 수 있습니다iscsi
시작할 서비스iscsid
자동으로.
컨테이너에 볼륨을 연결할 때 오류가 발생하지 않도록 iSCSI 도구를 설치한 후 작업자 노드를 재부팅합니다. |
NVMe/TCP 볼륨
운영 체제의 명령을 사용하여 NVMe 툴을 설치합니다.
|
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
Astra Trident가 을 수정 한다 ctrl_device_tmo NVMe가 중단되더라도 NVMe가 중단되지 않도록 하는 가치 이 설정을 변경하지 마십시오.
|