](https://2.bp.blogspot.com/-qiqHdUwASOU/WApsUZF7fRI/AAAAAAAAAxc/26b1XqOnybwWiqDoFUXW9QOxoG3ub7nDACLcB/s1600/Untitled%2Bdrawing%2B%25284%2529.png)
|Function |Product |
|---|---|
|Infrastructure Services |OpenStack |
|Container Host |CentOS |
|Container Cluster Manager |Kubernetes |
|Container Networking |Project Calico |
|Container Engine |Docker |
|Container Registry |Artifactory |
|Service Registry |etcd|
|Source Code Management |GitHub Enterprise |
|CI tool |Jenkins |
|Infrastructure Provisioning |Terraform |
|Logging |Fluentd, Elasticsearch, Kibana |
|Metrics |Heapster, Influxdb, Grafana |
|Service Monitoring |Prometheus |
We use CentOS for Container Host (OpenStack instances) and install Docker, Kubernetes, Calico, etcd and so on. Of course, it is possible to run various container applications on Kubernetes. In fact, we run OpenStack as one of those applications. That's right, OpenStack on Kubernetes on OpenStack. We currently have more than 30 OpenStack clusters, that quickly become hard to manage and operate. As such, we wanted to create a simple, base OpenStack cluster to provide the basic functionality needed for Kubernetes and make our OpenStack environment easier to manage.
**Kubernetes Architecture**
Let me explain Kubernetes architecture in some more detail. The architecture diagram is below.
[