
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Chaos and Order</title>
      <link>https://www.youngju.dev/blog</link>
      <description>천천히 올바르게. AI Researcher &amp; DevOps Engineer Youngju&#39;s blog. GPU/CUDA, LLM, MLOps, Kubernetes AI workloads, and data engineering — plus mindset essays on confidence, routines, health, and sport psychology.</description>
      <language>ko</language>
      <managingEditor>fjvbn2003@gmail.com (Youngju Kim)</managingEditor>
      <webMaster>fjvbn2003@gmail.com (Youngju Kim)</webMaster>
      <lastBuildDate>Fri, 31 Jul 2026 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://www.youngju.dev/tags/air-gap/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://www.youngju.dev/blog/kubernetes/2026-07-31-airgap-container-image-supply-chain</guid>
    <title>폐쇄망 이미지 반입 파이프라인 설계 — skopeo, Harbor, 그리고 썩지 않는 재반입 런북</title>
    <link>https://www.youngju.dev/blog/kubernetes/2026-07-31-airgap-container-image-supply-chain</link>
    <description>폐쇄망 쿠버네티스에서 아무도 제대로 쓰지 않는 문제, 즉 컨테이너 이미지를 반복적으로 안전하게 들여오는 파이프라인을 설계합니다. 반입 목록을 코드로 관리하는 방법부터 skopeo sync로 외부 레지스트리를 디렉터리와 OCI 레이아웃으로 떠내는 명령, oras로 임의 아티팩트를 나르는 방법, Harbor를 내부 배포 레지스트리로 두는 이중 레지스트리 패턴까지 다룹니다. Harbor 프록시 캐시는 업스트림으로 가는 경로가 없으면 아무 소용이 없다는 점도 분명히 적었습니다. 이어서 Trivy 취약점 DB를 oras로 손수 들여와 오프라인 스캔을 돌리는 절차, 투명성 로그에 접근할 수 없는 환경에서 cosign 서명을 검증하는 방법과 그 한계, SBOM을 아티팩트로 함께 나르는 방식을 설명합니다. 마지막은 정기 재반입 런북입니다. 일회성 반입은 반드시 썩기 때문입니다.</description>
    <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
    <author>fjvbn2003@gmail.com (Youngju Kim)</author>
    <category>kubernetes</category><category>air-gap</category><category>harbor</category><category>skopeo</category><category>supply-chain</category>
  </item>

  <item>
    <guid>https://www.youngju.dev/blog/kubernetes/2026-07-31-airgap-kubernetes-day2-operations</guid>
    <title>폐쇄망 쿠버네티스 Day 2 운영 — 인증서 만료로 죽는 클러스터를 막는 법</title>
    <link>https://www.youngju.dev/blog/kubernetes/2026-07-31-airgap-kubernetes-day2-operations</link>
    <description>폐쇄망 클러스터가 실제로 죽는 원인은 대부분 화려한 장애가 아니라 인증서 만료입니다. 아무도 건드리지 않은 채 1년이 지나면 API 서버가 조용히 멈추고, 인터넷이 없으니 검색으로 해결할 수도 없습니다. 이 글은 설치 이후를 다룹니다. 만료를 죽기 전에 탐지하는 방법, kubeadm과 k3s의 인증서 갱신 및 CA 회전 절차, NTP 드리프트가 TLS와 etcd를 동시에 무너뜨리는 경로, 스케줄 스냅샷과 실제로 리허설한 복구 절차, 업스트림 없이 스테이징 번들로 수행하는 버전 업그레이드, SaaS 백엔드 없는 관측성 구성, 그리고 밖으로 들고 나갈 수 있는 형태의 서포트 번들을 만드는 스크립트를 담았습니다. 마지막에 일간·주간·분기 점검 항목을 표로 정리했습니다.</description>
    <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
    <author>fjvbn2003@gmail.com (Youngju Kim)</author>
    <category>kubernetes</category><category>air-gap</category><category>day2-operations</category><category>etcd</category><category>certificate</category>
  </item>

  <item>
    <guid>https://www.youngju.dev/blog/kubernetes/2026-07-31-k0s-airgap-install-guide</guid>
    <title>k0s 폐쇄망 설치와 k0sctl 자동화 — 이미지 번들 제작부터 다중 노드 업그레이드까지</title>
    <link>https://www.youngju.dev/blog/kubernetes/2026-07-31-k0s-airgap-install-guide</link>
    <description>인터넷 경로가 없는 폐쇄망에서 k0s 클러스터를 세우고 운영하는 절차를 명령어 단위로 정리합니다. k0s airgap list-images와 bundle-artifacts로 이미지 번들을 만드는 세 가지 방법, 자체 워크로드 이미지를 같은 번들에 합치는 요령, k0s가 번들을 자동 임포트하는 디렉터리 규칙, 그리고 default_pull_policy를 Never로 못 박아 외부 pull 시도를 아예 막는 설정을 다룹니다. 이어서 k0sctl로 SSH를 통해 바이너리와 번들을 여러 호스트에 밀어 넣고 한 번의 apply로 클러스터를 구성하는 방법, 업그레이드가 같은 명령으로 이루어지는 이유와 노드 제거가 안 되는 한계를 설명합니다. 마지막으로 k3s 흐름과 정직하게 비교해 k0s가 깔끔한 지점과 손이 더 가는 지점을 나눠 적었습니다. 모든 명령은 k0s v1.36.3+k0s.0과 k0sctl v0.32.2 기준으로 확인했습니다.</description>
    <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
    <author>fjvbn2003@gmail.com (Youngju Kim)</author>
    <category>kubernetes</category><category>k0s</category><category>k0sctl</category><category>air-gap</category><category>on-premise</category>
  </item>

  <item>
    <guid>https://www.youngju.dev/blog/kubernetes/2026-07-31-k3s-airgap-install-guide</guid>
    <title>k3s 폐쇄망 설치 완전 가이드 — 이미지 tarball 반입부터 사설 레지스트리, 에이전트 조인까지</title>
    <link>https://www.youngju.dev/blog/kubernetes/2026-07-31-k3s-airgap-install-guide</link>
    <description>인터넷 경로가 전혀 없는 폐쇄망에 k3s 클러스터를 세우는 전 과정을 명령어 단위로 정리합니다. 연결망 장비에서 airgap 이미지 tarball과 k3s 바이너리를 내려받아 체크섬 매니페스트를 만들고, 반입 매체에 무엇을 담을지 정하고, 이미지를 컨테이너 런타임 디렉터리에 배치한 뒤 INSTALL_K3S_SKIP_DOWNLOAD로 설치 스크립트를 실행하는 흐름을 다룹니다. 이어서 registries.yaml로 사내 레지스트리를 미러로 붙이고 자체 서명 CA를 신뢰시키는 방법, 에이전트 조인과 임베디드 etcd HA 구성을 설명합니다. 마지막으로 폐쇄망에서 실제로 발목을 잡는 실패 모드 일곱 가지 — 번들에 없는 자체 워크로드 이미지, 도달 불가 업스트림 DNS, 기본 레지스트리 엔드포인트 폴백, tarball과 바이너리의 버전 드리프트 — 를 원인과 확인 명령까지 함께 적었습니다. 모든 명령은 k3s v1.36.2+k3s1 기준으로 확인했습니다.</description>
    <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
    <author>fjvbn2003@gmail.com (Youngju Kim)</author>
    <category>kubernetes</category><category>k3s</category><category>air-gap</category><category>on-premise</category><category>containerd</category>
  </item>

    </channel>
  </rss>
