<p>I'm using docker on a bare metal server. I'm pretty happy with docker-compose to configure and setup applications.</p>

<p>Still some features are missing, like configuration management and monitoring maybe there are other solutions to solve this issues but I'm a bit overwhelmed by the feature set of Kubernetes and can't judge if it would help me here.</p>

<p>I'm also open for recommendations to solve the requirements separately:</p>

<ul>
<li>Configuration / Secret management</li>
<li>Monitoring of my docker hostes applications (e.g. having some kind of dashboard)</li>
<li>Remot container control (SSH is okay with only one Server)</li>
<li>Being ready to scale my environment (based on multiple different Dockerized applications) to more than one server in future - already thinking about networking/service discovery issues with a pure docker-compose setup</li>
</ul>

<p>I'm sure Kubernetes covers some of these features, but I have the feeling that it's too much focused on Cloud platforms where Machines are created on the fly (since I only have at most few bare metal Servers)</p>

<p>I hope the questions scope is not too broad, else please use the comment section and help me to narrow down the question.</p>

<p>Thanks.</p>

<p>I think the Kubernetes is absolutely much your requests and it is what you need.</p>

<p>Let's start one by one.</p>

<blockquote>
  <p>I have the feeling that it's too much focused on Cloud platforms where Machines are created on the fly (since I only have at most few bare metal Servers)</p>
</blockquote>

<p>No, it is not focused on Clouds. Kubernates can be installed almost on any bare-metal platform (include ARM) and have many <a href="https://kubernetes.io/docs/setup/pick-right-solution/#bare-metal" rel="nofollow noreferrer">tools and instructions</a> which can help you to do it. Also, it is easy to deploy it on your local PC using <a href="https://github.com/kubernetes/minikube" rel="nofollow noreferrer">Minikube</a>, which will prepare local cluster for you within VMs or right in your OS (only for Linux).</p>

<blockquote>
  <p>Configuration / Secret management</p>
</blockquote>

<p>Kubernates has a powerful configuration and management based on special objects which can be attached to your containers. You can read more about configuration management in <a href="http://blog.kubernetes.io/2016/04/configuration-management-with-containers.html" rel="nofollow noreferrer">that</a> article.</p>

<p>Moreover, some tools like <a href="https://helm.sh" rel="nofollow noreferrer">Helm</a> can provide you more automation and range of preconfigured applications, which you can install using a single command. And you can prepare your own <a href="https://github.com/kubernetes/helm/blob/master/docs/charts.md" rel="nofollow noreferrer">charts</a> for it.</p>

<blockquote>
  <p>Monitoring of my docker hostes applications (e.g. having some kind of dashboard)</p>
</blockquote>

<p>Kubernetes has its own <a href="https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/" rel="nofollow noreferrer">dashboard</a> where you can get many kinds of information: current applications status, configuration, statistics and many more. Also, Kubernetes has great integration with <a href="https://github.com/kubernetes/heapster" rel="nofollow noreferrer">Heapster</a> which can be used with <a href="https://grafana.com" rel="nofollow noreferrer">Grafana</a> for powerful visualization of almost anything.</p>

<blockquote>
  <p>Remot container control (SSH is okay with only one Server)</p>
</blockquote>

<p>Kubernetes <a href="https://kubernetes.io/docs/reference/kubectl/overview/" rel="nofollow noreferrer">controlling tool</a> <code>kubectl</code> can get logs and connect to containers in the cluster without any problems. As an example, to connect a container "myapp" you just need to call <code>kubectl exec -it myapp sh</code>, and you will get <code>sh</code> session in the container. Also, you can connect to any application inside your cluster using <code>kubectl proxy</code> command, which will forward a port you need to your PC.</p>

<blockquote>
  <p>Being ready to scale my environment (based on multiple different Dockerized applications) to more than one server in future - already thinking about networking/service discovery issues with a pure docker-compose setup</p>
</blockquote>

<p>Kubernetes can be scaled up to thousands of nodes. Or can have only one. It is your choice. Independent of a cluster size, you will get production-grade networking, service discovery and load balancing. </p>

<p>So, do not afraid, just <a href="https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/" rel="nofollow noreferrer">try to use it locally</a> with Minikube. It will make many of operation tasks more simple, not more complex.</p>
