<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>makgol's note – 설정·확장</title><link>https://docs.makgol.com/platform/istio/configuration/</link><description>Recent content in 설정·확장 on makgol's note</description><generator>Hugo -- gohugo.io</generator><language>ko-KR</language><copyright>© 2026 Mont</copyright><lastBuildDate>Sun, 04 Oct 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://docs.makgol.com/platform/istio/configuration/index.xml" rel="self" type="application/rss+xml"/><item><title>설정을 코드로: GitOps</title><link>https://docs.makgol.com/istio/04-config-as-code/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/istio/04-config-as-code/</guid><description>
&lt;h1&gt;04 · 설정을 코드로 — Istio Manifest를 Git으로 동기화하기&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;Istio 설정은 두 층입니다 — 설치 층(Helm 권장, IstioOperator는 지양)과 트래픽 층(전부 CRD).&lt;/li&gt;
&lt;li&gt;메시 CRD는 적용하는 순간 트래픽에 직결됩니다. 손 apply가 남기는 드리프트·추적불가·재현불가가 그대로 장애 위험이 됩니다.&lt;/li&gt;
&lt;li&gt;GitOps(Argo CD/Flux)로 Git을 단일 진실로 정해 드리프트를 자동 복원하고 &lt;code&gt;istioctl analyze&lt;/code&gt;로 적용 전에 검증합니다.&lt;/li&gt;
&lt;li&gt;컨트롤 플레인 업그레이드는 revision 기반 카나리로 폭발 반경을 줄입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;그때 무슨 일이 있었나. IstioOperator/Helm 값, Gateway, VirtualService, DestinationRule — 메시 설정 일체를 그때그때 &lt;code&gt;kubectl apply&lt;/code&gt;로 손봤습니다. 클러스터의 실제 상태와 Git 저장소는 거기서부터 어긋나기 시작했습니다. 누가 언제 무엇을 바꿨는지 기록이 남지 않았고 재현도 롤백도 불안했습니다. &amp;ldquo;Istio Manifest Sync&amp;rdquo; 과제는 이 드리프트를 없애고 Git을 단일 진실로 만드는 일이었습니다. 이 문서에서는 Istio 설정 방식, GitOps로 옮기는 이유, 메시 설정 특유의 위험을 다룹니다.&lt;/p&gt;</description></item><item><title>EnvoyFilter — 표준 CRD의 탈출구</title><link>https://docs.makgol.com/istio/08-envoyfilter-extension/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/istio/08-envoyfilter-extension/</guid><description>
&lt;h1&gt;08 · EnvoyFilter — 표준 CRD로 안 되는 것들의 탈출구&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;EnvoyFilter는 istiod가 만든 Envoy 설정을 직접 패치하는 저수준 탈출구입니다 — &lt;code&gt;applyTo × context × operation&lt;/code&gt;으로 읽습니다.&lt;/li&gt;
&lt;li&gt;업그레이드에 취약하고 폭발 반경이 크고 리뷰가 어려워 최후의 수단입니다. 표준 CRD → 상위 API(Telemetry/WasmPlugin) → EnvoyFilter 순으로 고릅니다.&lt;/li&gt;
&lt;li&gt;레이트 리밋은 local(인스턴스별·무의존)과 global(전역정확·RLS 비용)로 성격이 다릅니다.&lt;/li&gt;
&lt;li&gt;쓴다면 &lt;code&gt;workloadSelector&lt;/code&gt;로 좁게, 버전 핀·GitOps 리뷰·관측이 필수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://docs.makgol.com/istio/07-from-nginx-to-istio/"&gt;07&lt;/a&gt;의 표준 CRD로 대부분은 해결됩니다. 남는 것은 정교한 레이트 리밋, 특정 Envoy HTTP 필터 삽입, 커스텀 요청 조작처럼 VirtualService·AuthorizationPolicy의 어휘로는 표현 안 되는 요구입니다. 그때 열리는 마지막 문이 EnvoyFilter — istiod가 생성한 Envoy 설정을 직접 패치하는 저수준 탈출구입니다. 강력한 만큼 위험하므로 이 문서는 무엇을 할 수 있는지만큼 왜 최후의 수단인지를 함께 다룹니다.&lt;/p&gt;</description></item><item><title>CRD 카탈로그와 연계</title><link>https://docs.makgol.com/istio/15-crd-catalog/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/istio/15-crd-catalog/</guid><description>
&lt;h1&gt;15 · CRD 카탈로그와 연계 — 14개 리소스가 서로를 참조하는 축&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;ul&gt;
&lt;li&gt;우리 클러스터에 깔린 Istio CRD는 14개, 그룹은 networking · security · telemetry · extensions 넷입니다.&lt;/li&gt;
&lt;li&gt;리소스는 혼자 동작하지 않습니다. 트래픽 축은 Gateway → VirtualService → DestinationRule → 엔드포인트로 이름과 라벨을 타고 이어집니다. 사슬이 끊기는 곳이 곧 장애 지점입니다.&lt;/li&gt;
&lt;li&gt;보안 축의 함정 둘: PeerAuthentication(수신)과 DestinationRule &lt;code&gt;tls&lt;/code&gt;(송신)가 어긋나면 503이 납니다. RequestAuthentication은 토큰 없는 요청을 거부하지 않습니다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sidecar&lt;/code&gt;·&lt;code&gt;ProxyConfig&lt;/code&gt;·&lt;code&gt;Telemetry&lt;/code&gt;는 트래픽 대신 프록시 자체를 조정하는 부류입니다.&lt;/li&gt;
&lt;li&gt;버전 컬럼에 성숙도가 그대로 적혀 있습니다 — 대부분 &lt;code&gt;v1&lt;/code&gt;인데 EnvoyFilter만 &lt;code&gt;v1alpha3&lt;/code&gt;, WasmPlugin은 &lt;code&gt;v1alpha1&lt;/code&gt;입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://docs.makgol.com/istio/13-istio-envoy-assembly/"&gt;13&lt;/a&gt;이 다룬 것은 4대 리소스가 Envoy 설정으로 번역되는 경로뿐입니다. 클러스터에 실제로 깔린 CRD는 14개입니다. 사고가 나는 곳은 리소스 하나의 필드보다 리소스와 리소스 사이인 경우가 많습니다 — VirtualService가 부르는 &lt;code&gt;subset&lt;/code&gt; 이름이 DestinationRule에 없거나, PeerAuthentication과 DestinationRule의 TLS 모드가 어긋나거나, RequestAuthentication만 걸어 두고 인가를 빠뜨리거나. 이 문서는 14개를 사전처럼 나열하는 대신 참조 관계의 축으로 묶습니다.&lt;/p&gt;</description></item><item><title>nginx에서 Istio로</title><link>https://docs.makgol.com/istio/07-from-nginx-to-istio/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><guid>https://docs.makgol.com/istio/07-from-nginx-to-istio/</guid><description>
&lt;h1&gt;07 · nginx에서 Istio로 — rewrite·헤더·인가는 어디로 갔나&lt;/h1&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;&lt;strong&gt;한눈에&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>