<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on iamjjanga blog</title><link>https://blog.iamjjanga.com/</link><description>Recent content in Home on iamjjanga blog</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 17 Nov 2025 22:45:03 +0900</lastBuildDate><atom:link href="https://blog.iamjjanga.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Vault Auto Unseal With AWS KMS</title><link>https://blog.iamjjanga.com/vault-auto-unseal-with-aws-kms/</link><pubDate>Mon, 17 Nov 2025 22:45:03 +0900</pubDate><guid>https://blog.iamjjanga.com/vault-auto-unseal-with-aws-kms/</guid><description>&lt;nav id="TableOfContents">
 &lt;h4>Table Of Contents&lt;/h4>
 &lt;nav id="TableOfContents">
 &lt;ol>
 &lt;li>&lt;a href="#intro">Intro&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#sealing-in-vault">Sealing in Vault&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#seal--unseal">Seal &amp;amp; Unseal&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#challenge">Challenge&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#solution">Solution&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#configurations">Configurations&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#kms-생성">KMS 생성&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#irsaiam-role-for-serviceaccount-생성">IRSA(IAM Role for ServiceAccount) 생성&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#vault-helm">Vault (Helm)&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#ref">Ref&lt;/a>&lt;/li>
 &lt;/ol>
&lt;/nav>
&lt;/nav>
&lt;h1 id="intro">Intro&lt;/h1>
&lt;h1 id="sealing-in-vault">Sealing in Vault&lt;/h1>
&lt;h2 id="seal--unseal">Seal &amp;amp; Unseal&lt;/h2>
&lt;p>&lt;a href="https://developer.hashicorp.com/vault/tutorials/auto-unseal/autounseal-aws-kms">Auto-unseal Vault using AWS KMS | Vault | HashiCorp Developer&lt;/a>&lt;/p>
&lt;p>
&lt;img src="image.png" alt="alt text" loading="lazy">
&lt;/p>
&lt;p>Vault Server는 기본적으로 시작 시, &lt;code>Sealed&lt;/code> 상태로 시작하게 된다. &lt;code>Sealed&lt;/code> 상태인경우 Secret에 대한 Decrypt가 불가능하다.&lt;/p>
&lt;blockquote>
&lt;p>Unsealing is the process of constructing the master key necessary to decrypt the data encryption key&lt;/p></description></item><item><title>Aws Vpc Endpoints Review</title><link>https://blog.iamjjanga.com/aws-vpc-endpoints-review/</link><pubDate>Tue, 04 Nov 2025 22:11:13 +0900</pubDate><guid>https://blog.iamjjanga.com/aws-vpc-endpoints-review/</guid><description>&lt;nav id="TableOfContents">
 &lt;h4>Table Of Contents&lt;/h4>
 &lt;nav id="TableOfContents">
 &lt;ol>
 &lt;li>&lt;a href="#intro">Intro&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#endpoints">Endpoints&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#type-of-endpoints">Type of Endpoints&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#hands-on-gateway로-s3-endpoints-설정">(Hands-On) Gateway로 S3 Endpoints 설정&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#nat-사용-확인-하기">NAT 사용 확인 하기&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#s3-endpoints-생성">S3 Endpoints 생성&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#nat를-사용하지-않는-것을-확인">NAT를 사용하지 않는 것을 확인&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#ref">Ref&lt;/a>&lt;/li>
 &lt;/ol>
&lt;/nav>
&lt;/nav>
&lt;h1 id="intro">Intro&lt;/h1>
&lt;p>최근 업무를 진행하면서 Production VPC에서는 S3 Endpoints(Gateway)가 다른 엔지니어분의 작업으로 해당 설정이 유효하게 설정되었지만, Dev VPC는 누락된 부분이 있어서 다시 리서치하는 의미에서 이 글을 작성하게 되었다.&lt;/p>
&lt;h1 id="endpoints">Endpoints&lt;/h1>
&lt;p>AWS에서 S3는 다양한 환경에서 사용한다.&lt;/p>
&lt;ul>
&lt;li>Local에서 &lt;code>aws-cli&lt;/code> 를 사용해서 Object를 업로드&amp;amp;다운로드&lt;/li>
&lt;li>(간혹) Static Web Hosting이나 Cloudfront와 연결해서 Redirect로도 사용&lt;/li>
&lt;li>(주로) VPC 내에서 필요한 정적파일 혹은 백업, 로그를 보관하는 목적&lt;/li>
&lt;/ul>
&lt;p>여기서 S3를 참조할때 네트워크 트래픽에 대한 부분을 많이 간과해서 사용하는 경우에 적은 Call수에는 차이가 나지 않을 수 있지만 잦고 다량의 Call이 발생할때는 무시할 수 없는 비용이다.&lt;/p></description></item><item><title>Cilium Study Security Network Policy</title><link>https://blog.iamjjanga.com/cilium-study-security-network-policy/</link><pubDate>Sat, 06 Sep 2025 22:17:12 +0900</pubDate><guid>https://blog.iamjjanga.com/cilium-study-security-network-policy/</guid><description>&lt;nav id="TableOfContents">
 &lt;h4>Table Of Contents&lt;/h4>
 &lt;nav id="TableOfContents">
 &lt;ol>
 &lt;li>&lt;a href="#intro">Intro&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#cilium-security">Cilium Security&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#cilium-envoy-proxy">Cilium Envoy Proxy&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#identity-based">Identity-Based&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#special-identities">Special Identities&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#identity-management-in-the-cluster">Identity Management in the cluster&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#network-policy">Network Policy&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#policy-enforcement-modes">Policy Enforcement Modes&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#network-policy-editor">Network Policy Editor&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#example-layer-3-예시">[Example] Layer 3 예시&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#example-layer-4-예시">[Example] Layer 4 예시&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#example-layer-7-예시">[Example] Layer 7 예시&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#lab">Lab&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#lab1-locking-down-external-access-with-dns-based-policies">[Lab1] Locking Down External Access with DNS-Based Policies&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#dns-egress-policy-mediabot-pod가-apigithubcom-에만-액세스하도록-허용">[DNS Egress Policy] mediabot Pod가 &lt;a href="http://api.github.com">api.github.com&lt;/a> 에만 액세스하도록 허용&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;/ol>
&lt;/nav>
&lt;/nav>
&lt;h1 id="intro">Intro&lt;/h1>
&lt;h1 id="cilium-security">Cilium Security&lt;/h1>
&lt;p>&lt;a href="https://docs.cilium.io/en/stable/security/network/policyenforcement/#policy-enforcement">Policy Enforcement — Cilium 1.18.1 documentation&lt;/a>&lt;/p>
&lt;p>
&lt;figure>
 &lt;img src="image.png" alt="" loading="lazy">
 &lt;figcaption>ID 기반 보안 정책 (&lt;a href="https://docs.cilium.io/en/stable/security/network/identity/">https://docs.cilium.io/en/stable/security/network/identity/&lt;/a>)&lt;/figcaption>
&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>Cilium에서의 보안정책은 “세션 기반 프로토콜”에 대해 &lt;strong>상태 저장 정책&lt;/strong>이 적용되어, 응답 패킷은 자동으로 허용됨.
&lt;ul>
&lt;li>정책이 A =&amp;gt; B를 허용한다면, B에서 A로의 응답 패킷도 자동으로 허용&lt;/li>
&lt;li>그러나 B가 A로의 연결을 시작하는 것은 자동으로 허용 X (양방향은 &lt;strong>명시적&lt;/strong> 허용 필요)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>보안 정책은 입력(수신) 또는 출력(송신)에서 적용&lt;/li>
&lt;li>&lt;strong>ID 기반&lt;/strong> 보안정책을 사용 (다중 클러스터 환경도 포함)&lt;/li>
&lt;li>기본 보안 정책
&lt;ul>
&lt;li>기본(Default) 동작 (= 정책이 없는 경우)은 “Allow All”&lt;/li>
&lt;li>첫번째 정책 규칙이 적용되면 화이트리스트(WhiteList) 기반으로 동작해 화이트리스트에 없는 패킷은 Drop&lt;/li>
&lt;li>L4 정책도 동일&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="cilium-envoy-proxy">Cilium Envoy Proxy&lt;/h2>
&lt;p>
&lt;figure>
 &lt;img src="image-1.png" alt="Cilium Envoy Proxy" loading="lazy">
 &lt;figcaption>&lt;a href="https://docs.cilium.io/en/stable/security/network/proxy/envoy/">https://docs.cilium.io/en/stable/security/network/proxy/envoy/&lt;/a>&lt;/figcaption>
&lt;/figure>
&lt;/p></description></item><item><title>[Kubernetes] Check Performance using Kube Burner</title><link>https://blog.iamjjanga.com/kubernetes-check-performance-using-kube-burner/</link><pubDate>Sat, 30 Aug 2025 01:03:49 +0900</pubDate><guid>https://blog.iamjjanga.com/kubernetes-check-performance-using-kube-burner/</guid><description>&lt;nav id="TableOfContents">
 &lt;h4>Table Of Contents&lt;/h4>
 &lt;nav id="TableOfContents">
 &lt;ol>
 &lt;li>&lt;a href="#intro">Intro&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#실습환경구성">실습환경구성&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#kube-burner">Kube-burner&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#features">Features&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#installation">Installation&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#add-container-image">(Add) Container Image&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#configuration">Configuration&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#template-config-file">Template config file&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#global-section">Global Section&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#jobs-section">Jobs Section&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#scenario-1-deployment-1-생성">Scenario 1] Deployment 1 생성&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#생성">생성&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#삭제">삭제&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#scenario-2-다양한-옵션값-확인하기">[Scenario 2] 다양한 옵션값 확인하기&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#scenario-1---39358s">scenario 1 - &lt;code>39.358s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#preloadimages-false---3354s">preLoadImages: false - &lt;code>3.354s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#waitwhenfinished-false---1304s">waitWhenFinished: false - &lt;code>1.304s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#jobiteration-5---5265s">jobIteration: 5 - &lt;code>5.265s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#objectsreplicas-2---10294s">objects.replicas: 2 - &lt;code>10.294s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#objecttemplate-내의-deployment에-replicase를-2로-수정---10254s">objectTemplate 내의 deployment에 replicase를 2로 수정 - &lt;code>10.254s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#jobiteration-10---20336s">jobIteration 10 - &lt;code>20.336s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#qps-10-burst-10---1336s">qps: 10, burst: 10 - &lt;code>1.336s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#jobiterations-10-qps-1-burst10-objectsreplicas-1---1290s">jobIterations: 10, qps: 1, burst:10, objects.replicas: 1 - &lt;code>1.290s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#jobiterations-100-qps-1-burst100-objectsreplicas-1---1972s">jobIterations: 100, qps: 1, burst:100, objects.replicas: 1 - &lt;code>1.972s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#jobiterations-10-qps-1-burst10-objectsreplicas-2---11240s">jobIterations: 10, qps: 1, burst:10, objects.replicas: 2 - &lt;code>11.240s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#jobiterations-10-qps-1-burst20-objectsreplicas-2---1112s">jobIterations: 10, qps: 1, burst:20, objects.replicas: 2 - &lt;code>1.112s&lt;/code>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#jobiterations-20-qps-2-burst20-objectsreplicas-2---10701s">jobIterations: 20, qps: 2, burst:20, objects.replicas: 2 - &lt;code>10.701s&lt;/code>&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#scenario-3-1-노드-1대에-최대-pod-이상-배포-시도">[Scenario 3-1] 노드 1대에 최대 Pod 이상 배포 시도&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#jobiterations-100-qps-300-burst-300-objectsreplicas-1">jobIterations: 100, qps: 300, burst: 300, objects.replicas: 1&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#scenario-3-2-podcidr를-넘는-숫자로-배포-요청">[Scenario 3-2] podCIDR를 넘는 숫자로 배포 요청&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;/ol>
&lt;/nav>
&lt;/nav>
&lt;!-- raw HTML omitted -->
&lt;p>&lt;code>Cloud@Net Cilium Study 1기&lt;/code> 과정 중 정리 글입니다.&lt;/p></description></item><item><title>Cilium Study Networking Bgp Control Plane</title><link>https://blog.iamjjanga.com/cilium-study-networking-bgp-control-plane/</link><pubDate>Thu, 14 Aug 2025 00:14:50 +0900</pubDate><guid>https://blog.iamjjanga.com/cilium-study-networking-bgp-control-plane/</guid><description>&lt;nav id="TableOfContents">
 &lt;h4>Table Of Contents&lt;/h4>
 &lt;nav id="TableOfContents">
 &lt;ol>
 &lt;li>&lt;a href="#introduction">Introduction&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#실습환경구성">실습환경구성&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#frrouting-frr">FRRouting (frr)&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#활용사례">활용사례&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#bgp">BGP&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#특징">특징&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#구성요소">구성요소&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#cilium-bgp-control-plane">Cilium BGP Control Plane&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#역할">역할&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#구성">구성&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#custom-resources로-선언적-정책-사용">Custom Resources로 선언적 정책 사용&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#gobgp-통합">GoBGP 통합&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#ecmp">&lt;strong>ECMP&lt;/strong>&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#ebgp-multi-hop-지원">eBGP Multi Hop 지원&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#bgp-graceful-restart-고가용성-지원">BGP Graceful Restart: 고가용성 지원&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#실습-1--bgp-설정-후-통신-확인">실습 1 : BGP 설정 후 통신 확인&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#실습환경-네트워크-확인">실습환경 네트워크 확인&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#bgp-설정-확인">BGP 설정 확인&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#bgp-설정-후-통신확인-통신-문제-있음">BGP 설정 후 통신확인 (통신 문제 있음)&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#통신-문제-해결-후-확인">통신 문제 해결 후 확인&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#실습-2--노드-유지보수">실습 2 : 노드 유지보수&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#disabling-crd-status-report">Disabling CRD Status Report&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#실습-3--service-virtual-ips-loadbalancer-external-ip-를-bgp로-광고">실습 3 : Service Virtual IPs (LoadBalancer, External IP) 를 BGP로 광고&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#loadbalancerip">LoadBalancerIP&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#광고된-lb의-external-ip에-대한-요청의-부하분산은-정상적인가">광고된 LB의 External IP에 대한 요청의 부하분산은 정상적인가?&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#external-traffic-policy와-ecmp-설정">External Traffic Policy와 ECMP 설정&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#external-traffic-policy--local">External Traffic Policy = Local&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#ecmp-hash-policy">ECMP Hash Policy&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#ref">Ref&lt;/a>&lt;/li>
 &lt;/ol>
&lt;/nav>
&lt;/nav>
&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>Kubernetes 클러스터에서 외부 네트워크로 통신을 위한 방법으로 이전 포스팅에서는 1. Native Routing 모드에서 &lt;strong>직접 Static Routing을 추가&lt;/strong>하는 방법과 2. 캡슐화를 통한 &lt;strong>OverLay Network&lt;/strong>를 이용하는 방법에 대해서 알아보았다.&lt;/p></description></item><item><title>Cilium Study Networking ServiceLB Ipam</title><link>https://blog.iamjjanga.com/cilium-study-networking-servicelb-ipam/</link><pubDate>Fri, 08 Aug 2025 00:49:14 +0900</pubDate><guid>https://blog.iamjjanga.com/cilium-study-networking-servicelb-ipam/</guid><description>&lt;nav id="TableOfContents">
 &lt;h4>Table Of Contents&lt;/h4>
 &lt;nav id="TableOfContents">
 &lt;ol>
 &lt;li>&lt;a href="#intro">Intro&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#실습환경">실습환경&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#metallb의-사용사례">MetalLB의 사용사례&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#cilium과-metallb">Cilium과 MetalLB&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#loadbalancer-ip-address-managementlb-ipam">LoadBalancer IP Address Management(LB IPAM)&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#특징">특징&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#구성요소-1-pools">구성요소 1 (Pools)&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#cidrs-ranges-and-reserved-ips">CIDRs, Ranges and Reserved IPs&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#service-selector">Service Selector&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#그외-conflict-disabling-a-pool">그외 Conflict, Disabling a Pool&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#구성요소-2-services">구성요소 2 (Services)&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#loadbalancerclass">LoadBalancerClass&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#requesting-ips">Requesting IPs&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#sharing-keys">Sharing Keys&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#실습-1--클러스터-내부-webpod-서비스를-loadbalancer-type-설정-with-cilium-lb-ipam">실습 1 : (클러스터 내부) webpod 서비스를 LoadBalancer Type 설정 with Cilium LB IPAM&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#cilium-l2-announcement--l2-aware-lb-beta">Cilium L2 Announcement / L2 Aware LB (beta)&lt;/a>
 &lt;ol>
 &lt;li>&lt;a href="#동작방식">동작방식&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#특징과-장점">특징과 장점&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#한계와-주의사항">한계와 주의사항&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#설정-및-확인">설정 및 확인&lt;/a>&lt;/li>
 &lt;li>&lt;a href="#실습-2--클러스터-외부-webpod-서비스를-lb-external-ip로-호출-with-l2-announcement">실습 2 : (클러스터 외부) webpod 서비스를 LB External IP로 호출 with L2 Announcement&lt;/a>&lt;/li>
 &lt;/ol>
 &lt;/li>
 &lt;li>&lt;a href="#reference">Reference&lt;/a>&lt;/li>
 &lt;/ol>
&lt;/nav>
&lt;/nav>
&lt;h1 id="intro">Intro&lt;/h1>
&lt;p>&lt;a href="https://isovalent.com/blog/post/migrating-from-metallb-to-cilium/#load-balancer-ipam">Migrating from MetalLB to Cilium&lt;/a>&lt;/p></description></item></channel></rss>