Add sample config file and instructions
This commit is contained in:
32
providers/aws/README.md
Normal file
32
providers/aws/README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# AWS Fargate
|
||||
|
||||
[AWS Fargate](https://aws.amazon.com/fargate/) is a technology for deploying and managing containers
|
||||
without having to manage any of the underlying infrastructure. With AWS Fargate, you no longer have
|
||||
to provision, configure, and scale clusters of virtual machines to run containers. This removes the
|
||||
need to choose server types, decide when to scale your clusters, or optimize cluster packing.
|
||||
|
||||
Fargate makes it easy to scale your applications. You no longer have to worry about provisioning
|
||||
enough compute resources. You can launch tens or tens of thousands of containers in seconds. Fargate
|
||||
lets you focus on designing and building your applications instead of managing the infrastructure
|
||||
that runs them.
|
||||
|
||||
With Fargate, billing is at a per second granularity and you only pay for what you use. You pay for
|
||||
the amount of vCPU and memory resources your containerized application requests. vCPU and memory
|
||||
resources are calculated from the time your container images are pulled until they terminate,
|
||||
rounded up to the nearest second.
|
||||
|
||||
## Fargate virtual-kubelet provider
|
||||
|
||||
Fargate virtual-kubelet provider configures a Fargate cluster in AWS. Fargate resources show as a
|
||||
node in your Kubernetes cluster. Pods scheduled on the Fargate node are deployed as Fargate
|
||||
instances as if Fargate is a standard Kubernetes node.
|
||||
|
||||
## Configuration
|
||||
|
||||
A [sample configuration file](fargate.toml) is available.
|
||||
|
||||
## Usage
|
||||
|
||||
``
|
||||
virtual-kubelet --provider aws --provider-config fargate.toml
|
||||
``
|
||||
39
providers/aws/fargate.toml
Normal file
39
providers/aws/fargate.toml
Normal file
@@ -0,0 +1,39 @@
|
||||
#
|
||||
# Example configuration file for virtual-kubelet AWS Fargate provider.
|
||||
#
|
||||
# Usage:
|
||||
# virtual-kubelet --provider aws --provider-config fargate.toml
|
||||
#
|
||||
|
||||
# AWS region where Fargate resources are provisioned. Mandatory.
|
||||
Region = "us-east-1"
|
||||
|
||||
# Fargate cluster name. Optional. Defaults to "default".
|
||||
# If a cluster with this name does not exist in the region, virtual-kubelet will create it.
|
||||
# Although the same Fargate cluster can be shared by multiple virtual-kubelets,
|
||||
# we recommend to create a dedicated Fargate cluster for each virtual-kubelet.
|
||||
ClusterName = "fargate1"
|
||||
|
||||
# List of subnets that pods are connected to. Mandatory.
|
||||
Subnets = ["subnet-12345678"]
|
||||
|
||||
# List of security groups for pods. Optional.
|
||||
# If omitted, pods inherit their VPC's default security group.
|
||||
SecurityGroups = ["sg-12345678", "sg-87654321"]
|
||||
|
||||
# Whether pod ENIs are assigned a public IPv4 address. Optional. Defaults to false.
|
||||
AssignPublicIPv4Address = false
|
||||
|
||||
# Fargate platform version. Optional. Defaults to "LATEST".
|
||||
# https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html
|
||||
PlatformVersion = "LATEST"
|
||||
|
||||
# Operating system for pods. Optional. Defaults to "Linux".
|
||||
OperatingSystem = "Linux"
|
||||
|
||||
# Fargate capacity advertised by virtual-kubelet. Optional. Defaults to the values below.
|
||||
# Capacity is specified using Kubernetes resource format.
|
||||
# https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
|
||||
CPU = "20"
|
||||
Memory = "40Gi"
|
||||
Pods = "20"
|
||||
41
providers/aws/fargate/region.go
Normal file
41
providers/aws/fargate/region.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package fargate
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Regions is the set of AWS regions where a service is available.
|
||||
// https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/
|
||||
type Regions []string
|
||||
|
||||
var (
|
||||
// FargateRegions are AWS regions where Fargate is available.
|
||||
FargateRegions = Regions{
|
||||
"us-east-1",
|
||||
}
|
||||
)
|
||||
|
||||
// Include returns whether the region set includes the given region.
|
||||
func (r Regions) Include(region string) bool {
|
||||
region = strings.ToLower(region)
|
||||
region = strings.Trim(region, " ")
|
||||
|
||||
for _, name := range r {
|
||||
if name == region {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// Names returns an array of region names.
|
||||
func (r Regions) Names() []string {
|
||||
names := make([]string, 0, len(r))
|
||||
|
||||
for _, name := range r {
|
||||
names = append(names, name)
|
||||
}
|
||||
|
||||
return names
|
||||
}
|
||||
Reference in New Issue
Block a user