Remote Kubernetes Runtime¶
Threeport supports the management of Kubernetes clusters as remote runtimes. This pattern may be used to run workloads on separate Kubernetes clusters from the one that the Threeport API is deployed to.
Prerequisites¶
An instance of the Threeport is required to get started. You can install a Local Threeport instance and use it to create a remote Kubernetes runtime.
Note that AWS EKS clusters are currently the only supported type of remote Kubernetes runtime.
AWS Account Setup¶
First, create a work space on your local file system:
1 2 |
|
To get started, a valid AwsAccount
object must be created. Use the Basic AWS Setup guide for instructions.
Deployment¶
Kubernetes clusters are represented as KubernetesRuntime
objects in the Threeport API.
Use the following command to download a sample Kubernetes Runtime config:
1 |
|
If you open the file it will look as follows:
1 2 3 4 5 6 7 |
|
The Name
field is an arbitrary name for the user to assign.
The InfraProvider
indicates we will use AWS EKS to spin up the Kubernetes
cluster.
The InfraProviderAccountName
references the name of the AWS account we
created above.
The HighAvailability
field determines the number of availability zones (AZs) the
cluster will be installed across. When false
it will installed across two AZs.
The Location
field tells Threeport where to install the Kubernetes cluster.
NorthAmerica:NewYork
is a Threeport abstraction that allows users to reference
a common set of locations, regardless of provider. For AWS, this translates to
the us-east-1
region. When other cloud providers are supported, it will
reference the appropriate region for the cloud provider being used. For now,
you can reference the Threeport source
code
to see which locations map to which regions in AWS.
The DefaultRuntime
field indicates that, when deploying workloads, if a
Kubernetes Runtime is not specified, it will use this one by default.
Create a KubernetesRuntime
instance:
1 |
|
View the status of the deployed Kubernetes runtime instance:
1 |
|
Note: if you would like to use kubectl against the cluster where Threeport is running and you have the AWS CLI installed you can update your kubeconfig with:
1 |
|
Cleanup¶
Run the following command to delete the remote Kubernetes runtime instance:
1 |
|
Clean up the downloaded config files:
1 2 |
|