<p>As of now we can create NLb from K8s with this annotation <strong><em>"service.beta.kubernetes.io/aws-load-balancer-type: "nlb"</em></strong>. It will take take available Public IP in the subnet. </p>

<p>So is it possible to change the SubnetMapping with the Elastic IP from AWS CLI once NLB is created? If yes can anyone give an example.</p>

<p>I tried to update the Subnet mapping on NLB which was created by K8s using service annotation. </p>

<p>aws elbv2 set-subnets --load-balancer-arn  arnValue --subnet-mappings SubnetId=abcd,AllocationId=eipalloc-1 --region us-east-1</p>

<p>Output was
SetSubnets is not supported for load balancers of type 'network'</p>

<p>Elastic IP can be attached or changed only while creating the Network Load Balancer. Secondly, ´set-subnets´ works only for Application Load Balancer.</p>

<p>You will need to recreate this Network Load Balancer to achieve your goal. 
Hope this helps. </p>

<p>Please refer- 
<a href="https://forums.aws.amazon.com/thread.jspa?threadID=263577" rel="nofollow noreferrer">https://forums.aws.amazon.com/thread.jspa?threadID=263577</a>
<a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_SetSubnets.html" rel="nofollow noreferrer">https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_SetSubnets.html</a></p>
