This is part of our commercial offering.
Overview
This guide is for Polyaxon Enterprise Edition Control Plane Setup for Kubernetes.
In order to deploy Polyaxon Enterprise Control Plane to manage agent (compute cluster) deployments, you need to set some extra configuration.
Set the EE License
Running Polyaxon Enterprise Control Plane requires a valid license.
As part of the sign-up process for Polyaxon EE, you should have received a license file. If you do not have one, please contact us. Save the license file temporarily to disk with filename license (no file extension) and execute the following:
kubectl create secret generic polyaxon-enterprise-license --from-file=./license -n polyaxonConfigure Polyaxon Enterprise Docker registry access
Set up Docker credentials to allow Kubernetes nodes to pull down the Polyaxon Enterprise Docker images, which are hosted in a private repository. You receive credentials for the Polyaxon Enterprise Docker image when you sign up for Polyaxon Enterprise.
kubectl create secret -n polyaxon docker-registry polyaxon-docker-enterprise-k8s \
--docker-server=<polyaxon-docker-enterprise-k8s-server> \
--docker-username=<your-username> \
--docker-password=<your-api-key>Add your organization key
api:
organizationKey: ...Use Polyaxon Enterprise Docker images
You need to set your configuration file to use Polyaxon Enterprise Docker images.
api:
image: ...
scheduler:
image: ...
compiler:
image: ...
worker:
image: ...
beat:
image: ...Disable the default agent services
Since some services will be managed by Polyaxon Agents on each cluster/namespace you don't need the default agent deployed:
agent:
enabled: false
operator:
enabled: falseEnable the scheduler
Polyaxon control plane requires the scheduler to be running. e.g. using redis:
broker: redis
redis:
enabled: true
scheduler:
enabled: trueNote: You can have more control about the broker, please check this guide.
Enable extra services
Some services are only available to Polyaxon control plane:
compiler:
enabled: true
worker:
enabled: true
beat:
enabled: trueConnections
Remove all configuration related to connections, each agent will be managing its own connections and artifacts store.
artifactsStore: {}
connections: []Rate limits
The API limits how many requests each user can send, per scope. Organization and agent tokens are counted per token, and anonymous requests per IP.
To change a limit, set its scope under gateway.throttle.rates. Scopes you don't set keep their defaults:
gateway:
throttle:
rates:
run: 600
user: 480| Scope | Default | Unit | Requests |
|---|---|---|---|
user | 240 | per minute | API endpoints without a more specific scope |
run | 300 | per minute | Run detail and run actions, such as stop, restart and archive |
run_status | 120 | per minute | Run statuses |
run_lineage | 120 | per minute | Run artifacts lineage |
impersonate | 500 | per minute | Run impersonation tokens |
agent | 500 | per minute | Agent sync, reconcile, status and state |
auth | 20 | per second | Authentication checks for proxied requests |
anon | 20 | per minute | Unauthenticated requests |
checks | 10 | per minute | Health and status checks |
Values are numbers of requests, and a scope's unit can't be changed. Without the shared cache, each API worker counts requests separately, so the effective limit is the value times the number of workers and replicas.
Changing a value updates the platform config and restarts the API pods.
Requires Polyaxon v2.20 or later.