The Kubernetes worker has been proven to be effective on a variety of installations. But some configurations are more complex than others!
There’s three factors which affect the likelihood of success:
- Kubernetes distribution/Manged Service (eg AKS, EKS, GKE …)
- Storage provider type (i.e. the filesystem shared between worker and pods)
- The Operating System of the Kubernetes nodes
When trying to determine the best combination of these for your situation, it may be simplest to start small and iterate.
The following table defines known good configurations, though there are many other configurations which are likely to produce a valid system.
Distribution / Managed Servicer | Storage Solution: | Approach |
---|---|---|
Minikube | NFS | No additional configuration required - recommended for local or edge usage |
MicroK8s | NFS | No additional configuration required - recommended for local or edge usage |
Kind | NFS | No additional configuration required - recommended for local or edge usage |
AKS | NFS | No additional configuration required |
Azure Files | No additional configuration required | |
GKE | NFS | No additional configuration required |
EKS | NFS | No additional configuration required |
EFS | Requires Octopus Server 2024.3+ | |
RKE2 | Longhorn | Requires pre-configured storage - email support@octopus.com |
OpenShift | NFS | Requires specific configuration - email support@octopus.com |
Any Storage class which supports being mounted in ReadWriteMany mode is likely to satisfy the Kubernetes worker’s storage requirements.
The Kubernetes worker is compatible with most Ubuntu-based nodes and also those running Amazon Linux.
The NFS Storage solution cannot be used with BottleRocket nodes as selinux enforcement prevents NFS container execution.
The Kubernetes worker is not compatible with Windows nodes, and currently unable to create script-pods based on Windows images.
Local development and Proof Of Concept
There are a variety of Kubernetes distributions which can be used locally to support exploratory testing. The following distributions were used extensively during the Kubernetes worker development:
These have all been proven to work well with the default NFS storage solution and require no advanced setup.
Such a setup is unsuitable for production deployments, but will get a Kubernetes worker running quickly so you can see how it works, and determine how you may make the most of it.
Production Systems
The Kubernetes worker installs and works with the cloud-based Kubernetes services offered by Azure (AKS), Aws (EKS) and Google (GKE). The NFS storage solution works well in these environments, though other storage solutions become available eg Azure Files which may offers greater durability by moving storage out of the cluster.
Help us continuously improve
Please let us know if you have any feedback about this page.
Page updated on Thursday, August 22, 2024