태그: #air-gap
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 11 편
RHEL 폐쇄망 설치가 어려운 진짜 이유 — 의존성은 그래프이고, 그 그래프는 안쪽에서 풀 수 없습니다
금융·공공·국방 폐쇄망에 RHEL 패키지를 반입해 설치할 때 왜 "rpm 파일 하나 복사"로 끝나지 않는지를 구조부터 정리합니다. RPM 의존성이 목록이 아니라 심볼 단위 그래프라는 점, 그 그래프를 푸는 depsolver가 저장소 메타데이터를 필요로 하는데 폐쇄망 안에는 그 메타데이터가 없다는 점, 그래서 문제가 "파일 옮기기"가 아니라 "해결된 트랜잭션을 통째로 옮기기"가 된다는 점을 짚
2026-08-14 · 16 분 읽기 #linux#rhel#air-gap#dnf#rpm폐쇄망에서 모듈과 버전 고정 — RHEL 8·9·10이 서로 다른 이야기를 합니다
RHEL 8의 모듈러리티가 폐쇄망에서 정확히 어디서 꼬이는지, 그리고 RHEL 9와 RHEL 10에서 그 이야기가 어떻게 달라지는지를 공식 문서 기준으로 갈라 정리합니다. 핵심은 모듈러 RPM을 그냥 복사해서 만든 로컬 저장소에서는 그 패키지들이 조용히 보이지 않게 된다는 점입니다. dnf가 모듈 메타데이터로 RPM을 필터링하기 때문인데, 해법은 reposync에 --download-meta
2026-08-14 · 15 분 읽기 #linux#rhel#air-gap#dnf#modularity폐쇄망 안에 로컬 저장소 만들기 — createrepo_c, repodata, .repo 파일과 GPG 키
반입한 rpm 묶음을 폐쇄망 안에서 정상적인 dnf 저장소로 만드는 전 과정을 다룹니다. createrepoc가 만들어 내는 repodata 디렉터리의 구조와 repomd.xml의 역할, 패키지를 추가했을 때 --update로 증분 갱신하는 법, 그리고 체크섬 타입과 메타데이터 압축 옵션을 공식 man 페이지 기준으로 정리합니다. 이어서 baseurl에 file 스킴을 쓰는 단일 서버 구성과
2026-08-14 · 15 분 읽기 #linux#rhel#air-gap#dnf#createrepo폐쇄망 반입 절차와 무결성 — 6개월 뒤에도 같은 설치가 나오는 번들 만들기
반입 매체에 무엇을 담고 무엇을 검증할지, 그리고 그 번들을 6개월 뒤에 다시 열었을 때 같은 결과가 나오게 만드는 방법을 정리합니다. 폐쇄망에서 서명 검증이 연결망보다 오히려 더 중요한 이유 — 나중에 온라인으로 대조할 수단이 사라진다는 점 — 을 먼저 짚고, rpm과 rpmkeys의 서명 검사 명령을 최신 man 페이지 기준으로 구분해 설명합니다. 이어서 재현 가능한 번들의 핵심인 매니페
2026-08-14 · 13 분 읽기 #linux#rhel#air-gap#rpm#gpg폐쇄망 반입을 위해 밖에서 받기 — dnf download, reposync, yumdownloader는 서로 다른 문제를 풉니다
인터넷이 연결된 장비에서 RHEL 패키지를 의존성까지 통째로 받아 폐쇄망에 반입하는 실제 절차를 명령 단위로 정리합니다. dnf download의 --resolve와 --alldeps가 정확히 무엇을 다르게 하는지, 왜 이미 설치된 패키지 때문에 의존성이 조용히 빠지는지, 그리고 --installroot로 빈 루트를 만들어 그 함정을 없애는 방법을 공식 문서 문장과 함께 다룹니다. 빈 ins
2026-08-14 · 15 분 읽기 #linux#rhel#air-gap#dnf#rpm폐쇄망 운영 플레이북 — 보안 패치를 따라가고, 롤백하고, CVE 지연을 관리하기
반입 절차가 완성된 다음의 이야기, 즉 폐쇄망을 몇 년간 굴리는 운영 편입니다. 먼저 폐쇄망에서 CVE 대응이 늦어지는 것이 팀의 게으름이 아니라 반입 주기라는 구조 때문임을 분명히 하고, 그 지연을 없앨 수 없다면 어떻게 측정하고 관리할지를 다룹니다. dnf updateinfo와 --security 계열 옵션으로 무엇이 밀려 있는지 세는 방법을 공식 문서 기준으로 정리하되, 반입 저장소에서
2026-08-14 · 19 분 읽기 #linux#rhel#air-gap#dnf#security폐쇄망 컨테이너 이미지 반입 — podman save와 skopeo는 다른 도구입니다
RPM 반입 절차가 자리를 잡고 나면 다음 요구는 거의 항상 컨테이너 이미지입니다. podman save와 skopeo copy 계열이 어떻게 다른지 — 하나는 로컬 저장소를 거치고 다른 하나는 레지스트리에서 레지스트리로 직접 옮긴다는 점 — 부터 정리하고, 여러 이미지를 한 번에 다루는 폐쇄망 미러링에는 왜 skopeo sync가 정답인지 공식 문서의 표현과 함께 설명합니다. 트랜스포트 표
2026-08-14 · 18 분 읽기 #linux#rhel#air-gap#podman#skopeok0s 폐쇄망 설치와 k0sctl 자동화 — 이미지 번들 제작부터 다중 노드 업그레이드까지
인터넷 경로가 없는 폐쇄망에서 k0s 클러스터를 세우고 운영하는 절차를 명령어 단위로 정리합니다. k0s airgap list-images와 bundle-artifacts로 이미지 번들을 만드는 세 가지 방법, 자체 워크로드 이미지를 같은 번들에 합치는 요령, k0s가 번들을 자동 임포트하는 디렉터리 규칙, 그리고 defaultpullpolicy를 Never로 못 박아 외부 pull 시도를
2026-07-31 · 24 분 읽기 #kubernetes#k0s#k0sctl#air-gap#on-premise폐쇄망 이미지 반입 파이프라인 설계 — skopeo, Harbor, 그리고 썩지 않는 재반입 런북
폐쇄망 쿠버네티스에서 아무도 제대로 쓰지 않는 문제, 즉 컨테이너 이미지를 반복적으로 안전하게 들여오는 파이프라인을 설계합니다. 반입 목록을 코드로 관리하는 방법부터 skopeo sync로 외부 레지스트리를 디렉터리와 OCI 레이아웃으로 떠내는 명령, oras로 임의 아티팩트를 나르는 방법, Harbor를 내부 배포 레지스트리로 두는 이중 레지스트리 패턴까지 다룹니다. Harbor 프록시 캐
2026-07-31 · 28 분 읽기 #kubernetes#air-gap#harbor#skopeo#supply-chaink3s 폐쇄망 설치 완전 가이드 — 이미지 tarball 반입부터 사설 레지스트리, 에이전트 조인까지
인터넷 경로가 전혀 없는 폐쇄망에 k3s 클러스터를 세우는 전 과정을 명령어 단위로 정리합니다. 연결망 장비에서 airgap 이미지 tarball과 k3s 바이너리를 내려받아 체크섬 매니페스트를 만들고, 반입 매체에 무엇을 담을지 정하고, 이미지를 컨테이너 런타임 디렉터리에 배치한 뒤 INSTALLK3SSKIPDOWNLOAD로 설치 스크립트를 실행하는 흐름을 다룹니다. 이어서 registri
2026-07-31 · 33 분 읽기 #kubernetes#k3s#air-gap#on-premise#containerd폐쇄망 쿠버네티스 Day 2 운영 — 인증서 만료로 죽는 클러스터를 막는 법
폐쇄망 클러스터가 실제로 죽는 원인은 대부분 화려한 장애가 아니라 인증서 만료입니다. 아무도 건드리지 않은 채 1년이 지나면 API 서버가 조용히 멈추고, 인터넷이 없으니 검색으로 해결할 수도 없습니다. 이 글은 설치 이후를 다룹니다. 만료를 죽기 전에 탐지하는 방법, kubeadm과 k3s의 인증서 갱신 및 CA 회전 절차, NTP 드리프트가 TLS와 etcd를 동시에 무너뜨리는 경로, 스
2026-07-31 · 31 분 읽기 #kubernetes#air-gap#day2-operations#etcd#certificate