Kubernetes (R) has become the Container orchestration platform of choice–but launching and configuring a Production grade Kubernetes Cluster is a lot of work. Conducktor-Go simplifies launching native Kubernetes Clusters on AWS (R) using Terraform (TM), Ansible (R), and Python Scripts. It also provides a rich, turn-key telemetry solution with pre-configured Grafana(R) dashboards and Prometheus(R) as data source.
Conducktor-GO also configures Nginx(R), Docker(R) CE, Weave Net (CNI), Kube2IAM, Kubernetes 2.0 Dashboard, Kube-State-Metrics, and Metrics Server to provide a Production ready Kubernetes Cluster to deploy your services. Conducktor-Go offers flexibility to launch K8s clusters in any AWS VPC, and use any AMIs with CentOS v7.6 or higher (not yet tested with Debian).
The automation script will configure below components along with K8s API Server and ETCD.
VMs and ELBs are launched using Terraform on AWS to deploy Kubernetes and other core components.
Nginx is used as Ingress in Conducktor-GO. This can, however, be substituted with the ingress of your choice by deploying separately.
Latest Kubernetes Dashboard 2.0 is configured in the cluster.
Grafana with pre-built dashboards, Prometheus, Kube-State-Metrics and Metric server are deployed in the newly launched cluster.
The K8s Cluster is deployed across 3 AZs to support High Availability (HA) mode in both Control Plane and Worker Nodes. Please provide VPC ID and subnets to launch the cluster.
Kube2IAM is used for Pods to securely access AWS Managed services.
Weave Net is used for CNI to connect the docker containers hosted on the worker nodes.
Docker CE for Container Runtime in Kubernetes Cluster will be configured on all the nodes.
A Linux/Unix host
AWS IAM Roles (more details in GitHub)
The script will not create VPC in AWS to launch the cluster.
We assume VPC and Subnets (accross 3 AZ), NATGateway are already available. Our current use case at T-Mobile is to launch with existing pre-configure VPC and to use very minimal IAM roles for security reasons.
More details on these will be shared soon. Contributions are welcome!
Conducktor-GO is open-sourced under the terms of the Apache 2.0 license and is released AS-IS WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND pursuant to Section 7 of the Apache 2.0 license. Please check more on Conducktor-Go @ GitHub