<p>I'm new on kubernetes. so might be noob question.</p>

<p>I'm wondering is it safe to run kubernetes cluster over internet (connect master &lt;-> node with public ip).</p>

<p>Is it safe enough for production also? If it is, It is possible to create servers on different vendor (like AWS) and make it work as a node?</p>

<p>Many thanks.</p>

Yechan Kim
<p>There might be general disagreement that running this over public is unsafe but here are some pointers :</p>

<ul>
<li>Statement that <strong>any pods that open ports are by default public</strong> is basically wrong. every pod has it's own network namespace, thus even though it listens on <code>0.0.0.0</code> to capture any traffic, this happens solely inside that native namespace thus by no means that is it exposed outwardly. Until you configure kubernetes service of NodePort or LoadBalancer sort to expressly expose this service (and it's backing pods ports) to the net. And you'll management this even a lot of by means that of Network Policies.</li>
<li>The traffic between pods in usual kubernetes setup passes via an overlay network like ie. flannel, calico or weave. Weave Net, support traffic ciphering explicitly to make it safer for the overlay to communicate over public network.</li>
<li>It is absolutely fine to expose master on the public internet, as you would do with any other server. It is by design protected with authentication/cipher. Clearly a regular sec hardening should be in place, but that is a case for any internet facing system. Your masters will also run things like scheduler and controller-manager, all locally, so not really an issue.</li>
<li>You should also set proper firewall rules on every node to differentiate between internal and public traffic</li>
</ul>

<p>I think so you can run it over public network in a safe way .</p>

<p>Hope this helps you !</p>
