From 29554ddda1bfbe347879e292543891b8fa5df647 Mon Sep 17 00:00:00 2001 From: Julien Dan Date: Tue, 21 Jan 2025 16:11:24 +0100 Subject: [PATCH 1/3] add karpenter node affinity tips --- .../clusters/aws-with-karpenter.md | 24 ++++++++++++++++++- .../clusters/aws-with-karpenter.md.erb | 24 ++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md index 3a92f0f07b..85c97068ef 100644 --- a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md +++ b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md @@ -1,5 +1,5 @@ --- -last_modified_on: "2024-11-27" +last_modified_on: "2025-01-21" title: "AWS EKS with Karpenter" description: "Learn how to configure your AWS Kubernetes clusters with Karpenter on Qovery" --- @@ -309,6 +309,28 @@ The `Features` tab in your cluster settings allows you to check if the [**Static The `Network` tab in your cluster settings allows you to update your Qovery VPC route table so that you can perform VPC peering. For step-by-step guidelines on how to set up VPC peering, [see our dedicated tutorial](https://hub.qovery.com/guides/tutorial/aws-vpc-peering-with-qovery/). +### Assigning Specific Instances to Services + +#### Specify on-demand instance at service level + +When using spot instances in your cluster, you may want to ensure that certain critical services, such as databases or essential applications, are always deployed on on-demand instances. + +To specify that a service should be deployed on an `on-demand` instance, manually set the `deployment.affinity.node.required` advanced setting to: + +```json +{"karpenter.sh/capacity-type":"on-demand"} +``` + +#### Specify a specific instance type at service level + +In some cases, you may need to ensure that a specific service runs on a particular instance type to meet performance, compliance, or cost requirements. + +For example, to assign a service to the t3a.xlarge instance type, manually set the `deployment.affinity.node.required` advanced setting to: + +```json +{"node.kubernetes.io/instance-type": "t3a.xlarge"} +``` + [docs.getting-started.install-qovery.aws.cluster-managed-by-qovery.quickstart#attach-aws-credentials]: /docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/quickstart/#attach-aws-credentials [docs.using-qovery.configuration.clusters#logs]: /docs/using-qovery/configuration/clusters/#logs diff --git a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb index a58f6689df..5c92e3c86a 100644 --- a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb +++ b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb @@ -304,4 +304,26 @@ The `Features` tab in your cluster settings allows you to check if the [**Static #### Network -The `Network` tab in your cluster settings allows you to update your Qovery VPC route table so that you can perform VPC peering. For step-by-step guidelines on how to set up VPC peering, [see our dedicated tutorial](https://hub.qovery.com/guides/tutorial/aws-vpc-peering-with-qovery/). \ No newline at end of file +The `Network` tab in your cluster settings allows you to update your Qovery VPC route table so that you can perform VPC peering. For step-by-step guidelines on how to set up VPC peering, [see our dedicated tutorial](https://hub.qovery.com/guides/tutorial/aws-vpc-peering-with-qovery/). + +### Assigning Specific Instances to Services + +#### Specify on-demand instance at service level + +When using spot instances in your cluster, you may want to ensure that certain critical services, such as databases or essential applications, are always deployed on on-demand instances. + +To specify that a service should be deployed on an `on-demand` instance, manually set the `deployment.affinity.node.required` advanced setting to: + +```json +{"karpenter.sh/capacity-type":"on-demand"} +``` + +#### Specify a specific instance type at service level + +In some cases, you may need to ensure that a specific service runs on a particular instance type to meet performance, compliance, or cost requirements. + +For example, to assign a service to the t3a.xlarge instance type, manually set the `deployment.affinity.node.required` advanced setting to: + +```json +{"node.kubernetes.io/instance-type": "t3a.xlarge"} +``` \ No newline at end of file From b09a93789bfb10762aafd2c5f5e2844d8e312849 Mon Sep 17 00:00:00 2001 From: Julien Dan Date: Wed, 22 Jan 2025 14:13:49 +0100 Subject: [PATCH 2/3] add note relative to instance-type --- .../configuration/clusters/aws-with-karpenter.md | 6 +++++- .../configuration/clusters/aws-with-karpenter.md.erb | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md index 85c97068ef..8861eb752e 100644 --- a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md +++ b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md @@ -1,5 +1,5 @@ --- -last_modified_on: "2025-01-21" +last_modified_on: "2025-01-22" title: "AWS EKS with Karpenter" description: "Learn how to configure your AWS Kubernetes clusters with Karpenter on Qovery" --- @@ -331,6 +331,10 @@ For example, to assign a service to the t3a.xlarge instance type, manually set t {"node.kubernetes.io/instance-type": "t3a.xlarge"} ``` + +The specified instance type must be included in the list of instance types defined in the NodePool configuration. + + [docs.getting-started.install-qovery.aws.cluster-managed-by-qovery.quickstart#attach-aws-credentials]: /docs/getting-started/install-qovery/aws/cluster-managed-by-qovery/quickstart/#attach-aws-credentials [docs.using-qovery.configuration.clusters#logs]: /docs/using-qovery/configuration/clusters/#logs diff --git a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb index 5c92e3c86a..425b647833 100644 --- a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb +++ b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb @@ -326,4 +326,8 @@ For example, to assign a service to the t3a.xlarge instance type, manually set t ```json {"node.kubernetes.io/instance-type": "t3a.xlarge"} -``` \ No newline at end of file +``` + + +The specified instance type must be included in the list of instance types defined in the NodePool configuration. + \ No newline at end of file From 1dfa2b75966d7d86225dc9cfbfc71ac29976d873 Mon Sep 17 00:00:00 2001 From: Julien Dan Date: Wed, 22 Jan 2025 15:31:07 +0100 Subject: [PATCH 3/3] add note relative to instance-type --- .../configuration/clusters/aws-with-karpenter.md | 11 +++++++---- .../configuration/clusters/aws-with-karpenter.md.erb | 10 ++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md index 8861eb752e..0c45c50ed8 100644 --- a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md +++ b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md @@ -309,9 +309,9 @@ The `Features` tab in your cluster settings allows you to check if the [**Static The `Network` tab in your cluster settings allows you to update your Qovery VPC route table so that you can perform VPC peering. For step-by-step guidelines on how to set up VPC peering, [see our dedicated tutorial](https://hub.qovery.com/guides/tutorial/aws-vpc-peering-with-qovery/). -### Assigning Specific Instances to Services +### Defining cluster node constraints to run your Services -#### Specify on-demand instance at service level +#### Define if your service can run on a on-demand instance When using spot instances in your cluster, you may want to ensure that certain critical services, such as databases or essential applications, are always deployed on on-demand instances. @@ -321,7 +321,7 @@ To specify that a service should be deployed on an `on-demand` instance, manuall {"karpenter.sh/capacity-type":"on-demand"} ``` -#### Specify a specific instance type at service level +#### Define the instance type to run your service In some cases, you may need to ensure that a specific service runs on a particular instance type to meet performance, compliance, or cost requirements. @@ -332,7 +332,9 @@ For example, to assign a service to the t3a.xlarge instance type, manually set t ``` -The specified instance type must be included in the list of instance types defined in the NodePool configuration. + +The specified instance type must be included in the list of instance types defined in the [NodePool configuration][docs.using-qovery.configuration.clusters.aws-with-karpenter#resources]. + @@ -340,5 +342,6 @@ The specified instance type must be included in the list of instance types defin [docs.using-qovery.configuration.clusters#logs]: /docs/using-qovery/configuration/clusters/#logs [docs.using-qovery.configuration.clusters#updating-a-cluster]: /docs/using-qovery/configuration/clusters/#updating-a-cluster [docs.using-qovery.configuration.clusters#what-are-the-different-instance-types-available-when-creating-a-cluster]: /docs/using-qovery/configuration/clusters/#what-are-the-different-instance-types-available-when-creating-a-cluster +[docs.using-qovery.configuration.clusters.aws-with-karpenter#resources]: /docs/using-qovery/configuration/clusters/aws-with-karpenter/#resources [docs.using-qovery.deployment.image-mirroring]: /docs/using-qovery/deployment/image-mirroring/ [urls.qovery_console]: https://console.qovery.com diff --git a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb index 425b647833..23aa88f325 100644 --- a/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb +++ b/website/docs/using-qovery/configuration/clusters/aws-with-karpenter.md.erb @@ -306,9 +306,9 @@ The `Features` tab in your cluster settings allows you to check if the [**Static The `Network` tab in your cluster settings allows you to update your Qovery VPC route table so that you can perform VPC peering. For step-by-step guidelines on how to set up VPC peering, [see our dedicated tutorial](https://hub.qovery.com/guides/tutorial/aws-vpc-peering-with-qovery/). -### Assigning Specific Instances to Services +### Defining cluster node constraints to run your Services -#### Specify on-demand instance at service level +#### Define if your service can run on a on-demand instance When using spot instances in your cluster, you may want to ensure that certain critical services, such as databases or essential applications, are always deployed on on-demand instances. @@ -318,7 +318,7 @@ To specify that a service should be deployed on an `on-demand` instance, manuall {"karpenter.sh/capacity-type":"on-demand"} ``` -#### Specify a specific instance type at service level +#### Define the instance type to run your service In some cases, you may need to ensure that a specific service runs on a particular instance type to meet performance, compliance, or cost requirements. @@ -329,5 +329,7 @@ For example, to assign a service to the t3a.xlarge instance type, manually set t ``` -The specified instance type must be included in the list of instance types defined in the NodePool configuration. + +The specified instance type must be included in the list of instance types defined in the [NodePool configuration][docs.using-qovery.configuration.clusters.aws-with-karpenter#resources]. + \ No newline at end of file