All Projects → keikoproj → Instance Manager

keikoproj / Instance Manager

Licence: apache-2.0
Create and manage instance groups with Kubernetes

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Instance Manager

Community
AWS Controllers for Kubernetes (ACK) is a project enabling you to manage AWS services from Kubernetes
Stars: ✭ 1,390 (+1363.16%)
Mutual labels:  aws, kubernetes-controller
Kube Aws Autoscaler
Simple, elastic Kubernetes cluster autoscaler for AWS Auto Scaling Groups
Stars: ✭ 94 (-1.05%)
Mutual labels:  aws, kubernetes-cluster
Kubespray
Deploy a Production Ready Kubernetes Cluster
Stars: ✭ 11,588 (+12097.89%)
Mutual labels:  aws, kubernetes-cluster
Kubernetes Reflector
Custom Kubernetes controller that can be used to replicate secrets, configmaps and certificates.
Stars: ✭ 129 (+35.79%)
Mutual labels:  kubernetes-cluster, kubernetes-controller
Geodesic
🚀 Geodesic is a DevOps Linux Distro. We use it as a cloud automation shell. It's the fastest way to get up and running with a rock solid Open Source toolchain. ★ this repo! https://slack.cloudposse.com/
Stars: ✭ 629 (+562.11%)
Mutual labels:  aws, kubernetes-cluster
Awesome Kubernetes
A curated list for awesome kubernetes sources 🚢🎉
Stars: ✭ 12,306 (+12853.68%)
Mutual labels:  aws, kubernetes-cluster
Ops Cli
Ops - cli wrapper for Terraform, Ansible, Helmfile and SSH for cloud automation
Stars: ✭ 152 (+60%)
Mutual labels:  aws, kubernetes-cluster
active-monitor
Provides deep monitoring and self-healing of Kubernetes clusters
Stars: ✭ 135 (+42.11%)
Mutual labels:  kubernetes-cluster, kubernetes-controller
Kubernetes On Aws
Deploying Kubernetes on AWS with CloudFormation and Ubuntu
Stars: ✭ 517 (+444.21%)
Mutual labels:  aws, kubernetes-cluster
Kubenow
Deploy Kubernetes. Now!
Stars: ✭ 285 (+200%)
Mutual labels:  aws, kubernetes-cluster
Kube Aws
[EOL] A command-line tool to declaratively manage Kubernetes clusters on AWS
Stars: ✭ 1,146 (+1106.32%)
Mutual labels:  aws, kubernetes-cluster
Karch
A Terraform module to create and maintain Kubernetes clusters on AWS easily, relying entirely on kops
Stars: ✭ 38 (-60%)
Mutual labels:  aws, kubernetes-cluster
Governor
A collection of cluster reliability tools for Kubernetes
Stars: ✭ 71 (-25.26%)
Mutual labels:  aws, kubernetes-cluster
Aws Sdk Arduino
An experimental SDK for working with AWS Services on Arduino-compatible devices. Currently has support for DynamoDB and Kinesis.
Stars: ✭ 90 (-5.26%)
Mutual labels:  aws
Rpcheckup
rpCheckup is an AWS resource policy security checkup tool that identifies public, external account access, intra-org account access, and private resources.
Stars: ✭ 91 (-4.21%)
Mutual labels:  aws
Black.box
Plug-and-Play VPN router and unblocker
Stars: ✭ 89 (-6.32%)
Mutual labels:  aws
Cloudquery
cloudquery transforms your cloud infrastructure into SQL or Graph database for easy monitoring, governance and security.
Stars: ✭ 1,300 (+1268.42%)
Mutual labels:  aws
S3scanner
Scan for open AWS S3 buckets and dump the contents
Stars: ✭ 1,319 (+1288.42%)
Mutual labels:  aws
Aws Lambda Vpc Nat Examples
Example of setting up AWS lambda function with VPC and NAT
Stars: ✭ 92 (-3.16%)
Mutual labels:  aws
Image Quality Assessment
Convolutional Neural Networks to predict the aesthetic and technical quality of images.
Stars: ✭ 1,300 (+1268.42%)
Mutual labels:  aws

instance-manager

functional-test push codecov Go Report Card slack version

Create and manage instance groups with Kubernetes.

instance-manager simplifies the creation of worker nodes from within a Kubernetes cluster and creates InstanceGroup objects in your cluster. Additionally, instance-manager will provision the actual machines and bootstrap them to the cluster.

instance-manager

Worker nodes in Kubernetes clusters work best if provisioned and managed using a logical grouping. Kops introduced the term “InstanceGroup” for this logical grouping. In AWS, an InstanceGroup maps to an AutoScalingGroup.

Given a particular cluster, there should be a way to create, read, upgrade and delete worker nodes from within the cluster itself. This enables use-cases where worker nodes can be created in response to Kubernetes events, InstanceGroups can be automatically assigned to namespaces for multi-tenancy, etc.

instance-manager provides this Kubernetes native mechanism for CRUD operations on worker nodes.

Installation

You must first have atleast one instance group that was manually created, in order to host the instance-manager pod.

For installation instructions and more examples of usage, please refer to the Installation Reference Walkthrough.

Usage example

Demo

$ kubectl create -f instance_group.yaml
instancegroup.instancemgr.keikoproj.io/hello-world created

$ kubectl get instancegroups
NAMESPACE          NAME         STATE                MIN   MAX  GROUP NAME    PROVISIONER   STRATEGY   LIFECYCLE   AGE
instance-manager   hello-world  ReconcileModifying   3     6    hello-world   eks           crd        normal      1m

some time later, once the scaling groups are created

$ kubectl get instancegroups
NAMESPACE          NAME         STATE   MIN   MAX  GROUP NAME    PROVISIONER   STRATEGY   LIFECYCLE   AGE
instance-manager   hello-world  Ready   3     6    hello-world   eks           crd        normal      7m

At this point the new nodes should be joined as well

$ kubectl get nodes
NAME                                        STATUS   ROLES         AGE    VERSION
ip-10-10-10-10.us-west-2.compute.internal   Ready    system        2h     v1.14.6-eks-5047ed
ip-10-10-10-20.us-west-2.compute.internal   Ready    hello-world   32s    v1.14.6-eks-5047ed
ip-10-10-10-30.us-west-2.compute.internal   Ready    hello-world   32s    v1.14.6-eks-5047ed
ip-10-10-10-40.us-west-2.compute.internal   Ready    hello-world   32s    v1.14.6-eks-5047ed

Provisioners

Provisioner Description Documentation API Reference Maturity
eks provision nodes on EKS Documentation API Reference Production
eks-managed provision managed node groups on EKS Documentation Experimental
eks-fargate provision a cluster to run pods on EKS Fargate Documentation Experimental

To create an instance group, submit an InstanceGroup custom resource in your cluster, and the controller will provision and bootstrap it to your cluster, and allow you to modify it from within the cluster.

Alpha-2 Version

Please consider that this project is in alpha stages and breaking API changes may happen, we will do our best to not break backwards compatiblity without a deprecation period going further.

The previous eks-cf provisioner have been discontinued in favor of the Alpha-2 eks provisioner, which does not use cloudformation as a mechanism to provision the required resources.

In order to migrate instance-groups from versions <0.5.0, delete all instance groups, update the custom resource definition RBAC, and controller IAM role, and deploy new instance-groups with the new provisioner.

Contributing

Please see CONTRIBUTING.md.

Developer Guide

Please see DEVELOPER.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].