Manual installation on LKE
Consider using the automatic installation on LKE method to quickly deploy the Akamai App Platform on LKE. If your needs require custom DNS or additional configuration options, follow the instructions below to install the App Platform manually.
In addition to installing the Akamai App Platform automatically on LKE through a few simple clicks, you can also manually install the App Platform on LKE. Performing a manual installation allows you to use a custom domain and tweak additional settings.
Provision an LKE cluster
First, create a new LKE cluster using Cloud Manager, the Linode API, or the Linode CLI. This deploys a new Kubernetes cluster on Akamai Cloud, which will be used as the underpinning infrastructure for your App Platform deployment. The new cluster should have the following specifications:
- Kubernetes version: v1.31 or v1.32
- HA control plane: enabled
- Minimum node pool configuration: 3 worker nodes with a Dedicated 8 GB plan or higher
For instructions on provisioning new LKE clusters in the Cloud Manger, review Create a cluster. To quickly provision a cluster using the Linode CLI, run the following command in your terminal (assuming the Linode CLI is installed):
linode-cli lke cluster-create \
--label $CLUSTER_NAME \
--region $REGION \
--k8s_version 1.32 \
--control_plane.high_availability true \
--node_pools.type g6-dedicated-8 \
--node_pools.count 3
Configure kubectl
The kubectl utility is used to interact with your LKE cluster from the command line. To configure kubectl to work with your cluster, review Manage a cluster with kubectl. Abbreviated instructions are included below:
- Download the kubeconfig file through the Cloud Manager or Linode CLI. The Linode CLI command is below. Replace
$CLUSTER_NAME
with the label of your new cluster.linode-cli get-kubeconfig --label $CLUSTER_NAME
- Update the KUBECONFIG environment variable. Again, replace
$CLUSTER_NAME
with the label of your new cluster.export KUBECONFIG=<path-to-downloads>/$CLUSTER_NAME-kubeconfig.yaml
- If you have multiple kubeconfig files, you'll also want to adjust the current kubectl context to use this new cluster. Replace
<cluster_id>
with the ID of your new cluster.kubectl config use-context lke\<cluster_id>-ctx
Configure DNS
If you want to learn about how to use Linode DNS Manager read the following tutorial: Get started with DNS Manager.
When you create a domain in Linode, make sure to set the TTL of the SOA Record to 30 seconds:
-
Click on your domain.
-
Click on the tree dots on the right of the SOA Record and click
edit
. -
Change the default TTL to
30 seconds
. -
Click
Save
.
Creating a personal access token
Create a new Personal Access Token with Read/Write access for Domains:
-
Go to your profile on the top right.
-
Click on
API Tokens
. -
Click on
Create A Personal Access Token
. -
Add a
Label
. -
Select the desired
Expiry
. -
Select
No Access
for all. -
Select
Read/Write
forDomains
. -
Click
Create Token
. -
Copy your Personal Access Token.
-
Set environment variable for the token:
LINODE_TOKEN="<your-personal-access-token>"
Create the values.yaml file
tee values.yaml<<EOF
cluster:
name: $CLUSTER_NAME
provider: linode
domainSuffix: <your-domain>
otomi:
hasExternalDNS: true
dns:
domainFilters:
- <your-domain>
provider:
linode:
apiToken: $LINODE_TOKEN
apps:
cert-manager:
issuer: letsencrypt
stage: production
email: admin@<your-domain>
EOF
Adjust the domainSuffix
, domainFilters
and email
!
You can also use a different DNS provider. See DNS setup for examples on how to use Akamai EdgeDNS, AWS Route53, Cloudflare DNS and many others.
Install the Akamai App Platform using Helm
Install using Helm:
helm repo add apl https://linode.github.io/apl-core
helm repo update
helm install -f values.yaml apl apl/apl
Monitor the logs of the installer job:
kubectl logs jobs/apl -n default -f
When the installer is finished, copy the url
and admin-password
from the console output.
Follow the post installation steps here.
To learn how to use the Akamai App Platform, go through the Get Started labs.
Known issues
During install Pods get stuck in a Pending state
During the installation, multiple StatefullSets
are created that require a PersistentVolumeClaim
(PVC). Each PVC is attached to a Volume
in Linode. Volumes count towards the account limits. If you see Pods in a Pending
state, it might be that your're hitting the account limit.
What to do:
-
Delete unused resources in your account (like unused Volumes).
-
Create a support ticket and request to increase your account limit.
Updated 3 days ago