<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>카레제육 블로그</title>
    <link>https://cloudev.tistory.com/</link>
    <description>안녕하세요. 방문해주셔서 감사합니다.
주니어 개발자 윤서율입니다. 언젠가 지나온 날들을 되돌아봤을 때 그땐 이처럼 즐거웠구나!' 할 수 있는 블로그를 만들기 위해서 노력하고 있습니다.</description>
    <language>ko</language>
    <pubDate>Mon, 11 May 2026 20:29:32 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>kare jeyuk</managingEditor>
    <image>
      <title>카레제육 블로그</title>
      <url>https://tistory1.daumcdn.net/tistory/5291453/attach/9270549da8da479c86e6936a391394b2</url>
      <link>https://cloudev.tistory.com</link>
    </image>
    <item>
      <title>AI API 게이트웨이 및 시맨틱 라우터 가이드</title>
      <link>https://cloudev.tistory.com/entry/AI-API-%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4-%EB%B0%8F-%EC%8B%9C%EB%A7%A8%ED%8B%B1-%EB%9D%BC%EC%9A%B0%ED%84%B0-%EA%B0%80%EC%9D%B4%EB%93%9C</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;최근 AI API 게이트웨이와 시맨틱 라우터에 대한 논의가 뜨겁다고 한다. 인프라 관점에서는 이 기술들이 기존의 체계를 어떻게 바꾸고 보완할 것인지가 핵심이다. CNCF 거버넌스 보드 멤버인 Max K&amp;ouml;rb&amp;auml;cher의 발표를 정리했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;a href=&quot;https://youtu.be/SxRKXfBsd1c&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/SxRKXfBsd1c&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=SxRKXfBsd1c&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/ehqlWL/dJMb9llbxXh/Dbbz8Vbz5eIKDRAoDTz1gk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/hMv10/dJMb8Z3vMsm/KE9thgyy80Op7hONE4WGYk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/wYKUi/dJMb8ZvFSK2/44Ht3nhItj2w37l7LNlAKK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;A Guide To AI API Gateways and Semantic Routers - Max K&amp;ouml;rb&amp;auml;cher, Liquid Reply GmbH&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/SxRKXfBsd1c&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;반년 전쯤 현장에서 흥미로운 대화가 오갔다. 누군가는 모든 게이트웨이를 AI로 교체해 똑똑하게 만들겠다고 했고 다른 누군가는 시맨틱 라우터가 있으니 AI API 게이트웨이는 필요 없다고 주장했다. 무언가에 AI를 붙이면 즉시 기존 기술을 대체할 수 있다고 생각하기 쉽지만 인프라 중심의 관점에서 그것이 항상 정답은 아니다. 이 둘은 대립하는 개념이 아니라 해결하려는 문제의 성격이 다르다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 전통적인 API 트래픽과 AI/LLM 트래픽&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1398&quot; data-origin-height=&quot;716&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmRxLy/dJMcaiXwDG5/YbEpZ1bjfACIL685woLMJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmRxLy/dJMcaiXwDG5/YbEpZ1bjfACIL685woLMJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmRxLy/dJMcaiXwDG5/YbEpZ1bjfACIL685woLMJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmRxLy%2FdJMcaiXwDG5%2FYbEpZ1bjfACIL685woLMJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1398&quot; height=&quot;716&quot; data-origin-width=&quot;1398&quot; data-origin-height=&quot;716&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;전통적인 API 세계에서 가장 중요한 가치는 속도 신뢰성 확장성이다. API는 기민하게 움직여야 하고 모든 시스템은 이를 중심으로 빠르게 응답해야 한다. 반면 대규모 언어 모델 중심의 AI 세계는 문법이 다르다.&lt;br /&gt;&lt;br /&gt;지연 시간은 전통적인 API에 비해 응답이 상당히 느리다. 데이터 형식은 서버 센트 이벤트 세션을 통해 거대한 데이터 덩어리를 주고받으며 문맥을 유지해야 한다. 결국 인증 권한 부여 같은 기본 작업은 유지하면서도 AI 특유의 무겁고 느린 트래픽을 어떻게 관리할 것인가가 인프라 엔지니어의 숙제다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. AI 게이트웨이의 역할과 혜택&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;786&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctbQxF/dJMcacQz3Ro/M5tvgkdknCt6UsotlG6EBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctbQxF/dJMcacQz3Ro/M5tvgkdknCt6UsotlG6EBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctbQxF/dJMcacQz3Ro/M5tvgkdknCt6UsotlG6EBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctbQxF%2FdJMcacQz3Ro%2FM5tvgkdknCt6UsotlG6EBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1400&quot; height=&quot;786&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;786&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;AI 게이트웨이가 제공하는 가치는 전통적인 API 게이트웨이와 본질적으로 맞닿아 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;비용 관리는 전체적인 비용 개요를 파악하는 시작점이다. 보안은 적절한 사용자가 허용된 리소스에 접근하는지 확인한다. 로드 밸런싱 및 모델 폴백은 엔드포인트 장애 시 다른 모델로 자동 전환한다. 관측성 및 시맨틱 캐싱은 모든 게이트웨이가 지원하진 않지만 매우 흥미로운 확장 영역이다. 통합 API는 OpenAI 호환 엔드포인트를 통해 표준화된 인터페이스를 제공하여 애플리케이션 도입을 돕는다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. AI 게이트웨이 vs 시맨틱 라우터&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1422&quot; data-origin-height=&quot;808&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD8oTV/dJMcahRSo9N/5RQq0k45pcPdXbvNpdd8w1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD8oTV/dJMcahRSo9N/5RQq0k45pcPdXbvNpdd8w1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD8oTV/dJMcahRSo9N/5RQq0k45pcPdXbvNpdd8w1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD8oTV%2FdJMcahRSo9N%2F5RQq0k45pcPdXbvNpdd8w1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1422&quot; height=&quot;808&quot; data-origin-width=&quot;1422&quot; data-origin-height=&quot;808&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이 두 개념은 역할이 명확히 나뉜다. AI API 게이트웨이는 트래픽 라우팅 권한 부여 비용 추적 그리고 오픈 텔레메트리를 통한 추적의 시작점 역할을 수행한다. 시맨틱 라우터는 요청의 의도를 분류해 모델 크기를 최적화하고 비용과 품질을 개선하는 데 집중한다. 비교적 최근에 등장해 빠르게 진화 중인 분야다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 주요 오픈소스 도구 탐색&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1514&quot; data-origin-height=&quot;860&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YiboG/dJMb99TRgXs/Voiz1iZHlryfeN9bBizox1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YiboG/dJMb99TRgXs/Voiz1iZHlryfeN9bBizox1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YiboG/dJMb99TRgXs/Voiz1iZHlryfeN9bBizox1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYiboG%2FdJMb99TRgXs%2FVoiz1iZHlryfeN9bBizox1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1514&quot; height=&quot;860&quot; data-origin-width=&quot;1514&quot; data-origin-height=&quot;860&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Envoy&amp;nbsp;AI&amp;nbsp;Gateway&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Bloomberg와 같은 엔드 유저들이 개발에 깊이 투자하고 있는 도구.&amp;nbsp; 구조적으로 두 계층으로 나뉜다. 티어 1(Central Gateway) 은 클라이언트 트래픽의 중앙 진입점으로, 인증&amp;middot;권한&amp;middot;레이트 리밋&amp;middot;비용 추적 등을 처리한 뒤&amp;nbsp; OpenAI&amp;middot;Anthropic&amp;middot;Bedrock&amp;middot;Vertex 같은 외부 LLM 제공자로 직접 라우팅하거나, 내부 모델로 가야 할 트래픽이라면 적절한 티어 2 게이트웨이로 넘긴다. 티어 2(Internal Gateway) 는 KServe 같은 모델 서빙 스택과 함께 클러스터 내부에 배치되어 자체 호스팅 모델 트래픽에 집중하며, 모델 버전 관리&amp;middot;릴리스&amp;middot;세분화된 보안 정책, 그리고 LLM 추론 최적화를 위한 엔드포인트 피커(endpoint picker)를 제공한다. 이 분리 덕분에 플랫폼 팀은 외부 클라이언트 영향 없이 내부 모델 운영 정책을 독립적으로 바꿀 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;818&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xG3at/dJMcad2YPYD/8EN8HVyLPe4JidfVx46Hg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xG3at/dJMcad2YPYD/8EN8HVyLPe4JidfVx46Hg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xG3at/dJMcad2YPYD/8EN8HVyLPe4JidfVx46Hg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxG3at%2FdJMcad2YPYD%2F8EN8HVyLPe4JidfVx46Hg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1452&quot; height=&quot;818&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;818&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;장점은 여러 공급업체를 쓸 때 유용하며 유료 결제 유도가 없는 순수 오픈소스다. 단점은 단일 공급업체 사용 시 설정 오버헤드가 크고 개발 속도가 너무 빨라 안정성을 중시하는 아키텍트에게는 다소 불안할 수 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;LiteLLM&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1472&quot; data-origin-height=&quot;854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btHRW6/dJMcaarIPyM/p6khwBD8d4M8XIvNIeHhnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btHRW6/dJMcaarIPyM/p6khwBD8d4M8XIvNIeHhnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btHRW6/dJMcaarIPyM/p6khwBD8d4M8XIvNIeHhnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtHRW6%2FdJMcaarIPyM%2Fp6khwBD8d4M8XIvNIeHhnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1472&quot; height=&quot;854&quot; data-origin-width=&quot;1472&quot; data-origin-height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;조직 내 셀프 서비스 환경을 구축하기에 최적화된 도구다. 특징은 유아이를 통해 팀별로 허용된 모델을 선택하고 API 키를 즉시 발급할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1398&quot; data-origin-height=&quot;730&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ci7d1/dJMcacwjlZb/tZKONVqyEDwwud4wwUiAC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ci7d1/dJMcacwjlZb/tZKONVqyEDwwud4wwUiAC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ci7d1/dJMcacwjlZb/tZKONVqyEDwwud4wwUiAC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCi7d1%2FdJMcacwjlZb%2FtZKONVqyEDwwud4wwUiAC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1398&quot; height=&quot;730&quot; data-origin-width=&quot;1398&quot; data-origin-height=&quot;730&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;장점은 비용 지출이 투명하게 관리된다. 단점은 엔터프라이즈 규모로 확장 시 비용이 발생할 수 있고 데이터베이스나 레디스 등 운영 부담이 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;vLLM Semantic Router&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tqUjM/dJMcaaFgUju/IS5tZkySXMn4vs93RcxPk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tqUjM/dJMcaaFgUju/IS5tZkySXMn4vs93RcxPk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tqUjM/dJMcaaFgUju/IS5tZkySXMn4vs93RcxPk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtqUjM%2FdJMcaaFgUju%2FIS5tZkySXMn4vs93RcxPk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1426&quot; height=&quot;662&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;요청을 차별화하여 서로 다른 모델로 전달하는 기능에 극도로 최적화되어 있다. 작동 방식은 사내 챗봇에 점심 메뉴가 뭐야라고 물으면 가벼운 모델로 답하고 마케팅 컨셉을 짜줘라고 하면 대형 모델로 연결한다. 임팩트는 거대한 모델에 단순 질문을 던지는 낭비를 줄여 지연 시간을 단축하고 비용을 극적으로 절감한다. 수천억 파라미터 모델 대신 수십억 모델로도 충분한 처리가 가능해지기 때문이다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Kong AI Gateway&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6zZDi/dJMcag6wHeu/Gdk2Uj674bxwkzCx4tMDP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6zZDi/dJMcag6wHeu/Gdk2Uj674bxwkzCx4tMDP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6zZDi/dJMcag6wHeu/Gdk2Uj674bxwkzCx4tMDP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6zZDi%2FdJMcag6wHeu%2FGdk2Uj674bxwkzCx4tMDP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1332&quot; height=&quot;662&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;는 이미 Kong 생태계를 사용 중인 조직에 적합하다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;KGateway + Agent Gateway&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1396&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/df6VAZ/dJMcahK8Zcc/BKn0ZhLdq7iNRQCZMRg8xk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/df6VAZ/dJMcahK8Zcc/BKn0ZhLdq7iNRQCZMRg8xk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/df6VAZ/dJMcahK8Zcc/BKn0ZhLdq7iNRQCZMRg8xk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdf6VAZ%2FdJMcahK8Zcc%2FBKn0ZhLdq7iNRQCZMRg8xk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1396&quot; height=&quot;568&quot; data-origin-width=&quot;1396&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;클라우드 네이티브 환경에 최적화되어 있다. 특히 Agent Gateway는 쿠버네티스 클러스터 내 수많은 에이전트가 실수로 데이터베이스를 지우는 행위를 하지 못하도록 제어 장치 역할을 한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 최종 결정을 위한 가이드라인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;도구 선택은 현재 팀의 환경과 우선순위에 달려 있다. 쿠버네티스 기반이며 Envoy 생태계에 익숙하다면 Envoy AI Gateway를 고려한다. 수많은 모델 공급업체 연동과 팀 단위 관리가 시급하다면 LiteLLM을 고려한다. 자체 호스팅 모델과 데이터 주권이 중요하다면 vLLM 시맨틱 라우터를 고려한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;결국 AI 게이트웨이냐 시맨틱 라우터냐는 양자택일의 문제가 아니다. 이들은 서로 확장하고 보완할 수 있는 존재다. LiteLLM으로 모델 접근을 관리하면서 특정 요청은 시맨틱 라우터로 보내고 그 전체를 다시 envoy proxy로 감싸는 식으로 도구들을 쌓아서 자신만의 AI 플랫폼을 구축하는 것이 정답에 가깝다. CNCF 생태계는 빠르게 진화하고 있다. 관련 워킹그룹과 화이트페이퍼가 활발히 나오고 있는 만큼 이러한 흐름을 놓치지 않고 자신의 환경에 맞는 최적의 스택을 찾아가는 과정이 필요하다.&lt;/p&gt;</description>
      <category>IT</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/69</guid>
      <comments>https://cloudev.tistory.com/entry/AI-API-%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4-%EB%B0%8F-%EC%8B%9C%EB%A7%A8%ED%8B%B1-%EB%9D%BC%EC%9A%B0%ED%84%B0-%EA%B0%80%EC%9D%B4%EB%93%9C#entry69comment</comments>
      <pubDate>Sun, 10 May 2026 15:43:08 +0900</pubDate>
    </item>
    <item>
      <title>KubeCon + CloudNativeCon Europe 2026 기초연설</title>
      <link>https://cloudev.tistory.com/entry/KubeCon-CloudNativeCon-Europe-2026-%EA%B8%B0%EC%B4%88%EC%97%B0%EC%84%A4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;최근 열린 KubeCon 2026에서는 클라우드 네이티브 생태계가 AI 시대를 맞이하여 어떻게 진화하고 있는지 엿볼 수 있었다&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;. 특히 AI 인프라의 핵심으로 자리 잡은 쿠버네티스의 역할과, 글로벌 빅테크 기업들의 적극적인 오픈소스 기여가 눈에 띈다. 이번 행사에서는 특히 엔비디아의 CNCF 합류를 강조한것으로 보였다.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-start-index=&quot;251&quot; data-ke-size=&quot;size23&quot;&gt;AI 추론(Inference), 인프라의 패러다임을 바꾸다&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbUk63/dJMcafMTgo3/NmfkHmCtCcKCxJMw6cijok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbUk63/dJMcafMTgo3/NmfkHmCtCcKCxJMw6cijok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbUk63/dJMcafMTgo3/NmfkHmCtCcKCxJMw6cijok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbUk63%2FdJMcafMTgo3%2FNmfkHmCtCcKCxJMw6cijok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;919&quot; height=&quot;514&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;position: absolute;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot; data-start-index=&quot;283&quot;&gt;AI 모델의 중심이 학습(Training)에서 추론(Inference)으로 빠르게 이동하고 있다. 2023년까지만 해도 AI 컴퓨팅 리소스의 3분의 2가 모델 학습에 사용되었으나, 올해 말에는 이 비율이 역전되어 &lt;/span&gt;전체 AI 컴퓨팅의 3분의 2가 추론 워크로드에 할당될 전망&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot; data-start-index=&quot;435&quot;&gt;이다&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot; data-start-index=&quot;437&quot;&gt;. 2020년대 말에는 추론 전용 컴퓨팅 용량이 93.3기가와트를 넘어서며, 이는 다른 모든 컴퓨팅 부하를 합친 것보다 더 큰 규모가 될 것으로 예상된다&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;. 단순한 챗봇을 넘어 코딩 에이전트와 같은 자율적인 AI 에이전트들이 추론 플랫폼의 '슈퍼 유저'로 활동하면서 사용량이 기하급수적으로 폭증하고 있기 때문이다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot; data-start-index=&quot;435&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot; data-start-index=&quot;437&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-start-index=&quot;611&quot; data-ke-size=&quot;size23&quot;&gt;엔비디아(NVIDIA), CNCF 플래티넘 회원으로 합류&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rXNoF/dJMcaa5Rsas/rJCqnLtpGLCdLPWldb2J01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rXNoF/dJMcaa5Rsas/rJCqnLtpGLCdLPWldb2J01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rXNoF/dJMcaa5Rsas/rJCqnLtpGLCdLPWldb2J01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrXNoF%2FdJMcaa5Rsas%2FrJCqnLtpGLCdLPWldb2J01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;919&quot; height=&quot;512&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 행사에서 가장 주목받은 소식 중 하나는 엔비디아가 CNCF의 최고 등급인 플래티넘 회원으로 합류했다는 점이라고 생각한다&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;. 엔비디아는 AI의 미래가 쿠버네티스와 마찬가지로 커뮤니티 주도적이고 개방적인 형태(open)로 구축되어야 한다고 강조한다. 앞으로 AI가 직면할 과제들은 단순한 모델의 문제가 아니라 인프라, 확장성, 상호 운용성 등의 문제이며, 이는 단일 기업이 독자적으로 해결할 수 없기 때문이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엔비디아는&amp;nbsp;생태계&amp;nbsp;발전을&amp;nbsp;위해 아래와 같은 실질적이고&amp;nbsp;대대적인&amp;nbsp;기여를&amp;nbsp;약속했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- GPU 드라이버 기증: 쿠버네티스 SIG Node에 NVIDIA GPU 드라이버를 직접 기증하여&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt; 벤더 중립적인 쿠버네티스 DRA(Dynamic Resource Allocation) API의 참조 구현체(reference implementation) 역할을 하여 AI 인프라 표준화에 크게 기여할 것으로 보인다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;- 컴퓨팅 자원 지원: 향후 3년간 400만 달러를 약정하여, NVIDIA GPU가 필요한 모든 CNCF 프로젝트가 관련 컴퓨팅 자원에 원활하게 접근할 수 있도록 보장한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;- 오픈소스 프로젝트 공유: AI 클러스터 런타임인 'Acre'를 오픈소스로 공개하였으며, 스케줄러인 'Kai'를 CNCF 샌드박스 프로젝트에 기여하는 등 직접적인 기술 공유를 확대한다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #303030; text-align: start;&quot;&gt;AI&amp;nbsp;네이티브로&amp;nbsp;진화하는&amp;nbsp;쿠버네티스와&amp;nbsp;새로운&amp;nbsp;생태계&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체적인 생태계 역시 AI 워크로드를 효과적으로 지원하기 위한 다양한 변화를 맞이하고 있다. 최근 CNCF를 졸업(Graduated)한 프로젝트로는 보안 및 정책에 중점을 둔 Kyverno와 대용량 바이너리 및 AI 모델 배포에 특화된 Dragonfly가 있으며, Fluid와 Tekton은 지속적 제공 및 AI 활용 가속화를 목표로 인큐베이션(Incubation) 단계에 진입했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7e9qV/dJMcaflNqhB/IOgmAvcm2DVyfy8gEbzIa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7e9qV/dJMcaflNqhB/IOgmAvcm2DVyfy8gEbzIa1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7e9qV/dJMcaflNqhB/IOgmAvcm2DVyfy8gEbzIa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7e9qV%2FdJMcaflNqhB%2FIOgmAvcm2DVyfy8gEbzIa1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;922&quot; height=&quot;514&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 새롭게 CNCF 샌드박스에 합류한 llm-d는 클러스터 전체의 분산형 AI 추론을 최적화하는 프로젝트다. 단순한&amp;nbsp;라우팅을&amp;nbsp;넘어&amp;nbsp;프롬프트를&amp;nbsp;검사해&amp;nbsp;특정&amp;nbsp;데이터를&amp;nbsp;KV&amp;nbsp;캐시에&amp;nbsp;보유한&amp;nbsp;GPU로&amp;nbsp;요청을&amp;nbsp;보내는&amp;nbsp;추론&amp;nbsp;게이트웨이(Inference&amp;nbsp;Gateway)&amp;nbsp;기능과,&amp;nbsp;연산&amp;nbsp;집약적인&amp;nbsp;'프리필(prefill)'&amp;nbsp;단계와&amp;nbsp;메모리&amp;nbsp;집약적인&amp;nbsp;'디코드(decode)'&amp;nbsp;단계를&amp;nbsp;분리하여&amp;nbsp;독립적으로&amp;nbsp;스케일링하는&amp;nbsp;세분화된&amp;nbsp;추론(Disaggregated&amp;nbsp;Inference)&amp;nbsp;아키텍처를&amp;nbsp;지원한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;916&quot; data-origin-height=&quot;513&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Em2zF/dJMcac3DY4e/TtBzDiFqXO4xTgFIaFdCRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Em2zF/dJMcac3DY4e/TtBzDiFqXO4xTgFIaFdCRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Em2zF/dJMcac3DY4e/TtBzDiFqXO4xTgFIaFdCRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEm2zF%2FdJMcac3DY4e%2FTtBzDiFqXO4xTgFIaFdCRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;916&quot; height=&quot;513&quot; data-origin-width=&quot;916&quot; data-origin-height=&quot;513&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠버네티스는 이러한 기술들을 표준화하기 위해 AI 적합성(AI Conformance) 프로그램을 개편했다.&amp;nbsp;플랫폼이&amp;nbsp;쿠버네티스&amp;nbsp;Gateway&amp;nbsp;API&amp;nbsp;및&amp;nbsp;지능형&amp;nbsp;추론&amp;nbsp;라우팅(Inference&amp;nbsp;Extension)을&amp;nbsp;지원하는지,&amp;nbsp;그리고&amp;nbsp;세분화된&amp;nbsp;추론을&amp;nbsp;지원하는지를&amp;nbsp;새로운&amp;nbsp;필수&amp;nbsp;인증&amp;nbsp;요건으로&amp;nbsp;추가하여&amp;nbsp;일관된&amp;nbsp;AI&amp;nbsp;인프라&amp;nbsp;환경을&amp;nbsp;검증하고&amp;nbsp;있다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;916&quot; data-origin-height=&quot;510&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UDCxN/dJMcaiv08Fh/hxZSsJjbdY2x1y7RAqqPpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UDCxN/dJMcaiv08Fh/hxZSsJjbdY2x1y7RAqqPpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UDCxN/dJMcaiv08Fh/hxZSsJjbdY2x1y7RAqqPpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUDCxN%2FdJMcaiv08Fh%2FhxZSsJjbdY2x1y7RAqqPpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;916&quot; height=&quot;510&quot; data-origin-width=&quot;916&quot; data-origin-height=&quot;510&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Daily</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/68</guid>
      <comments>https://cloudev.tistory.com/entry/KubeCon-CloudNativeCon-Europe-2026-%EA%B8%B0%EC%B4%88%EC%97%B0%EC%84%A4#entry68comment</comments>
      <pubDate>Thu, 2 Apr 2026 11:55:33 +0900</pubDate>
    </item>
    <item>
      <title>CNCK 활동</title>
      <link>https://cloudev.tistory.com/entry/CNCK-%EC%B0%BD%EC%84%A4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;얼마&amp;nbsp;전,&amp;nbsp;&lt;a title=&quot;CNCK&quot; href=&quot;https://community.cncf.io/cloud-native-community-korea/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CNCK(Cloud&amp;nbsp;Native&amp;nbsp;Community&amp;nbsp;Korea)&lt;/a&gt;라는 커뮤니티의 오거나이저로 합류하게 됐다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;CNCK는 CNCF(Cloud Native Computing Foundation)의 벤더 중립 철학을 한국에 확산한다는 목표로 만들어진 커뮤니티로, 클라우드 네이티브, AI 네이티브, 오픈소스 키워드들에 관심 있는 사람이라면 누구든 함께할 수 있는 열린 공간을 지향하고 있다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;글로벌 클라우드 네이티브 생태계는 빠르게 움직이는데, 한국 현장의 목소리가 그 흐름에 자연스럽게 닿을 수 있는 채널은 보이지 않았다. 그리고 반대로 글로벌에서 일어나는 논의와 변화가 국내에 전해지는 속도도 늘 한 박자 느린 느낌이었다. CNCK는 바로 그 간극을 메우려는 시도다. 국내 현장의 요구와 의견을 글로벌 업스트림에 전달하고, 동시에 글로벌&amp;nbsp;생태계의&amp;nbsp;흐름을&amp;nbsp;국내로&amp;nbsp;가져오는&amp;nbsp;연결&amp;nbsp;고리가&amp;nbsp;되는&amp;nbsp;것이&amp;nbsp;목표다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&amp;nbsp;이제 시작하는 커뮤니티 조직의 오거나이저라는 타이틀이 주는 무게감이 없다고 하면 거짓말이겠지만, 솔직히 그보다는 기대가 훨씬 크다. 아직 아무것도 정해지지 않은 단계에서부터 함께 만들어간다는 것 자체가 재밌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&amp;nbsp;세미나도 하고 싶고, 밋업도 열고 싶고, 국내 엔지니어들이 글로벌 오픈소스 프로젝트에 기여하는 경험을 더 쉽게 해볼 수 있도록 돕는 활동도 해보고 싶다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정식 오프라인 킥오프 미팅이 기다려진다&lt;/p&gt;</description>
      <category>Daily</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/67</guid>
      <comments>https://cloudev.tistory.com/entry/CNCK-%EC%B0%BD%EC%84%A4#entry67comment</comments>
      <pubDate>Sat, 7 Feb 2026 23:38:54 +0900</pubDate>
    </item>
    <item>
      <title>AWS EKS 파드 수 제한 계산기</title>
      <link>https://cloudev.tistory.com/entry/AWS-EKS-%ED%8C%8C%EB%93%9C-%EC%88%98-%EC%A0%9C%ED%95%9C-%EA%B3%84%EC%82%B0%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;AWS&amp;nbsp;EKS를&amp;nbsp;사용하다보면,&amp;nbsp;가끔&amp;nbsp;리소스가&amp;nbsp;충분함에도&amp;nbsp;파드가&amp;nbsp;동작하지&amp;nbsp;못하는&amp;nbsp;경우를&amp;nbsp;확인할&amp;nbsp;수&amp;nbsp;있는데요&amp;nbsp;이는&amp;nbsp;노드의&amp;nbsp;인스턴스&amp;nbsp;유형에&amp;nbsp;따라서&amp;nbsp;파드&amp;nbsp;수&amp;nbsp;제한&amp;nbsp;(네트워크&amp;nbsp;인터페이스에&amp;nbsp;따른&amp;nbsp;갯수&amp;nbsp;제한)이&amp;nbsp;존재하기&amp;nbsp;때문입니다.&lt;br /&gt;&lt;br /&gt;이&amp;nbsp;제한은&amp;nbsp;노드의&amp;nbsp;네트워크&amp;nbsp;인터페이스(ENI)와&amp;nbsp;IP&amp;nbsp;주소&amp;nbsp;할당&amp;nbsp;가능&amp;nbsp;수에&amp;nbsp;따라&amp;nbsp;결정되며,&amp;nbsp;각&amp;nbsp;인스턴스&amp;nbsp;유형마다&amp;nbsp;최대&amp;nbsp;파드&amp;nbsp;수가&amp;nbsp;다릅니다.&amp;nbsp;이를&amp;nbsp;이해하면&amp;nbsp;클러스터&amp;nbsp;리소스&amp;nbsp;계획&amp;nbsp;및&amp;nbsp;파드&amp;nbsp;스케줄링&amp;nbsp;문제를&amp;nbsp;해결하는&amp;nbsp;데&amp;nbsp;도움이&amp;nbsp;됩니다.&lt;br /&gt;&lt;br /&gt;공식에&amp;nbsp;따라&amp;nbsp;직접&amp;nbsp;계산할&amp;nbsp;수&amp;nbsp;있고,&amp;nbsp;AWS&amp;nbsp;공식&amp;nbsp;Github&amp;nbsp;에서&amp;nbsp;해당&amp;nbsp;내용을&amp;nbsp;확인할&amp;nbsp;수&amp;nbsp;있지만&amp;nbsp;간단히&amp;nbsp;검색할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;홈페이지를&amp;nbsp;공유드립니다!!&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://aws-eks-max-pods.devops.ai.kr&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws-eks-max-pods.devops.ai.kr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;1238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YGsC5/btsOWiLiGa3/ndHJuop17bXB8yuHM3t7K0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YGsC5/btsOWiLiGa3/ndHJuop17bXB8yuHM3t7K0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YGsC5/btsOWiLiGa3/ndHJuop17bXB8yuHM3t7K0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYGsC5%2FbtsOWiLiGa3%2FndHJuop17bXB8yuHM3t7K0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;362&quot; height=&quot;456&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;1238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>IT</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/66</guid>
      <comments>https://cloudev.tistory.com/entry/AWS-EKS-%ED%8C%8C%EB%93%9C-%EC%88%98-%EC%A0%9C%ED%95%9C-%EA%B3%84%EC%82%B0%EA%B8%B0#entry66comment</comments>
      <pubDate>Mon, 30 Jun 2025 13:07:43 +0900</pubDate>
    </item>
    <item>
      <title>gateway api docs l10n 진행 2주가 흘렀다.</title>
      <link>https://cloudev.tistory.com/entry/gateway-api-docs-l10n-%EC%A7%84%ED%96%89-2%EC%A3%BC%EA%B0%80-%ED%9D%98%EB%A0%80%EB%8B%A4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzPJrR/btsN2qP1eE5/8CJaomgHr0RPDjvOSCKNeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzPJrR/btsN2qP1eE5/8CJaomgHr0RPDjvOSCKNeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzPJrR/btsN2qP1eE5/8CJaomgHr0RPDjvOSCKNeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzPJrR%2FbtsN2qP1eE5%2F8CJaomgHr0RPDjvOSCKNeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;321&quot; height=&quot;54&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 주소부터 공유드린다. &lt;a href=&quot;https://korean-mirror-gateway-api.netlify.app/&quot;&gt;https://korean-mirror-gateway-api.netlify.app/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1747474374392&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Introduction - Kubernetes Gateway API&quot; data-og-description=&quot;Introduction Gateway API is an official Kubernetes project focused on L4 and L7 routing in Kubernetes. This project represents the next generation of Kubernetes Ingress, Load Balancing, and Service Mesh APIs. From the outset, it has been designed to be gen&quot; data-og-host=&quot;korean-mirror-gateway-api.netlify.app&quot; data-og-source-url=&quot;https://korean-mirror-gateway-api.netlify.app/&quot; data-og-url=&quot;https://korean-mirror-gateway-api.netlify.app/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bn7VFg/hyYTgiQkgD/y9RaIKEmhyiuGQo0U6KtC0/img.png?width=800&amp;amp;height=700&amp;amp;face=37_173_189_497,https://scrap.kakaocdn.net/dn/lIyif/hyYTldnSQf/MCHrQ9xX7MPgWZEIeDvvl1/img.png?width=900&amp;amp;height=250&amp;amp;face=0_0_900_250&quot;&gt;&lt;a href=&quot;https://korean-mirror-gateway-api.netlify.app/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://korean-mirror-gateway-api.netlify.app/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bn7VFg/hyYTgiQkgD/y9RaIKEmhyiuGQo0U6KtC0/img.png?width=800&amp;amp;height=700&amp;amp;face=37_173_189_497,https://scrap.kakaocdn.net/dn/lIyif/hyYTldnSQf/MCHrQ9xX7MPgWZEIeDvvl1/img.png?width=900&amp;amp;height=250&amp;amp;face=0_0_900_250');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Introduction - Kubernetes Gateway API&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Introduction Gateway API is an official Kubernetes project focused on L4 and L7 routing in Kubernetes. This project represents the next generation of Kubernetes Ingress, Load Balancing, and Service Mesh APIs. From the outset, it has been designed to be gen&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;korean-mirror-gateway-api.netlify.app&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 시작했다는 글을 작성한 지 2주가 지났지만, 이제서야 용어집과 대문인 소개 페이지의 한글화를 진행하였다. 현재 진행률은 PR 기준 약 12%로, 생각보다 매우 느린 진척도를 보이고 있다. 큰일이다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;323&quot; data-start=&quot;240&quot; data-ke-size=&quot;size16&quot;&gt;한 페이지 작업에 많은 시간이 소요되는 이유도 한몫한다. 해당 용어가 공식 용어인지, 표현은 적절한지 등 확인해야 할 부분이 생각보다 많기 때문이다. PR을 올리게 된다면, 이후에는 Contributing을 진행하고, Guides, Reference, 그리고 Enhancements 순으로 진행할 예정이다.&lt;/p&gt;
&lt;p data-end=&quot;415&quot; data-start=&quot;328&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;653&quot; data-start=&quot;420&quot; data-ke-size=&quot;size16&quot;&gt;그런데, 정말 많은 공부가 되고 있다. 용어집을 제외하면 개요만 진행하였는데도, 벌써 왜 Gateway API가 생겨났는지 그 사상에 대해 이해할 수 있었다. 이 점은 기술 자체를 이해하는 데 생각보다 많은 도움이 되었다. (사실 쿠버네티스의 경우, 처음에는 그냥 사용하다가 왜 이 기술이 등장했는지를 나중에 찾아보며 익혔기 때문에, 공부에 공감과 이해가 필요했던 나로서는 처음 시작에 많은 어려움이 있었다.)&lt;/p&gt;
&lt;p data-end=&quot;666&quot; data-start=&quot;658&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;666&quot; data-start=&quot;658&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;666&quot; data-start=&quot;658&quot; data-ke-size=&quot;size16&quot;&gt;더 힘내 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gateway-api.sigs.k8s.io/concepts/glossary/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;공식 페이지&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2404&quot; data-origin-height=&quot;1434&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m7ATb/btsN01K1mRG/lDQE8juYuDAWIajcRSHjS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m7ATb/btsN01K1mRG/lDQE8juYuDAWIajcRSHjS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m7ATb/btsN01K1mRG/lDQE8juYuDAWIajcRSHjS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm7ATb%2FbtsN01K1mRG%2FlDQE8juYuDAWIajcRSHjS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2404&quot; height=&quot;1434&quot; data-origin-width=&quot;2404&quot; data-origin-height=&quot;1434&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://korean-mirror-gateway-api.netlify.app/ko/concepts/glossary/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;한글화 미러 페이지&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2460&quot; data-origin-height=&quot;1468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXKQls/btsN1jYTgQh/Khye0hFdxuEamO0bCMPBu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXKQls/btsN1jYTgQh/Khye0hFdxuEamO0bCMPBu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXKQls/btsN1jYTgQh/Khye0hFdxuEamO0bCMPBu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXKQls%2FbtsN1jYTgQh%2FKhye0hFdxuEamO0bCMPBu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2460&quot; height=&quot;1468&quot; data-origin-width=&quot;2460&quot; data-origin-height=&quot;1468&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Daily</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/65</guid>
      <comments>https://cloudev.tistory.com/entry/gateway-api-docs-l10n-%EC%A7%84%ED%96%89-2%EC%A3%BC%EA%B0%80-%ED%9D%98%EB%A0%80%EB%8B%A4#entry65comment</comments>
      <pubDate>Sun, 1 Jun 2025 17:12:57 +0900</pubDate>
    </item>
    <item>
      <title>gateway api docs l10n 시작</title>
      <link>https://cloudev.tistory.com/entry/gateway-api-docs-l10n-%EC%8B%9C%EC%9E%91</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzPJrR/btsN2qP1eE5/8CJaomgHr0RPDjvOSCKNeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzPJrR/btsN2qP1eE5/8CJaomgHr0RPDjvOSCKNeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzPJrR/btsN2qP1eE5/8CJaomgHr0RPDjvOSCKNeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzPJrR%2FbtsN2qP1eE5%2F8CJaomgHr0RPDjvOSCKNeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;321&quot; height=&quot;54&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 주소부터 공유드린다. &lt;a href=&quot;https://korean-mirror-gateway-api.netlify.app/&quot;&gt;https://korean-mirror-gateway-api.netlify.app/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1747474374392&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Introduction - Kubernetes Gateway API&quot; data-og-description=&quot;Introduction Gateway API is an official Kubernetes project focused on L4 and L7 routing in Kubernetes. This project represents the next generation of Kubernetes Ingress, Load Balancing, and Service Mesh APIs. From the outset, it has been designed to be gen&quot; data-og-host=&quot;korean-mirror-gateway-api.netlify.app&quot; data-og-source-url=&quot;https://korean-mirror-gateway-api.netlify.app/&quot; data-og-url=&quot;https://korean-mirror-gateway-api.netlify.app/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bn7VFg/hyYTgiQkgD/y9RaIKEmhyiuGQo0U6KtC0/img.png?width=800&amp;amp;height=700&amp;amp;face=37_173_189_497,https://scrap.kakaocdn.net/dn/lIyif/hyYTldnSQf/MCHrQ9xX7MPgWZEIeDvvl1/img.png?width=900&amp;amp;height=250&amp;amp;face=0_0_900_250&quot;&gt;&lt;a href=&quot;https://korean-mirror-gateway-api.netlify.app/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://korean-mirror-gateway-api.netlify.app/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bn7VFg/hyYTgiQkgD/y9RaIKEmhyiuGQo0U6KtC0/img.png?width=800&amp;amp;height=700&amp;amp;face=37_173_189_497,https://scrap.kakaocdn.net/dn/lIyif/hyYTldnSQf/MCHrQ9xX7MPgWZEIeDvvl1/img.png?width=900&amp;amp;height=250&amp;amp;face=0_0_900_250');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Introduction - Kubernetes Gateway API&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Introduction Gateway API is an official Kubernetes project focused on L4 and L7 routing in Kubernetes. This project represents the next generation of Kubernetes Ingress, Load Balancing, and Service Mesh APIs. From the outset, it has been designed to be gen&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;korean-mirror-gateway-api.netlify.app&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전부터 관심을 가지고 있던 &lt;a title=&quot;gateway api&quot; href=&quot;https://gateway-api.sigs.k8s.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;gateway api&lt;/a&gt;에 운 좋게도 업무와의 접점이 생기기 시작했다.&lt;br /&gt;문서를 읽을 때마다 DeepL에 의존하며 많은 리소스를 소모하고 있었는데, 종종 다른 분들도 같은 노력을 하고 있다는 걸 알게 되면서 바로 한글화를 시작하기로 마음먹었다. &lt;span style=&quot;color: #9d9d9d;&quot;&gt;&lt;i&gt;(AI의 발전이 언어 장벽부터 없애줄거라 생각했는데... ㅠㅠ)&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;380&quot; data-start=&quot;240&quot; data-ke-size=&quot;size16&quot;&gt;첫 시작은 자연스럽게 용어집부터였다.&lt;br /&gt;(여담으로, 예전에 Kubernetes 문서를 한글화했던 경험이 있어 그때 배운 노하우를 그대로 적용하고 있다. 그 과정에서 느꼈던 즐거움과 열정이 떠올랐고, 지금의 내 모습과 비교되면서 반성도 하게 되었다.)&lt;/p&gt;
&lt;p data-end=&quot;380&quot; data-start=&quot;240&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;380&quot; data-start=&quot;240&quot; data-ke-size=&quot;size16&quot;&gt;미러 홈페이지를 처음 구성할 때, 생각보다 난관이 있었다. kubernetes docs는 Hugo 라이브러리를 사용하여 UI 생성과 l10n을 위한 구성이 되어있었는데, gateway api의 경우 Mkdocs로 만들어져 있었고 l10n를 고려하지 않았던 것인지 디렉터리 구조와 동적 변경을 위한 javascipt를 따로 추가해야했다. 이 내용은 나중에 회고에 작성할 예정이다.&lt;/p&gt;
&lt;p data-end=&quot;380&quot; data-start=&quot;240&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;439&quot; data-start=&quot;382&quot; data-ke-size=&quot;size16&quot;&gt;개인적인 목표로 Overvice 페이지 한글화 진행이 완료 되는날, 공식 리포지터리에 이슈를 생성을 하고자한다.&lt;/p&gt;
&lt;p data-end=&quot;446&quot; data-start=&quot;441&quot; data-ke-size=&quot;size16&quot;&gt;힘내보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gateway-api.sigs.k8s.io/concepts/glossary/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;공식 페이지&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2404&quot; data-origin-height=&quot;1434&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m7ATb/btsN01K1mRG/lDQE8juYuDAWIajcRSHjS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m7ATb/btsN01K1mRG/lDQE8juYuDAWIajcRSHjS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m7ATb/btsN01K1mRG/lDQE8juYuDAWIajcRSHjS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm7ATb%2FbtsN01K1mRG%2FlDQE8juYuDAWIajcRSHjS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2404&quot; height=&quot;1434&quot; data-origin-width=&quot;2404&quot; data-origin-height=&quot;1434&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://korean-mirror-gateway-api.netlify.app/ko/concepts/glossary/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;한글화 미러 페이지&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2460&quot; data-origin-height=&quot;1468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXKQls/btsN1jYTgQh/Khye0hFdxuEamO0bCMPBu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXKQls/btsN1jYTgQh/Khye0hFdxuEamO0bCMPBu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXKQls/btsN1jYTgQh/Khye0hFdxuEamO0bCMPBu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXKQls%2FbtsN1jYTgQh%2FKhye0hFdxuEamO0bCMPBu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2460&quot; height=&quot;1468&quot; data-origin-width=&quot;2460&quot; data-origin-height=&quot;1468&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Daily</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/64</guid>
      <comments>https://cloudev.tistory.com/entry/gateway-api-docs-l10n-%EC%8B%9C%EC%9E%91#entry64comment</comments>
      <pubDate>Sat, 17 May 2025 18:42:58 +0900</pubDate>
    </item>
    <item>
      <title>Kubernetes CSR (CertificateSigningRequest) 리소스</title>
      <link>https://cloudev.tistory.com/entry/Kubernetes-CSR-CertificateSigningRequest-%EB%A6%AC%EC%86%8C%EC%8A%A4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;주변에서 생각보다 &lt;a href=&quot;https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Kubernetes CSR&lt;/a&gt;의 존재를 잘 모르거나, 단순히 cert-manager에서 사용하는 리소스 정도로 알고있는 경우가 있어 이번 기회에 정리하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Kubernetes CSR은 v1.19에서 GA된 기능으로 admission controller가 한창 이목을 끌며 떠오를때 함께 알게되었던 개념이었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;CSR 리소스의 개념&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CertificateSigningRequest는 Kubernetes API 리소스 중 하나로, 사용자가 클러스터 내에서 인증서 서명 요청을 제출하고, 클러스터 내 CA가 이를 승인하여 X.509 인증서를 발급해주는 과정을 위한 리소스이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;CSR&amp;nbsp;리소스를&amp;nbsp;사용하면&amp;nbsp;외부에서&amp;nbsp;수작업&amp;nbsp;없이,&amp;nbsp;자동화된&amp;nbsp;방식으로&amp;nbsp;인증서를&amp;nbsp;생성하고&amp;nbsp;관리할&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경험을 바탕으로 설명하자면, multi cluster를 관리하는 플랫폼 혹은 제품들에서 service account를 생성하고, cluster admin 권한을 할당하여 auto generate 되는 secret token을 kubeconfig에 주입해 사용하는 일반적인 방법과 달리 kubelet, 사용자 kubeconfig, 서비스메쉬 등 관리 측면의 역할(Role) 인증에서 주로 사용되는 방법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 사용되는 방법이 두 가지가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 쿠버네티스 CA와 조합하여 CRT 인증을 만들어 사용하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. CertificateSigningRequest를 사용하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSR 리소스의 구조부터 사용 방법을 차례로 알아보자&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;CSR&amp;nbsp;리소스의&amp;nbsp;구조&lt;/h3&gt;
&lt;pre id=&quot;code_1747470045968&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
  name: my-csr
spec:
  request: &amp;lt;Base64-encoded CSR&amp;gt;
  signerName: kubernetes.io/kube-apiserver-client
  usages:
    - client auth
  username: alice
  groups:
    - system:authenticated
status:
  conditions:
    - type: Approved
      reason: ...
      message: ...
  certificate: &amp;lt;Base64-encoded X.509 certificate&amp;gt; # 서명된 인증서&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1081&quot; data-start=&quot;1020&quot;&gt;spec.request: openssl 등으로 생성한 &lt;b&gt;CSR 파일을 base64 인코딩&lt;/b&gt;한 값&lt;/li&gt;
&lt;li data-end=&quot;1165&quot; data-start=&quot;1082&quot;&gt;spec.signerName: 어떤 인증서 발급자가 서명할 것인지 (예: kubernetes.io/kube-apiserver-client)&lt;/li&gt;
&lt;li data-end=&quot;1224&quot; data-start=&quot;1166&quot;&gt;spec.usages: 인증서의 용도 (예: client auth, server auth)&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;digital signature&lt;/td&gt;
&lt;td&gt;서명용 (TLS 핸드셰이크, 인증서 증명)&lt;/td&gt;
&lt;td&gt;KeyUsage: digitalSignature&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;key encipherment&lt;/td&gt;
&lt;td&gt;키 암호화 (TLS 키 교환)&lt;/td&gt;
&lt;td&gt;KeyUsage: keyEncipherment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;server auth&lt;/td&gt;
&lt;td&gt;서버 인증용 인증서&lt;/td&gt;
&lt;td&gt;ExtendedKeyUsage: serverAuth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;client auth&lt;/td&gt;
&lt;td&gt;클라이언트 인증용 인증서&lt;/td&gt;
&lt;td&gt;ExtendedKeyUsage: clientAuth&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1288&quot; data-start=&quot;1225&quot;&gt;status.certificate: 인증기관(CA)이 서명한 &lt;b&gt;최종 X.509 인증서&lt;/b&gt;가 여기에 포함됨&lt;/li&gt;
&lt;li data-end=&quot;1345&quot; data-start=&quot;1289&quot;&gt;status.conditions: 승인(Approved) 혹은 거절(Denied) 여부&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로, CSR을 생성하고 사용하는 방법을 살펴보자.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;CSR&amp;nbsp;발급&amp;nbsp;워크플로우&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1498&quot; data-start=&quot;1380&quot;&gt;&lt;b&gt;CSR 생성&lt;/b&gt;&lt;br /&gt;사용자 또는 노드가 CSR (X.509 Certificate Signing Request)을 생성&lt;br /&gt;&amp;rarr; 일반적으로 OpenSSL 또는 Go 코드로 .csr 파일 생성&lt;/li&gt;
&lt;li data-end=&quot;1593&quot; data-start=&quot;1500&quot;&gt;&lt;b&gt;CSR 리소스 제출&lt;/b&gt;&lt;br /&gt;Base64 인코딩된 CSR을 포함하여 Kubernetes에 CertificateSigningRequest 리소스로 제출&lt;/li&gt;
&lt;li data-end=&quot;1725&quot; data-start=&quot;1595&quot;&gt;&lt;b&gt;CSR 승인 or 거부&lt;/b&gt;&lt;br /&gt;클러스터 관리자 또는 승인 컨트롤러가 CSR을 Approved 또는 Denied로 설정&lt;br /&gt;(수동 승인: kubectl certificate approve, 자동화 가능)&lt;/li&gt;
&lt;li data-end=&quot;1816&quot; data-start=&quot;1727&quot;&gt;&lt;b&gt;CA 서명 및 인증서 발급&lt;/b&gt;&lt;br /&gt;Kubernetes의 CA가 서명을 진행하고 .status.certificate 필드에 서명된 인증서를 넣고&lt;/li&gt;
&lt;li data-end=&quot;1895&quot; data-start=&quot;1818&quot;&gt;&lt;b&gt;인증서 수령 및 사용&lt;/b&gt;&lt;br /&gt;CSR 리소스를 조회하여 발급된 인증서를 추출하고, 클라이언트는 이를 자신의 신원 증명에 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;사용 예시&lt;/h3&gt;
&lt;pre id=&quot;code_1747470471245&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# key 파일을 만든다. (개인키)
openssl genrsa -out 00103.key 2048

# Certificate Signing Request
# 아래 명령어로 csr 파일을 만든다. key를 기반으로 만듦
# csr 파일은 인증서를 요청할 때 인증 기관에 제출하는 인증서 서명 요청 파일 (.csr 또는 .pem)
openssl req -new -key 00103.key -out 00103.csr

# 위 명령 진행시 각종 정보를 입력함 이때, Common Name에 입력하는 내용이 user named가 된다.
openssl req -new -key 00103.key -out 00103.csr&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 과정까지 진행한 후 CSR 리소스를 사용하느냐, 수동 생성하느냐의 선택지로 나뉘어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;k8s CA로 인증하여 crt를 만드는게 아닌 CertificateSigningRequest를 사용한 방법은 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1747470589792&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 위에서 이어서, 아래 명령어로 token을 인코딩된 출력에서 줄바꿈 없이 한 줄로 출력 후 복사
cat 00103.csr | base64 -w 0 

```yaml
apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
  name: 00103@internal.users # ADD
spec:
  groups:
  - system:authenticated
  request: LS0tLS1CRUdJTiABCDEFGHIJK0JIHGFEDCBA... # ADD
  signerName: kubernetes.io/kube-apiserver-client
  usages:
  - client auth
```

kubectl get csr # 하면 pending을 확인할 수 있음. 허가해줘야함
kubectl certificate approve 00103@internal.users

# 그리고 서명된 crt 파일을 받음
kubectl get csr 00103@internal.users -ojsonpath=&quot;{.status.certificate}&quot; | base64 -d &amp;gt; 00103.crt`

kubectl config set-credentials 00103@internal.users --client-key=00103.key --client-certificate=00103.crt
kubectl config set-context 00103@internal.users --cluster=kubernetes --user=00103@internal.users
kubectl config get-contexts
kubectl config use-context 00103@internal.users&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;SignerName 종류&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Kubernetes에서 제공하는 기본 signer는 다음과 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Signer Name&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;kubernetes.io/kube-apiserver-client&lt;/td&gt;
&lt;td&gt;kube-apiserver 클라이언트 인증서&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;kubernetes.io/kubelet-serving&lt;/td&gt;
&lt;td&gt;kubelet의 서버 인증서 (TLS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;kubernetes.io/kube-apiserver-client-kubelet&lt;/td&gt;
&lt;td&gt;kubelet의 클라이언트 인증서&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;kubernetes.io/legacy-unknown&lt;/td&gt;
&lt;td&gt;이전 버전 호환용, 되도록 사용 지양&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cert-manager의 signer와 같이 커스텀 signer를 설치하여 사용할 수도 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Admission Controller와 CSR&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSR 리소스를 처리하기 위해 사용하는 Admission Controller는 다음과 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Controller&amp;nbsp;이름&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;역할&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CertificateApproval&lt;/td&gt;
&lt;td&gt;사용자의 kubectl certificate approve 요청을 감지하고 상태를 업데이트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CertificateSigning&lt;/td&gt;
&lt;td&gt;승인된 CSR을 감지하고, cluster CA로 서명된 인증서를 발급&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CertificateSubjectRestriction&lt;/td&gt;
&lt;td&gt;(옵션) 사용자 또는 그룹이 CSR에서 특정 주체(subject)를 요청하지 못하게 막음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;더 알아보기: ServiceAccount token vs CSR-based 인증서&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 190px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;&lt;b&gt;항목&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;&lt;b&gt;ServiceAccount&amp;nbsp;Token&amp;nbsp;(automount)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;&lt;b&gt;CSR 기반 X.509 인증서&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;인증 방식&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;JWT (JSON Web Token)&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;X.509 인증서 (TLS 인증)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;주체&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;Pod 내부의 ServiceAccount&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;노드, 사용자, 외부 서비스 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;자동 발급 여부&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;✅ Pod 생성 시 자동 마운트&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;❌ CSR 제출 및 승인 필요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;저장 위치&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;Pod 내부 /var/run/secrets/kubernetes.io/serviceaccount/token&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;별도 파일로 저장 (.crt, .key)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;사용 목적&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;주로 Pod &amp;rarr; API Server 호출&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;노드 인증, 사용자 인증, mTLS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;인증 대상&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;Kubernetes API Server&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;주로 API Server or peer component&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;유효기간&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;짧음 (default 1hr~3hrs), 자동 회전 가능&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;일반적으로 더 길고 수동 회전 필요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;보안 특성&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;서명된 JWT &amp;rarr; API Server에서 검증&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;표준 TLS 핸드셰이크 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;주요 사용처&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;일반 Pod 인증&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;kubelet, 사용자 kubeconfig, 서비스메쉬 등&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;더 알아보기: ServiceAccount Signing Key vs Kubernetes CA&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.2093%;&quot;&gt;&lt;b&gt;항목&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.3023%;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;b&gt;ServiceAccount Signing Key (--service-account-signing-key-file)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 19.5349%;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Kubernetes CA (ca.crt/ca.key)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.2093%;&quot;&gt;키 종류&lt;/td&gt;
&lt;td style=&quot;width: 24.3023%;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;JWT 서명용&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;RSA 키 쌍 (PEM 포맷)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 19.5349%;&quot;&gt;X.509 인증서용 &lt;b&gt;RSA/EC 키 쌍&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.2093%;&quot;&gt;파일 예&lt;/td&gt;
&lt;td style=&quot;width: 24.3023%;&quot;&gt;/etc/kubernetes/pki/sa.pub, sa.key&lt;/td&gt;
&lt;td style=&quot;width: 19.5349%;&quot;&gt;/etc/kubernetes/pki/ca.crt, ca.key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.2093%;&quot;&gt;사용 목적&lt;/td&gt;
&lt;td style=&quot;width: 24.3023%;&quot;&gt;ServiceAccount JWT 토큰 서명 및 검증&lt;/td&gt;
&lt;td style=&quot;width: 19.5349%;&quot;&gt;인증서(CSR) 서명, TLS 통신 검증&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.2093%;&quot;&gt;사용 위치&lt;/td&gt;
&lt;td style=&quot;width: 24.3023%;&quot;&gt;kube-apiserver의 JWT 검증 및 발급 (--service-account-...)&lt;/td&gt;
&lt;td style=&quot;width: 19.5349%;&quot;&gt;kube-apiserver, kubelet 등 X.509 인증서 관련 구성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.2093%;&quot;&gt;교차 사용 가능?&lt;/td&gt;
&lt;td style=&quot;width: 24.3023%;&quot;&gt;❌ 서로 호환되지 않음&lt;/td&gt;
&lt;td style=&quot;width: 19.5349%;&quot;&gt;❌ 전혀 다름&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/63</guid>
      <comments>https://cloudev.tistory.com/entry/Kubernetes-CSR-CertificateSigningRequest-%EB%A6%AC%EC%86%8C%EC%8A%A4#entry63comment</comments>
      <pubDate>Sat, 17 May 2025 17:43:18 +0900</pubDate>
    </item>
    <item>
      <title>killercoda CKS Scenario Issue] Falco Change Rule</title>
      <link>https://cloudev.tistory.com/entry/killercoda-CKS-%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4-%EB%B2%84%EA%B7%B8-Falco-Change-Rule</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;CKS 시나리오 중 Falco Change Rule 에서 버그가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;service falco-modern-bpf restart 명령을 통해 falco 재기동시, 편집한 falco_rules.yaml 가 초기화된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아마도 시나리오 세팅을 위한 작업이 어디선가 동작하는거 같은데 다음으로 넘어가기 위해서는 restart 없이 check로 진행할 수 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/msF1H/btsNRfW4syJ/gS7o5txTxvKKqQ6Ov3NnGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/msF1H/btsNRfW4syJ/gS7o5txTxvKKqQ6Ov3NnGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/msF1H/btsNRfW4syJ/gS7o5txTxvKKqQ6Ov3NnGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmsF1H%2FbtsNRfW4syJ%2FgS7o5txTxvKKqQ6Ov3NnGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;624&quot; height=&quot;524&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;티켓 등록해놨는데 답변 오면 업데이트 하겠다!&lt;/p&gt;</description>
      <category>Daily</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/62</guid>
      <comments>https://cloudev.tistory.com/entry/killercoda-CKS-%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4-%EB%B2%84%EA%B7%B8-Falco-Change-Rule#entry62comment</comments>
      <pubDate>Sun, 11 May 2025 23:18:56 +0900</pubDate>
    </item>
    <item>
      <title>Kubestronaut 취득 도전기..</title>
      <link>https://cloudev.tistory.com/entry/Kubestronaut-%EC%B7%A8%EB%93%9D-%EB%8F%84%EC%A0%84%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Kubestronaut Program이라는 Kubernetes 관련 인증 제도가 있다. 아래의 CNCF 인증을 모두 취득한 개인에게 부여되는 칭호인 &lt;a href=&quot;https://www.cncf.io/training/kubestronaut/?_sft_lf-country=kr&quot; target=&quot;_blank&quot; title=&quot;Kubestronaut&quot;&gt;&lt;span&gt;Kubestronaut&lt;/span&gt;&lt;/a&gt;에 대한 설명은 검색하면 아주 많은 정보를 알 수 있으니 생략하고, 이 글에서는 나에게 애증의 존재가 된 이야기를 기록하고자 한다&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;KCNA (Kubernetes and Cloud Native Associate)&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;KCSA (Kubernetes and Cloud Security Associate)&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;CKA (Certified Kubernetes Administrator)&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;CKAD (Certified Kubernetes Application Developer)&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;CKS (Certified Kubernetes Security Specialist)&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;사실 이 프로그램이 등장한 지 꽤 오래된 점이 있어서 지금에서야 많은 사람이 관련 내용을 알고 있으며 취득하였지만, 등장 당시에 나는 CNCF LF 멤버십 구독을 통해 소식을 바로 알았던 점과, 주변 몇몇 지인과 LinkedIn 1촌인 분들이 초기에 취득하고 관련 내용을 공유해주신 덕분에 다른 분들보다 정보를 더 많이 알고 었다고 생각한다.&lt;br&gt;이런 좋은 환경과 더불어 뭔가 멋지게 보이는 저 칭호를 얻고 싶다는 생각을 하는 건 당연했고, 당시 CKA와 CKAD를 가지고 있던 나는 빠르게 다음 과정인 CKS에 도전했었다.&lt;br&gt;&amp;nbsp;&lt;br&gt;그러나 처참하게, CKS에서 절망했다. 두 번의 시험에도 불구하고 낙제점을 받아 도전에 실패했고, 'S'가 붙은 시험은 두려움의 대상이 되었다. 그렇게&amp;nbsp;언젠가&amp;nbsp;다시&amp;nbsp;도전해야지라는&amp;nbsp;막연한&amp;nbsp;생각만&amp;nbsp;가지고&amp;nbsp;마음의&amp;nbsp;짐으로&amp;nbsp;남겨두었다가,&amp;nbsp;최근에&amp;nbsp;'그&amp;nbsp;언젠가가&amp;nbsp;바로&amp;nbsp;지금이구나'라는&amp;nbsp;생각이&amp;nbsp;들어&amp;nbsp;준비하게&amp;nbsp;되었다.&lt;br&gt;&lt;br&gt;그리고&amp;nbsp;KCNA와&amp;nbsp;더불어&amp;nbsp;며칠&amp;nbsp;전 두려움의 대상인 'S'가 들어있는&amp;nbsp;KCSA까지&amp;nbsp;취득하여,&amp;nbsp;이제&amp;nbsp;드디어&amp;nbsp;CKS&amp;nbsp;한&amp;nbsp;개만&amp;nbsp;남아&amp;nbsp;있는&amp;nbsp;상황이&amp;nbsp;되었다.&amp;nbsp;사실&amp;nbsp;뜬금없이&amp;nbsp;이&amp;nbsp;글을&amp;nbsp;작성하는&amp;nbsp;이유도&amp;nbsp;여기에&amp;nbsp;있다.&amp;nbsp;업무가&amp;nbsp;끝난&amp;nbsp;평일&amp;nbsp;저녁을 투자하고&amp;nbsp;주말까지&amp;nbsp;CKS를&amp;nbsp;공부하다&amp;nbsp;보니&amp;nbsp;뭔지&amp;nbsp;모를&amp;nbsp;현자&amp;nbsp;타임이&amp;nbsp;와서,&amp;nbsp;각오를&amp;nbsp;다지고자&amp;nbsp;하는&amp;nbsp;마음의&amp;nbsp;기록이다.&lt;br&gt;&lt;br&gt;클라우드&amp;nbsp;애플리케이션&amp;nbsp;엔지니어로&amp;nbsp;5년째&amp;nbsp;근무&amp;nbsp;중인&amp;nbsp;입장에서,&amp;nbsp;개인적인&amp;nbsp;경험을&amp;nbsp;바탕으로&amp;nbsp;시험&amp;nbsp;난이도를&amp;nbsp;평가하자면&amp;nbsp;다음과&amp;nbsp;같다.&lt;br&gt;&lt;br&gt;&lt;b&gt;KCNA&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;CKAD&amp;nbsp;&amp;lt;&amp;nbsp;CKA&amp;nbsp;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;nbsp;KCSA&amp;nbsp;&amp;lt;&amp;nbsp;고난의&amp;nbsp;행군&amp;nbsp;&amp;lt;&amp;nbsp;CKS&lt;/b&gt;&lt;br&gt;&lt;br&gt;이유는&amp;nbsp;다음과&amp;nbsp;같다.&lt;br&gt;&lt;br&gt;&lt;b&gt;KCNA&lt;/b&gt;: 실무와 관계없이 쿠버네티스와 클라우드 네이티브에 관심이 있다면 쉽게 합격할 수 있는 수준&lt;br&gt;&lt;b&gt;CKAD&lt;/b&gt;: 쿠버네티스를 공부하는 취준생이라면 합격할 수 있는 수준&lt;br&gt;&lt;b&gt;CKA&lt;/b&gt;: 쿠버네티스 실무를 2년 이상 했다면 킬러셸(&lt;a href=&quot;https://killer.sh/&quot; target=&quot;_blank&quot; title=&quot;killershell&quot;&gt;&lt;span&gt;killershell&lt;/span&gt;&lt;/a&gt;) 한번 연습 후 바로 합격할 수 있는 수준&lt;br&gt;&lt;b&gt;KCSA&lt;/b&gt;: 클라우드 네이티브 환경을 잘 알고, 관련 내용을 적절한 영어로 표현할 수 있다면 합격할 수 있는 수준 (개인적으로 매우 어려움)&lt;br&gt;&lt;b&gt;CKS&lt;/b&gt;:&amp;nbsp;쿠버네티스에&amp;nbsp;대해&amp;nbsp;심도&amp;nbsp;있게&amp;nbsp;공부해&amp;nbsp;본&amp;nbsp;사람이&amp;nbsp;보안과&amp;nbsp;관련한&amp;nbsp;컨트롤&amp;nbsp;플레인&amp;nbsp;유지보수에&amp;nbsp;관한&amp;nbsp;기본&amp;nbsp;지식을&amp;nbsp;갖춘다면&amp;nbsp;합격할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;수준 (진정한 공포의 대상)&lt;br&gt;&amp;nbsp;&lt;br&gt;개인&amp;nbsp;경험이&amp;nbsp;들어가&amp;nbsp;있어서&lt;b&gt;&amp;nbsp;매우&amp;nbsp;매우&amp;nbsp;&lt;/b&gt;주관적인&amp;nbsp;평가라고&amp;nbsp;생각한다.&amp;nbsp;하지만&amp;nbsp;현업과&amp;nbsp;시험을&amp;nbsp;모두&amp;nbsp;경험해&amp;nbsp;본&amp;nbsp;사람이라면&amp;nbsp;공감할&amp;nbsp;수&amp;nbsp;있을&amp;nbsp;것이다.&amp;nbsp;CKS&amp;nbsp;시험은&amp;nbsp;쿠버네티스&amp;nbsp;시험의&amp;nbsp;온몸&amp;nbsp;비틀기였다.&amp;nbsp;(&lt;s&gt;그래서&amp;nbsp;두&amp;nbsp;번이나&amp;nbsp;떨어졌나&amp;nbsp;보다.&lt;/s&gt;)&lt;br&gt;&amp;nbsp;&lt;br&gt;시험 정보를 얻고자 들어온 독자분들에게 정보를 주지는 못했지만, 응원은 드리고 싶다. 그리고 나도 다시 한 번 각오를 다진다.&lt;br&gt;우리 함께 힘내 보자.&lt;br&gt;언젠가 Kubestronaut 페이지에서 얼굴을 마주하고, 그곳이 한국인으로 가득 찰 그날까지...&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1214&quot; data-origin-height=&quot;1134&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nS1zT/btsNBIqins7/DamS9pvotPQuWKz3I75C6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nS1zT/btsNBIqins7/DamS9pvotPQuWKz3I75C6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nS1zT/btsNBIqins7/DamS9pvotPQuWKz3I75C6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnS1zT%2FbtsNBIqins7%2FDamS9pvotPQuWKz3I75C6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1214&quot; height=&quot;1134&quot; data-origin-width=&quot;1214&quot; data-origin-height=&quot;1134&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;</description>
      <category>Daily</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/61</guid>
      <comments>https://cloudev.tistory.com/entry/Kubestronaut-%EC%B7%A8%EB%93%9D-%EB%8F%84%EC%A0%84%EA%B8%B0#entry61comment</comments>
      <pubDate>Sat, 26 Apr 2025 19:59:44 +0900</pubDate>
    </item>
    <item>
      <title>Kubernetes v1.33 스포일러</title>
      <link>https://cloudev.tistory.com/entry/Kubernetes-v133-%EC%8A%A4%ED%8F%AC%EC%9D%BC%EB%9F%AC</link>
      <description>&lt;h1 data-end=&quot;100&quot; data-start=&quot;74&quot;&gt;Kubernetes v1.33 미리 보기&lt;/h1&gt;
&lt;p data-end=&quot;203&quot; data-start=&quot;101&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;작성자: Agustina Barbetta, Aakanksha Bhende, Udi Hofesh, Ryota Sawada, Sneha Yadav | 2025년 3월 26일 수요일&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;435&quot; data-start=&quot;205&quot; data-ke-size=&quot;size16&quot;&gt;Kubernetes v1.33 릴리스가 다가오면서, Kubernetes 프로젝트는 계속해서 진화하고 있습니다. 전체 프로젝트의 건강한 발전을 위해 기능이 폐지되거나 제거되거나 교체될 수 있습니다. 이 블로그 포스트에서는 v1.33 릴리스 팀이 사용자가 알아야 한다고 판단한 주요 변경 사항을 정리했습니다. 아래 정보는 현재 시점의 v1.33 릴리스 계획을 기반으로 하며, 최종 릴리스 이전에 변경될 수 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-end=&quot;472&quot; data-start=&quot;442&quot; data-ke-size=&quot;size26&quot;&gt;Kubernetes API 제거 및 폐지 프로세스&lt;/h2&gt;
&lt;p data-end=&quot;533&quot; data-start=&quot;474&quot; data-ke-size=&quot;size16&quot;&gt;Kubernetes 프로젝트는 기능 폐지에 대한 명확한 정책을 문서화해 두고 있습니다. 이 정책에 따르면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;707&quot; data-start=&quot;535&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;610&quot; data-start=&quot;535&quot;&gt;&lt;b&gt;Generally available(GA) API&lt;/b&gt;는 새로운 안정 버전이 존재할 때만 폐지될 수 있으며, 폐지된 이후 &lt;b&gt;최소 1년&lt;/b&gt; 동안 유지됩니다.&lt;/li&gt;
&lt;li data-end=&quot;658&quot; data-start=&quot;611&quot;&gt;&lt;b&gt;Beta&lt;/b&gt; 또는&amp;nbsp;&lt;b&gt;pre-release API&lt;/b&gt;는 폐지 이후 &lt;b&gt;3개의 릴리스&lt;/b&gt; 동안 지원되어야 합니다.&lt;/li&gt;
&lt;li data-end=&quot;707&quot; data-start=&quot;659&quot;&gt;&lt;b&gt;Alpha&lt;/b&gt; 또는 &lt;b&gt;experimental API&lt;/b&gt;는 별도의 사전 경고 없이 어느 릴리스에서든 제거될 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;800&quot; data-start=&quot;709&quot; data-ke-size=&quot;size16&quot;&gt;API가 베타에서 안정 버전으로 승격되거나, 실패하여 제거되는 경우 모두 이 정책을 따릅니다. API가 제거될 때는 마이그레이션 경로가 명시된 가이드가 제공됩니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-end=&quot;833&quot; data-start=&quot;807&quot; data-ke-size=&quot;size26&quot;&gt;v1.33에서의 주요 API 폐지 및 제거&lt;/h2&gt;
&lt;h3 data-end=&quot;862&quot; data-start=&quot;835&quot; data-ke-size=&quot;size23&quot;&gt;Endpoints API의 안정 버전 폐지&lt;/h3&gt;
&lt;p data-end=&quot;1066&quot; data-start=&quot;863&quot; data-ke-size=&quot;size16&quot;&gt;EndpointSlices API는 v1.21부터 stable 버전으로 제공되며, 기존 Endpoints API를 효과적으로 대체합니다. 기존 API는 단순했지만, 대규모 네트워크 엔드포인트에서는 확장성 문제가 있었습니다. EndpointSlices는 듀얼 스택 네트워킹 등의 기능을 제공하며, 이제 기존 Endpoints API는 폐지 수순에 들어갑니다.&lt;/p&gt;
&lt;p data-end=&quot;1176&quot; data-start=&quot;1068&quot; data-ke-size=&quot;size16&quot;&gt;이 변경은 Endpoints API를 직접 사용하는 사용자(스크립트, 워크로드 등)에만 영향을 미치며, EndpointSlices로 마이그레이션해야 합니다. KEP-4974를 참고하세요.&lt;/p&gt;
&lt;h3 data-end=&quot;1208&quot; data-start=&quot;1178&quot; data-ke-size=&quot;size23&quot;&gt;노드 상태의 kube-proxy 버전 정보 제거&lt;/h3&gt;
&lt;p data-end=&quot;1367&quot; data-start=&quot;1209&quot; data-ke-size=&quot;size16&quot;&gt;v1.31에서 폐지된 후, status.nodeInfo.kubeProxyVersion 필드는 v1.33에서 완전히 제거됩니다. 이 필드는 kubelet에 의해 설정되었으나 정확하지 않았으며, v1.31 이후 기본적으로 비활성화되었습니다. 관련 정보는 KEP-4004를 참고하세요.&lt;/p&gt;
&lt;h3 data-end=&quot;1403&quot; data-start=&quot;1369&quot; data-ke-size=&quot;size23&quot;&gt;Windows Pod의 hostNetwork 지원 제거&lt;/h3&gt;
&lt;p data-end=&quot;1580&quot; data-start=&quot;1404&quot; data-ke-size=&quot;size16&quot;&gt;Windows Pod 네트워킹은 Linux와의 기능 동등성을 목표로 했으며, host 네트워크 네임스페이스 사용을 통해 클러스터 밀도를 높이고자 했습니다. 그러나 containerd의 예기치 않은 동작과 대체 솔루션의 존재로 인해 해당 기능(Kep-3503)은 철회되며, v1.33에서 완전히 제거될 예정입니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-end=&quot;1605&quot; data-start=&quot;1587&quot; data-ke-size=&quot;size26&quot;&gt;v1.33의 주요 개선 사항&lt;/h2&gt;
&lt;h3 data-end=&quot;1636&quot; data-start=&quot;1607&quot; data-ke-size=&quot;size23&quot;&gt;Linux Pod 내 사용자 네임스페이스 지원&lt;/h3&gt;
&lt;p data-end=&quot;1834&quot; data-start=&quot;1637&quot; data-ke-size=&quot;size16&quot;&gt;가장 오래된 KEP 중 하나인 &lt;a href=&quot;https://github.com/kubernetes/enhancements/issues/127&quot; data-end=&quot;1718&quot; data-start=&quot;1654&quot;&gt;KEP-127&lt;/a&gt;은 Pod 보안을 강화하기 위해 &lt;b&gt;Linux 사용자 네임스페이스&lt;/b&gt;를 도입합니다. 이 기능은 v1.25에 알파, v1.30에 베타(기본 비활성화)로 출시되었고, 이제 v1.33에서 &lt;b&gt;기본 활성화&lt;/b&gt;됩니다.&lt;/p&gt;
&lt;p data-end=&quot;1936&quot; data-start=&quot;1836&quot; data-ke-size=&quot;size16&quot;&gt;이 기능은 기존 Pod에는 영향을 주지 않으며, pod.spec.hostUsers를 명시하여 수동으로 활성화해야 합니다. 이는 보안 취약점을 완화하기 위한 중요한 이정표입니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-end=&quot;1962&quot; data-start=&quot;1943&quot; data-ke-size=&quot;size26&quot;&gt;v1.33의 기타 주요 기능들&lt;/h2&gt;
&lt;h3 data-end=&quot;1993&quot; data-start=&quot;1964&quot; data-ke-size=&quot;size23&quot;&gt;Pod 리소스의 인플레이스(무중단) 수직 확장&lt;/h3&gt;
&lt;p data-end=&quot;2102&quot; data-start=&quot;1994&quot; data-ke-size=&quot;size16&quot;&gt;Pod의 리소스를 수정하려면 이전에는 Pod를 재시작해야 했습니다. 그러나 KEP-1287을 통해 Pod를 재생성하지 않고도 CPU/메모리 등의 리소스를 &lt;b&gt;동적으로 수정&lt;/b&gt;할 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2216&quot; data-start=&quot;2103&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2158&quot; data-start=&quot;2103&quot;&gt;이 기능은 v1.27에 알파로 도입되었으며, v1.33에서 &lt;b&gt;베타&lt;/b&gt;로 예정되어 있습니다.&lt;/li&gt;
&lt;li data-end=&quot;2216&quot; data-start=&quot;2159&quot;&gt;초기 부팅 시 많은 리소스를 할당하고 이후 줄이거나, 상태 저장 서비스의 무중단 확장에 유용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;2267&quot; data-start=&quot;2218&quot; data-ke-size=&quot;size23&quot;&gt;DRA의 ResourceClaim 장치 상태(Device Status) 베타 전환&lt;/h3&gt;
&lt;p data-end=&quot;2345&quot; data-start=&quot;2268&quot; data-ke-size=&quot;size16&quot;&gt;v1.32에서 도입된 devices 필드는 ResourceClaim의 상태에 장치 상태 정보를 포함할 수 있도록 해줍니다. 이 필드는:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2428&quot; data-start=&quot;2346&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2405&quot; data-start=&quot;2346&quot;&gt;네트워크 인터페이스의 이름, MAC 주소, IP 주소 등을 보고하여 관측성과 디버깅을 향상시킵니다.&lt;/li&gt;
&lt;li data-end=&quot;2428&quot; data-start=&quot;2406&quot;&gt;관련 KEP는 KEP-4817입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;2449&quot; data-start=&quot;2430&quot; data-ke-size=&quot;size23&quot;&gt;네임스페이스 삭제 순서 지정&lt;/h3&gt;
&lt;p data-end=&quot;2514&quot; data-start=&quot;2450&quot; data-ke-size=&quot;size16&quot;&gt;현재 네임스페이스 삭제는 순서가 랜덤하여, 관련 리소스가 잘못된 순서로 제거될 수 있는 보안 문제가 있었습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2604&quot; data-start=&quot;2515&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2604&quot; data-start=&quot;2515&quot;&gt;KEP-5080은 &lt;b&gt;논리적&amp;middot;보안적 종속성을 고려한 삭제 순서&lt;/b&gt;를 도입하여, Pod가 먼저 삭제된 후 NetworkPolicy 등이 제거되도록 보장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;2635&quot; data-start=&quot;2606&quot; data-ke-size=&quot;size23&quot;&gt;인덱스 잡(Indexed Jobs) 처리 향상&lt;/h3&gt;
&lt;p data-end=&quot;2685&quot; data-start=&quot;2636&quot; data-ke-size=&quot;size16&quot;&gt;KEP-3850과 KEP-3998은 인덱스 잡에 대한 신뢰성과 제어력을 향상시킵니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2789&quot; data-start=&quot;2686&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2741&quot; data-start=&quot;2686&quot;&gt;&lt;b&gt;인덱스별 백오프 한계&lt;/b&gt;를 정의할 수 있어, 실패한 인덱스만 재시도하게 할 수 있습니다.&lt;/li&gt;
&lt;li data-end=&quot;2789&quot; data-start=&quot;2742&quot;&gt;일부 인덱스가 실패해도 잡을 &lt;b&gt;성공적으로 완료된 상태로 처리&lt;/b&gt;할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-end=&quot;2805&quot; data-start=&quot;2796&quot; data-ke-size=&quot;size26&quot;&gt;더 알아보기&lt;/h2&gt;
&lt;p data-end=&quot;2924&quot; data-start=&quot;2807&quot; data-ke-size=&quot;size16&quot;&gt;Kubernetes v1.33 릴리스는 &lt;b&gt;2025년 4월 23일 수요일&lt;/b&gt;에 예정되어 있으며, 릴리스 노트와 CHANGELOG에서 모든 변경 사항이 공식 발표될 예정입니다.&lt;/p&gt;</description>
      <category>기계번역</category>
      <author>kare jeyuk</author>
      <guid isPermaLink="true">https://cloudev.tistory.com/58</guid>
      <comments>https://cloudev.tistory.com/entry/Kubernetes-v133-%EC%8A%A4%ED%8F%AC%EC%9D%BC%EB%9F%AC#entry58comment</comments>
      <pubDate>Sat, 19 Apr 2025 15:33:55 +0900</pubDate>
    </item>
  </channel>
</rss>