Video Tutorial: Bootstrapping a Kubernetes Fleet on AWS


Bootstrapping a Kubernetes Fleet on AWS

Follow these four steps to create and configure a Kubernetes fleet on AWS using Streamtime.


Key Features

  • Automated Cluster Management: Streamtime provisions and manages Kubernetes clusters on AWS.
  • Flexible Tenancy Models: Choose between shared, isolated, or dedicated tenancy for your Kafka clusters.
  • Scalable Throughput: Define your Kafka units based on workload requirements (1 Kafka unit = 20 MBps).
  • Region and Placement Options: Deploy in your preferred AWS region with optional placement metadata for compliance or latency optimization.
  • Advanced Configuration: Customize VPC, instance types, and other AWS-specific settings to fit your infrastructure needs.

1. Select AWS as Bootstrap Provider

  • In the Streamtime UI, click “Create Kubernetes Fleet”.
  • Choose AWS as your bootstrap provider.

AWS Bootstrap Provider


2. Configure Tenancy & Sizing

  • Select the tenancy model: shared, isolated, or dedicated.
  • Set your base domain, maximum tenancy (number of Kafka clusters per fleet), and maximum Kafka units (throughput capacity).
  • Choose the appropriate node size for your workload (e.g., 1 Kafka unit = 20 MBps, recommended node: 4 vCPU / 16 GB RAM).

AWS Tenancy & Sizing


3. Placement Configuration

  • Select the AWS region where you want to deploy your Kubernetes fleet.
  • Optionally, specify placement metadata for compliance or latency optimization.

AWS Placement


4. Advanced Configuration

  • Select an existing VPC ID or create a new VPC.
  • Choose the instance type for your nodes.
  • Configure any additional AWS-specific settings as needed.

AWS Advanced Config


Deploy and Validate

  • Click Deploy. Streamtime will provision and configure the Kubernetes fleet on AWS.
  • Once deployed, the fleet status will show as “Healthy” and is ready for Kafka cluster deployments.

Kubernetes Fleet List


API Reference

Create a Kubernetes Fleet on AWS

curl -X POST https://<streamtime-api-endpoint>/organizations/<your-org-id>/infrastructure/ \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "identifier": "narrow-impala",
    "infra_type": "aws",
    "domain": "<your-domain>.com",
    "max_tenants": 3,
    "max_kafka_units": 12,
    "tenancy_mode": "Shared",
    "advanced_config": {
        "vpc_id": "vpc-05ab2abs23359a6e",
        "instance_type": "t3.large",
        "cluster_public": false
    },
    "placement_config": {
        "account": "plf-fleet-manager",
        "region": "us-east-1"
    },
    "organization": "<your-org-id>"
   }' 

Response:

{
    "id": "78d2d356-3898-4c3c-ac26-e5c9b0b595bf",
    "organization": "acme",
    "domain": "<your-domain>.com",
    "identifier": "narrow-impala",
    "provisioner_name": null,
    "destroyer_name": null,
    "infra_type": "aws",
    "tenancy_mode": "Shared",
    "max_tenants": 3,
    "max_kafka_units": 12,
    "kubeconfig": null,
    "kubeconfig_str": null,
    "metadata": {},
    "prometheus_endpoint": null,
    "opencost_endpoint": null,
    "loki_endpoint": null,
    "loadbalancer_dns": null,
    "placement_config": {
        "account": "plf-fleet-manager",
        "region": "us-east-1"
    },
    "advanced_config": {
        "vpc_id": "vpc-05ab2abs23359a6e",
        "instance_type": "t3.large",
        "cluster_public": false
    },
    "advanced_properties": {},
    "status": "Pending",
    "created_at": "2025-07-17T04:31:32.844883Z",
    "updated_at": "2025-07-17T04:31:32.844911Z",
    "network": null
}