<p>I've created kubernetes cluster using kops</p>

<pre><code>kops create cluster \
    --dns-zone=vpc.abc.in \
    --master-zones=ap-southeast-1a,ap-southeast-1b,ap-southeast-1c \
    --zones=ap-southeast-1a,ap-southeast-1b,ap-southeast-1c \
    --node-count 3 \
    --topology private \
    --networking flannel-vxlan \
    --node-size=t2.medium \
    --master-size=t2.micro \
    ${NAME}
</code></pre>

<p>I'm using private topology and internal loadbalancer.</p>

<p>Whenever I create service of type=LoadBalancer it creates a public facing ELB and url is accessible publically.</p>

<p>I want to deploy Elastic Search and kibana and make it available only inside VPN. We already have VPN setup.</p>

<p>How to make service accessible within the VPN?</p>

prranay
<p>Add the following annotation to your service definition:</p>

<pre><code>service.beta.kubernetes.io/aws-load-balancer-internal: '"true"'
</code></pre>

<p>Full example:</p>

<pre><code>kind: Service
apiVersion: v1
metadata:
  name: my-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: '"true"'
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
  type: LoadBalancer
</code></pre>

<p>This will provision an internal ELB rather than external.</p>
