Typhoon v1.19.4 adds experimental support for Fedora CoreOS ARM64 on AWS, with either full-cluster or mixed-arch clusters. These clusters allow container workloads supporting arm64
to leverage AWS Graviton2 processors for both performance and cost-savings.
Currently, only the flannel
CNI provider and a few regions (us-east-1
, us-east-2
, us-west-1
) are available.
Define a cluster with ARM64 controller and worker nodes (i.e. full-cluster).
module "gravitas" {
source = "git::https://github.com/poseidon/typhoon//aws/fedora-coreos/kubernetes?ref=v1.19.4"
# AWS
cluster_name = "gravitas"
dns_zone = "aws.example.com"
dns_zone_id = "Z3PAABBCFAKEC0"
# configuration
ssh_authorized_key = "ssh-rsa AAAAB3Nz..."
# optional
arch = "arm64"
networking = "flannel"
worker_count = 2
controller_type = "t4g.small"
worker_type = "t4g.small"
}
Alternately, create a hybrid / mixed architecture cluster by defining a typical (Intel, AMD64) cluster, then defining an ARM64 worker pool of nodes (likely with taints).
module "gravitas" {
source = "git::https://github.com/poseidon/typhoon//aws/fedora-coreos/kubernetes?ref=v1.19.4"
# AWS
cluster_name = "gravitas"
dns_zone = "aws.example.com"
dns_zone_id = "Z3PAABBCFAKEC0"
# configuration
ssh_authorized_key = "ssh-rsa AAAAB3Nz..."
# optional
networking = "flannel"
worker_count = 2
worker_price = "0.021"
daemonset_tolerations = ["arch"] # important
}
module "gravitas-arm64" {
source = "git::https://github.com/poseidon/typhoon//aws/fedora-coreos/kubernetes/workers?ref=v1.19.4"
# AWS
vpc_id = module.gravitas.vpc_id
subnet_ids = module.gravitas.subnet_ids
security_groups = module.gravitas.worker_security_groups
# configuration
name = "gravitas-arm64"
kubeconfig = module.gravitas.kubeconfig
ssh_authorized_key = var.ssh_authorized_key
# optional
arch = "arm64"
instance_type = "t4g.small"
spot_price = "0.0168"
node_taints = ["arch=arm64:NoSchedule"]
}
See the Typhoon docs for details.