Active Directory 를 KDC 로 써서 CDP 클러스터에 Kerberos 를 적용할 때 준비할 것과, 같은 설치 과정에서 나온 CM 에이전트 SSH 키·포트 방향·Host Monitor 지표 누락·ECS 사전 조건을 정리한다.
AD 측에서는 클러스터 서비스 계정을 모을 전용 OU 와, 그 OU 에 계정 생성·삭제·수정 권한이 위임된 관리자 계정이 필요하다. CM 의 Enable Kerberos 마법사에는 KDC 호스트(도메인 컨트롤러), 암호화 유형(보통 AES256), 관리자 계정, OU 경로(OU=Hadoop,DC=example,DC=com) 를 입력한다.
클러스터 전 노드에는 krb5-workstation·krb5-libs 와 chrony 만 있으면 서비스 간 Kerberos 인증은 동작한다. AD 와 5분 이내 시간 오차, 전 노드 정방향·역방향 DNS 가 전제다. openldap-clients·sssd·realmd 는 OS 로그인까지 AD 계정으로 하려는 경우에만 필요하다.
SSSD 까지 구성하는 경우:
yum install -y sssd sssd-ad sssd-tools sssd-common realmd oddjob oddjob-mkhomedir \
samba-common-tools krb5-workstation krb5-libs authselect
realm discover <AD도메인>
realm join --verbose -U <admin계정> <AD도메인>
authselect select sssd --force
authselect enable-feature with-mkhomedir
systemctl enable --now oddjobd sssd
id <ad사용자>
/etc/sssd/sssd.conf 에서 use_fully_qualified_names = False 로 두어야 CDP 가 짧은 사용자명으로 인식한다. Hadoop 그룹 매핑을 ShellBasedUnixGroupsMapping 으로 두면 SSSD 가 돌려주는 그룹을 그대로 쓴다.
JCE Unlimited Strength 정책은 JDK 8u161 미만에서만 별도 설치가 필요하다.
Add Hosts 마법사에는 프라이빗 키(id_rsa) 를 업로드한다. 퍼블릭 키는 각 대상 노드의 authorized_keys 에 미리 등록돼 있어야 한다. 설치 전용 키를 따로 만들고 개인 키와 공유하지 않는다.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/cm_install_key
ssh-copy-id -i ~/.ssh/cm_install_key.pub root@<노드>
| 포트 | 방향 | 용도 |
|---|---|---|
| 7180 / 7183 | 사용자 → CM 서버 | 웹 UI (HTTP / HTTPS) |
| 7182 | Agent → CM 서버 | 하트비트, 명령 수신 |
| 9994 | Agent → Host Monitor | 호스트 지표 |
| 9997 | Agent → Service Monitor | 서비스 지표 |
| 9995 / 9996 | CM 서버 → Host/Service Monitor | 지표 조회 |
| 9000 | localhost | Agent ↔ supervisord |
| 7432 | CM 서버 → DB | 임베디드 PostgreSQL |
에이전트가 서버로 폴링하는 구조이므로 CM 서버 → Agent 방향은 열 필요가 없고, stateful 방화벽은 응답 패킷을 자동 허용하므로 "양방향 규칙" 도 필요 없다. 9000 은 127.0.0.1 바인딩이어야 하며 외부에 열지 않는다.
firewall-cmd --permanent --add-port={7180,7182,9994,9997}/tcp && firewall-cmd --reload
nc -zv <CM서버> 7182; nc -zv <HostMonitor호스트> 9994
warning port is being used by cm agent 는 대개 cmf-agent/supervisord 중복 실행이다. ss -tulnp | grep 9000 과 ps -ef | grep -E "cmf-agent|supervisord" 로 확인한다.
Management Service 의 Host Monitor 가 Started 인지, 9994 가 열려 있는지, hostname -f 가 CM 의 Hosts 목록 이름과 정확히 같은지(AD 환경에서 흔한 불일치), chronyc sources 시간차, /var/lib/cloudera-host-monitor 디스크 여유를 순서대로 본다. 에이전트 로그는 /var/log/cloudera-scm-agent/cloudera-scm-agent.log, Host Monitor 로그는 /var/log/cloudera-scm-firehose/ 다.
ECS 설치는 net.ipv4.ip_forward=1 이 필요하다. 파드 대역(10.42.0.0/16 등) 트래픽이 노드 커널을 거쳐 전달되기 때문이다.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-ecs.conf && sysctl --system
GPU 노드를 ECS 워커로 추가할 때는 노드에 NVIDIA 드라이버와 Container Toolkit(nvidia-ctk runtime configure --runtime=containerd) 을 먼저 설치한 뒤 CM 에서 ECS → Instances → Add Role Instances → ECS Agent 로 추가하고 새 롤만 Start 한다. 서비스 전체 재기동은 Stale Configuration 표시가 있을 때만 한다. 조인 후 kubectl describe node <노드> | grep -A10 Capacity 에서 nvidia.com/gpu 가 잡히는지 확인한다.