Cloud-Init이 제대로 동작하지 않을 때
오류
- hostname이 제대로 변경되지 않음
- 키파일이 등록되지 않음
1. 🎯 Cloud-init 필수 규칙 (메타데이터)
cloud-init이 작동하려면 VM이 이 IP 주소로 요청을 보낼 수 있어야 합니다.
보안 그룹의 Outbound(Egress, 송신) 규칙에 추가해야 합니다.
| 방향 (Direction) | 프로토콜 (Protocol) | 포트 (Port) | 목적지 (Destination / CIDR) | 설명 |
|---|---|---|---|---|
| Egress (송신) | TCP | 80 | 169.254.169.254/32 | OpenStack 메타데이터 서비스 전용 IP |
- 169.254.169.254/32: 클라우드 표준(OpenStack, AWS 등) 메타데이터 IP입니다. 이 IP 하나만 딱 열어주면 됩니다.
- 주의: 보안 그룹은 기본적으로 Outbound가 모두 허용(Allow All)인 경우가 많습니다. 만약 Outbound를 다 막아두셨다면 이 규칙을 반드시 추가해야 합니다.
2. 🧩 Kubernetes 및 기본 동작을 위한 필수 규칙
메타데이터 외에도, 현재 K8s 클러스터를 구축 중이시므로 노드 간 통신과 DNS가 막히면 아무것도 안 됩니다. "Any"를 쓰지 않고 정확히 열어야 할 IP 대역은 다음과 같습니다.
A. 내부 네트워크 통신 (노드끼리 통신)
마스터와 워커 노드가 서로 통신하려면 VPC(서브넷) 내부 대역은 서로 열려 있어야 합니다.
| 방향 | 프로토콜 | 포트 | 소스/목적지 | 설명 |
|---|---|---|---|---|
| Ingress (수신) | Any (또는 TCP/UDP) | All | 10.0.0.0/24 (예시) | 사용 중인 내부 서브넷 CIDR를 넣으세요. 노드끼리는 서로 믿어야 합니다. |
B. DNS (도메인 해석)
이게 막히면 yum install, docker pull 등이 다 실패합니다.
| 방향 | 프로토콜 | 포트 | 목적지 | 설명 |
|---|---|---|---|---|
| Egress (송신) | UDP / TCP | 53 | DNS 서버 IP | 보통 내부 DNS IP 또는 8.8.8.8 등 |