Scaling Kubernetes with Karpenter: Advanced Scheduling with Pod Affinity and Volume Topology Awareness

数据分析
容器
海外精选
海外精选的内容汇集了全球优质的亚马逊云科技相关技术内容。同时,内容中提到的“AWS” 是 “Amazon Web Services” 的缩写,在此网站不作为商标展示。
24
0
{"value":"*This post was co-written by Lukonde Mwila, Principal Technical Evangelist at SUSE, an AWS Container Hero, and a HashiCorp Ambassador.*\n\n### **Introduction**\nCloud-native technologies are becoming increasingly ubiquitous, and Kubernetes is at the forefront of this movement. Today, Kubernetes is seeing widespread adoption across organizations in a variety of different industries. When implemented properly, Kubernetes can help these organizations achieve higher availability, scalability, and resiliency for their workloads. Combining Kubernetes with the attributes of cloud computing—such as unparalleled scalability and elasticity—can help organizations enhance their containerized applications’ resiliency and availability.\n\nAs detailed [in this introductory post](https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/), [Karpenter](https://karpenter.sh/)‘s objective is to make sure that your cluster’s workloads have the compute they need, no more and no less, right when they need it.\n\nIn its most recent updates, [Karpenter](https://karpenter.sh/) added support for more advanced scheduling constraints, such as pod affinity and anti-affinity, topology spread, node affinity, node selection, and resource requests. This post will specifically delve into ```podAffinity```, ```podAntiAffinity```, and volume topology awareness and elaborate on the use cases that they’re best suited for.\n\n### **Prerequisites**\nTo carry out the examples in this post, you need to have [Karpenter](https://karpenter.sh/) installed in a Kubernetes cluster in AWS. We’ll be making use of [Amazon EKS](https://aws.amazon.com/eks/) for demonstrative purposes. You can automate the process of provisioning an EKS cluster, with [Karpenter](https://karpenter.sh/) as an add-on, by making use of the Terraform [EKS blueprints](https://karpenter.sh/v0.12.0/getting-started/getting-started-with-terraform/).\n\n#### **Pod affinity and pod anti-affinity scheduling**\nApplying scheduling constraints to pods is implemented by establishing relationships between pods and specific nodes or between pods themselves. The latter is known as inter-pod affinity. Using inter-pod affinity, you assign rules that inform the scheduler’s approach in deciding which pod goes to which node based on their relation to other pods. Inter-pod affinity includes both pod affinity and pod anti-affinity.\n\nLike node affinity, this can be done using the rules ```requiredDuringSchedulingIgnoredDuringExecution``` and ```preferredDuringSchedulingIgnoredDuringExecution``` depending on your requirements. As the names imply, required and preferred are terms that represent how hard or soft the scheduling constraints should be. If the scheduling criteria for a pod are set to the required rule, then Kubernetes ensures the pod is placed on a node that satisfies this. Similarly, pods that contain the preferred rule are scheduled to nodes that match the highest preference.\n\n**Pod affinity:** The ```podAffinity``` rule informs the scheduler to match pods that relate to each other based on their labels. If a new pod is created, then the scheduler takes care of searching the nodes for pods that match the label specification of the new pod’s label selector.\n\nPod anti-affinity: In contrast, the ```podAntiAffinity``` rule allows you to prevent certain pods from running on the same node if the matching label criteria are met.\n\nThese rules can be particularly helpful in various scenarios. For example, podAffinity can be beneficial for pods to co-locate each other in the same AZ or node to support any inter-dependencies and reduce network latency between services. On the other hand, ```podAntiAffinity``` is typically useful for preventing a single point of failure by spreading pods across AZs or nodes for high availability (HA). For such use cases, the recommended topology spread constraint for anti-affinity can be zonal or hostname. This can be implemented using the topologyKey property which determines the searching scope of the cluster nodes. The topologyKey is a key of a label attached to a node.\n\nAn example of a ```podAntiAffinity``` implementation would be the [CoreDNS](https://docs.aws.amazon.com/eks/latest/userguide/managing-coredns.html) Deployment. Its [Deployment resource](https://github.com/coredns/deployment/blob/master/kubernetes/coredns.yaml.sed) has the ```podAntiAffinity``` policy to ensure that the scheduler runs the ```CoreDNS``` pods on different nodes for HA and to avoid [VPC DNS throttling](https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-cause-of-failed-dns-queries/). You’ll notice that the Deployment’s anti-affinity ```topologyKey``` is set to the hostname. In addition to this, ```podAntiAffinity``` can be used to give a pod or set of pods resource isolation on exclusive nodes, as well as mitigating the risk of some pods interfering with the performance of others.\n\nUsing [Karpenter](https://karpenter.sh/) allows you to make sure that new compute provisioned for your cluster will satisfy these pod affinity rules as workloads scale, without configuring additional infrastructure. [Karpenter](https://karpenter.sh/) tracks unscheduled pods and will provision compute resources in accordance with the required or preferred affinity rules defined in your resource manifests.\n\n##### **Pod affinity example with Karpenter**\n\nIn this example, you’ll create a deployment resource with a ```podAffinity``` rule that requires scheduling the pods on nodes in the same AZ (availability zone). In the process, [Karpenter](https://karpenter.sh/) will interpret the requirements of the pods that need to be scheduled and provision nodes that allow for these affinity rules to be met in an optimal way.\n\nAs a starting point, you’ll need to install the Karpenter Provisioner on your cluster. The Provisioner is a CRD that details configuration specifications and parameters such as node types, labels, taints, tags, customer kubelet configurations, resource limits and cluster connections via subnet and security group associations. The Provisioner manifest used in this example can be seen below.\n\n```\napiVersion: karpenter.sh/v1alpha5\nkind: Provisioner\nmetadata:\n name: default\nspec:\n # Requirements that constrain the parameters of provisioned nodes.\n # These requirements are combined with pod.spec.affinity.nodeAffinity rules.\n # Operators { In, NotIn } are supported to enable including or excluding values\n requirements:\n - key: \"karpenter.sh/capacity-type\" # If not included, the webhook for the AWS cloud provider will default to on-demand\n operator: In\n values: [\"spot\", \"on-demand\"]\n # Resource limits constrain the total size of the cluster.\n # Limits prevent Karpenter from creating new instances once the limit is exceeded.\n limits:\n resources:\n cpu: 1000 \n memory: 1000Gi\n provider:\n subnetSelector:\n karpenter.sh/discovery: alpha\n securityGroupSelector:\n karpenter.sh/discovery: alpha\n tags:\n karpenter.sh/discovery: alpha\n ttlSecondsAfterEmpty: 30\n```\n\nYou can start by fetching all the nodes in your cluster using the ```kubectl get nodes``` command in your terminal. This will give you an idea of the existing nodes before [Karpenter](https://karpenter.sh/) launches new ones in response to the application you’ll deploy to the cluster shortly.\n\n```\nNAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready <none> 47h v1.21.12-eks-5308cf7\nip-10-0-1-12.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\nip-10-0-1-73.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\n```\n\nAfter that, you can proceed to create a deployment resource with the following manifest:\n\n```\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: inflate\nspec:\n replicas: 8\n selector:\n matchLabels:\n app: inflate\n template:\n metadata:\n labels:\n app: inflate\n spec:\n affinity:\n podAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n - labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - inflate\n topologyKey: \"topology.kubernetes.io/zone\"\n terminationGracePeriodSeconds: 0\n containers:\n - name: inflate\n image: public.ecr.aws/eks-distro/kubernetes/pause:3.2\n resources:\n requests:\n cpu: 1\n```\n\n[Karpenter](https://karpenter.sh/) will detect the unscheduled pods and provision a node that will help fulfill the inter-pod affinity requirements of this deployment:\n\n```\nNAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready <none> 2d v1.21.12-eks-5308cf7\nip-10-0-1-12.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\nip-10-0-1-233.eu-west-1.compute.internal Ready <none> 32m v1.21.12-eks-5308cf7 // New node\nip-10-0-1-73.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\n```\n\nThe newly created node has the hostname ```ip-10-0-1-233.eu-west-1.compute.internal```.\n\nHere is a partial description of the new node:\n\n```\nName: ip-10-0-1-233.eu-west-1.compute.internal\nRoles: <none>\nLabels: beta.kubernetes.io/arch=amd64\n beta.kubernetes.io/instance-type=c6i.2xlarge\n beta.kubernetes.io/os=linux\n failure-domain.beta.kubernetes.io/region=eu-west-1\n failure-domain.beta.kubernetes.io/zone=eu-west-1b\n karpenter.sh/capacity-type=spot\n karpenter.sh/provisioner-name=default\n kubernetes.io/arch=amd64\n kubernetes.io/hostname=ip-10-0-1-233.eu-west-1.compute.internal\n kubernetes.io/os=linux\n node.kubernetes.io/instance-type=c6i.2xlarge\n topology.ebs.csi.aws.com/zone=eu-west-1b\n topology.kubernetes.io/region=eu-west-1\n topology.kubernetes.io/zone=eu-west-1b\nAnnotations: csi.volume.kubernetes.io/nodeid: {\"ebs.csi.aws.com\":\"i-00725be7dfa8ef814\"}\n node.alpha.kubernetes.io/ttl: 0\n volumes.kubernetes.io/controller-managed-attach-detach: true\n...\n```\n\nWe can then fetch the relevant pods using the appropriate label, ```app=inflate``` in this case, to review how the pods have been scheduled.\n\n```\nkubectl get pods -l app=inflate -o wide\nNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES\ninflate-588d96b7f7-2lmzb 1/1 Running 0 104s 10.0.1.197 ip-10-0-1-233.eu-west-1.compute.internal <none> <none>\ninflate-588d96b7f7-gv68n 1/1 Running 0 104s 10.0.1.11 ip-10-0-1-233.eu-west-1.compute.internal <none> <none>\ninflate-588d96b7f7-jffqh 1/1 Running 0 104s 10.0.1.248 ip-10-0-1-233.eu-west-1.compute.internal <none> <none>\ninflate-588d96b7f7-ktjrg 1/1 Running 0 104s 10.0.1.81 ip-10-0-1-12.eu-west-1.compute.internal <none> <none>\ninflate-588d96b7f7-mhjrl 1/1 Running 0 104s 10.0.1.133 ip-10-0-1-233.eu-west-1.compute.internal <none> <none>\ninflate-588d96b7f7-vhjl7 1/1 Running 0 104s 10.0.1.21 ip-10-0-1-233.eu-west-1.compute.internal <none> <none>\ninflate-588d96b7f7-zb7l8 1/1 Running 0 104s 10.0.1.18 ip-10-0-1-73.eu-west-1.compute.internal <none> <none>\ninflate-588d96b7f7-zz2g4 1/1 Running 0 104s 10.0.1.207 ip-10-0-1-233.eu-west-1.compute.internal <none> <none>\n```\n\nAs you can see, six of the pods have been scheduled on the new node ```ip-10-0-1-233.eu-west-1.compute.internal```, whereas the other two have been scheduled to nodes in the same AZ (```eu-west-1b```) as per the ```topologyKey``` of the ```podAffinity``` rule. Since these nodes are all in the same AZ, they are part of the same topology, thus meeting the scheduling requirements.\n\n##### **Pod anti-affinity example with Karpenter**\n\nIn the second example, you’ll apply a ```podAntiAffinity``` rule to preferably schedule the pods across different nodes in the cluster, based on their AZs. As before, [Karpenter](https://karpenter.sh/) reads the pod requirements and launch nodes that support the ```podAntiAffinity``` configurations.\n\nSimilar to the previous example, start by fetching all the nodes in the cluster:\n\n```\nNAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready <none> 47h v1.21.12-eks-5308cf7\nip-10-0-1-12.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\nip-10-0-1-73.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready <none> 2d2h v1.21.12-eks-5308cf7\n```\n\nAfter that, you can proceed to create a deployment resource.\n\n```\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: inflate\nspec:\n replicas: 8\n selector:\n matchLabels:\n app: inflate\n template:\n metadata:\n labels:\n app: inflate\n spec:\n affinity:\n podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 50\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - inflate\n topologyKey: \"topology.kubernetes.io/zone\"\n terminationGracePeriodSeconds: 0\n containers:\n - name: inflate\n image: public.ecr.aws/eks-distro/kubernetes/pause:3.2\n resources:\n requests:\n cpu: 1\n```\n\nIn response to the pod requirements, [Karpenter](https://karpenter.sh/) will provision a new node:\n\n```\nNAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready <none> 2d v1.21.12-eks-5308cf7\nip-10-0-1-12.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\nip-10-0-1-69.eu-west-1.compute.internal Ready <none> 73s v1.21.12-eks-5308cf7\nip-10-0-1-73.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready <none> 2d3h v1.21.12-eks-5308cf7\n```\n\nThe newly created node has the hostname ```ip-10-0-1-69.eu-west-1.compute.internal```.\n\nHere is a partial description of the new node:\n\n```\nName: ip-10-0-1-69.eu-west-1.compute.internal\nRoles: <none>\nLabels: beta.kubernetes.io/arch=amd64\n beta.kubernetes.io/instance-type=c5.xlarge\n beta.kubernetes.io/os=linux\n failure-domain.beta.kubernetes.io/region=eu-west-1\n failure-domain.beta.kubernetes.io/zone=eu-west-1b\n karpenter.sh/capacity-type=spot\n karpenter.sh/provisioner-name=default\n kubernetes.io/arch=amd64\n kubernetes.io/hostname=ip-10-0-1-69.eu-west-1.compute.internal\n kubernetes.io/os=linux\n node.kubernetes.io/instance-type=c5.xlarge\n topology.ebs.csi.aws.com/zone=eu-west-1b\n topology.kubernetes.io/region=eu-west-1\n topology.kubernetes.io/zone=eu-west-1b\nAnnotations: csi.volume.kubernetes.io/nodeid: {\"ebs.csi.aws.com\":\"i-0617fbc688949e367\"}\n node.alpha.kubernetes.io/ttl: 0\n volumes.kubernetes.io/controller-managed-attach-detach: true\n...\n```\n\nAs before, fetch the pods with the relevant label:\n\n```\nkubectl get pods -l app=inflate -o wide\nNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES\ninflate-54cd576f79-88rt4 1/1 Running 0 101s 10.0.0.128 ip-10-0-0-35.eu-west-1.compute.internal <none> <none>\ninflate-54cd576f79-bpcc7 1/1 Running 0 101s 10.0.0.49 ip-10-0-0-126.eu-west-1.compute.internal <none> <none>\ninflate-54cd576f79-jdcfc 1/1 Running 0 101s 10.0.1.247 ip-10-0-1-12.eu-west-1.compute.internal <none> <none>\ninflate-54cd576f79-nh8zg 1/1 Running 0 101s 10.0.1.120 ip-10-0-1-69.eu-west-1.compute.internal <none> <none>\ninflate-54cd576f79-qm8dc 1/1 Running 0 101s 10.0.1.236 ip-10-0-1-69.eu-west-1.compute.internal <none> <none>\ninflate-54cd576f79-vvgkg 1/1 Running 0 101s 10.0.1.18 ip-10-0-1-73.eu-west-1.compute.internal <none> <none>\ninflate-54cd576f79-vzzjx 1/1 Running 0 101s 10.0.0.123 ip-10-0-0-193.eu-west-1.compute.internal <none> <none>\ninflate-54cd576f79-xtwkr 1/1 Running 0 101s 10.0.1.147 ip-10-0-1-69.eu-west-1.compute.internal <none> <none>\n```\n\nExcept for three pods, all the others are dispersed to other nodes across the different AZs of the select region (```eu-west-1```) as per the affinity rule specification.\n\nNext, we’ll further explore [Karpenter](https://karpenter.sh/)‘s use with another advanced scheduling technique, namely volume topology awareness.\n\n#### **Volume topology aware scheduling**\nBefore volume topology awareness, the processes of scheduling pods to nodes and dynamically provisioning volumes were independent. As you can imagine, this introduced the challenge of unpredictable outcomes for your workloads. For example, you might create a persistent volume claim which will trigger the dynamic creation of a volume in a certain AZ (i.e., ```eu-west-1a```), whereas the pod that needs to make use of the volume gets placed on a node in a separate AZ (```eu-west-1b```). As a result, the pod will fail to start.\n\nThis is especially problematic for your stateful workloads that rely on storage volumes to provide persistence of data. It would be inefficient, and counter-intuitive to dynamic provisioning, to manually provision the storage volumes in the appropriate AZs. That’s where topology awareness comes in.\n\nTopology awareness complements dynamic provisioning by ensuring that pods are placed on the nodes that meet their topology requirements, in this case, storage volumes. The goal of topology awareness scheduling is to provide alignment between topology resources and your workloads. Thus, it gives you a more reliable and predictable outcome. This is handled by the topology manager, a component of the ```kubelet```. This means the topology manager will make sure that your stateful workloads and the dynamically created persistent volumes are placed in the correct AZs.\n\nTo use volume topology awareness, ensure that you set the ```volumeBindingMode``` of your storage class to ```WaitForFirstConsumer```. This property delays the provisioning of persistent volumes until a persistent volume claim is created by a pod that will use it.\n\nIn scaling events, [Karpenter](https://karpenter.sh/), the scheduler, and the topology manager work well together. In combination, they optimize the process of provisioning the right compute resources and align scheduled workloads with their dynamically created persistent volumes.\n\nThese technologies enable you to run and reliably scale stateful workloads in multiple AZs. You can thus spread your applications or databases in your cluster across zones to prevent a single point of failure in the case that an AZ is impacted. Considering that elastic block store (EBS) volumes are AZ-specific, your workloads should be configured with nodeAffinity to ensure that they are provisioned in the same AZ where they were first scheduled for a successful reattachment.\n\n##### **Volume topology aware example with Karpenter**\n\nIn this example, you’ll create a stateful set for an application with 20 replicas, each with a persistent volume claim using a storage class with ```volumeBindingMode``` already set to ```WaitForFirstConsumer```. In addition, you’ll specify that the nodeAffinity of the workloads should be scheduled to topology resources in the ```eu-west-1a``` AZ.\n\nTo review the default storage class, run the ```kubectl get storageclass``` command:\n\n```\nNAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE\ngp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 3d11h\n```\n\nNext, you’ll fetch the nodes in the respective AZs:\n\n```\nRunning kubectl get nodes -l topology.kubernetes.io/zone=eu-west-1a returns the following:\n\nNAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready <none> 4d23h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready <none> 4d23h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready <none> 4d21h v1.21.12-eks-5308cf7\n```\n\nWhereas, running ```kubectl get nodes -l topology.kubernetes.io/zone=eu-west-1b``` returns the following:\n\nGit\n```\nNAME STATUS ROLES AGE VERSION\nip-10-0-1-12.eu-west-1.compute.internal Ready <none> 4d23h v1.21.12-eks-5308cf7\nip-10-0-1-73.eu-west-1.compute.internal Ready <none> 4d23h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready <none> 4d23h v1.21.12-eks-5308cf7\n```\n\n\nOnce you have the layout for your nodes, you can proceed to create the stateful set and an accompanying load balancer service for the application.\n\n```\napiVersion: v1\nkind: Service\nmetadata:\n name: express-nodejs-svc\nspec:\n selector:\n app: express-nodejs\n type: LoadBalancer\n ports:\n - protocol: TCP\n port: 8080\n targetPort: 8080\napiVersion: apps/v1\nkind: StatefulSet\nmetadata:\n name: express-nodejs\nspec: \n serviceName: express-nodejs-svc\n replicas: 20\n selector:\n matchLabels:\n app: express-nodejs\n template:\n metadata:\n labels:\n app: express-nodejs\n spec:\n affinity:\n nodeAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n nodeSelectorTerms:\n - matchExpressions:\n - key: topology.kubernetes.io/zone\n operator: In\n values:\n - eu-west-1a\n containers:\n - name: express-nodejs\n image: lukondefmwila/express-test:1.1.4\n resources:\n requests:\n memory: \"512Mi\"\n cpu: \"500m\"\n limits:\n memory: \"512Mi\"\n cpu: \"500m\"\n ports:\n - containerPort: 8080\n name: express-nodejs\n volumeMounts:\n - name: express-nodejs\n mountPath: /data\n volumeClaimTemplates:\n - metadata:\n name: express-nodejs\n spec:\n accessModes: [ \"ReadWriteOnce\" ]\n storageClassName: gp2\n resources:\n requests:\n storage: 10Gi\n```\n\nAfter deploying the application, persistent volumes are dynamically created in response to each claim from the stateful set replicas. Each one is created in the appropriate AZ, resulting in the successful creation of each pod replica. In conjunction, [Karpenter](https://karpenter.sh/) provisions new nodes in ```eu-west-1a``` to meet the compute requirements of the stateful set.\n\nNow when we run ```kubectl get nodes -l topology.kubernetes.io/zone=eu-west-1a```, we get the following response:\n\n```\nNAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready <none> 5d v1.21.12-eks-5308cf7\nip-10-0-0-176.eu-west-1.compute.internal Ready <none> 4m18s v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready <none> 5d v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready <none> 4d21h v1.21.12-eks-5308cf7\nip-10-0-0-4.eu-west-1.compute.internal Ready <none> 6m12s v1.21.12-eks-5308cf7\nip-10-0-0-53.eu-west-1.compute.internal Ready <none> 8m8s v1.21.12-eks-5308cf7\nip-10-0-0-96.eu-west-1.compute.internal Ready <none> 2m28s v1.21.12-eks-5308cf7\n```\n\nAs you can see, [Karpenter](https://karpenter.sh/) has launched the following additional nodes:\n\n- ip-10-0-0-176.eu-west-1.compute.internal\n- ip-10-0-0-4.eu-west-1.compute.internal\n- ip-10-0-0-53.eu-west-1.compute.internal\n- ip-10-0-0-96.eu-west-1.compute.internal\n\n\nFurthermore, we reviewed the created persistent volume claims, persistent volumes, and pods by running the appropriate commands as shown in the following code:\n\n```\nkubectl get pv\nNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE\npvc-07ad8f9f-e14f-4760-a908-58d2c48c49ac 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-11 gp2 9m53s\npvc-0c3a949a-aa2f-4244-9988-d650b409698a 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-3 gp2 13m\npvc-32dfc65e-9d10-42ea-a1c1-946f25500766 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-7 gp2 11m\n\npvc-3cf7afb9-8bf4-4a0c-8064-cc97f0cdcbd5 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-9 gp2 11m\npvc-3d8d0cb8-c5f4-43ad-a3a4-a95922a13c53 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-0 gp2\n...\nkubectl get pvc\n\nNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE\nexpress-nodejs-express-nodejs-0 Bound pvc-3d8d0cb8-c5f4-43ad-a3a4-a95922a13c53 10Gi RWO gp2 14m\nexpress-nodejs-express-nodejs-1 Bound pvc-af841cf3-634a-4314-bfd1-a1d6da9d4101 10Gi RWO gp2 13m\nexpress-nodejs-express-nodejs-10 Bound pvc-741c0d72-7311-4063-9d9b-15942f71a9a9 10Gi RWO gp2 10m\nexpress-nodejs-express-nodejs-11 Bound pvc-07ad8f9f-e14f-4760-a908-58d2c48c49ac 10Gi RWO gp2 10m\nexpress-nodejs-express-nodejs-12 Bound pvc-4a91fb0a-778b-42d2-b4b7-33d5d3dc8a87 10Gi RWO gp2 9m45s\n...\nkubectl get pods -l app=express-nodejs -o wide\nNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES\nexpress-nodejs-0 1/1 Running 0 16m 10.0.0.174 ip-10-0-0-193.eu-west-1.compute.internal <none> <none>\n\nexpress-nodejs-1 1/1 Running 0 16m 10.0.0.30 ip-10-0-0-35.eu-west-1.compute.internal <none> <none>\nexpress-nodejs-10 1/1 Running 0 12m 10.0.0.235 ip-10-0-0-53.eu-west-1.compute.internal <none> <none>\nexpress-nodejs-11 1/1 Running 0 12m 10.0.0.137 ip-10-0-0-53.eu-west-1.compute.internal <none> <none>\nexpress-nodejs-12 1/1 Running 0 12m 10.0.0.161 ip-10-0-0-4.eu-west-1.compute.internal <none> <none>\n...\n```\n\n### **Cleanup**\nTo avoid incurring any additional costs, make sure you destroy all the infrastructure that you provisioned in relation to the examples detailed in this post.\n\n### **Conclusion**\nIn this post, we covered a hands-on approach to scaling Kubernetes swith [Karpenter](https://karpenter.sh/) specifically for supporting advanced scheduling techniques with inter-pod affinity and volume topology awareness.\n\nTo learn more about [Karpenter](https://karpenter.sh/), you can read the [documentation](https://karpenter.sh/v0.10.1/) and join the community channel, #karpenter, in the [Kubernetes Slack workspace](https://slack.k8s.io/). Also, if you like the project, you can star it on [GitHub here](https://github.com/aws/karpenter).\n\n![59c9055aae4d4332a28e2bd482f2265e_image1.png](1)\n\n**Lukonde Mwila, Principal Technical Evangelist, SUSE**\n\nLukonde is a Principal Technical Evangelist at SUSE, an AWS Container Hero, and a HashiCorp Ambassador. He has years of experience in application development, solution architecture, cloud engineering, and DevOps workflows. He is a life-long learner and is passionate about sharing knowledge through various mediums. Nowadays, Lukonde spends the majority of his time providing content, training, and support in the Kubernetes ecosystem and SUSE’s open-source container management stack.\n\n![image.png](https://dev-media.amazoncloud.cn/a2efff38cea14753875974d603e10bd9_image.png)\n\n**Jeremy Cowan**\n\nJeremy Cowan is a Specialist Solutions Architect for containers at AWS, although his family thinks he sells \"cloud space\". Prior to joining AWS, Jeremy worked for several large software vendors, including VMware, Microsoft, and IBM. When he's not working, you can usually find on a trail in the wilderness, far away from technology.","render":"<p><em>This post was co-written by Lukonde Mwila, Principal Technical Evangelist at SUSE, an AWS Container Hero, and a HashiCorp Ambassador.</em></p>\n<h3><a id=\"Introduction_2\"></a><strong>Introduction</strong></h3>\n<p>Cloud-native technologies are becoming increasingly ubiquitous, and Kubernetes is at the forefront of this movement. Today, Kubernetes is seeing widespread adoption across organizations in a variety of different industries. When implemented properly, Kubernetes can help these organizations achieve higher availability, scalability, and resiliency for their workloads. Combining Kubernetes with the attributes of cloud computing—such as unparalleled scalability and elasticity—can help organizations enhance their containerized applications’ resiliency and availability.</p>\n<p>As detailed <a href=\"https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/\" target=\"_blank\">in this introductory post</a>, <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a>‘s objective is to make sure that your cluster’s workloads have the compute they need, no more and no less, right when they need it.</p>\n<p>In its most recent updates, <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> added support for more advanced scheduling constraints, such as pod affinity and anti-affinity, topology spread, node affinity, node selection, and resource requests. This post will specifically delve into <code>podAffinity</code>, <code>podAntiAffinity</code>, and volume topology awareness and elaborate on the use cases that they’re best suited for.</p>\n<h3><a id=\"Prerequisites_9\"></a><strong>Prerequisites</strong></h3>\n<p>To carry out the examples in this post, you need to have <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> installed in a Kubernetes cluster in AWS. We’ll be making use of <a href=\"https://aws.amazon.com/eks/\" target=\"_blank\">Amazon EKS</a> for demonstrative purposes. You can automate the process of provisioning an EKS cluster, with <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> as an add-on, by making use of the Terraform <a href=\"https://karpenter.sh/v0.12.0/getting-started/getting-started-with-terraform/\" target=\"_blank\">EKS blueprints</a>.</p>\n<h4><a id=\"Pod_affinity_and_pod_antiaffinity_scheduling_12\"></a><strong>Pod affinity and pod anti-affinity scheduling</strong></h4>\n<p>Applying scheduling constraints to pods is implemented by establishing relationships between pods and specific nodes or between pods themselves. The latter is known as inter-pod affinity. Using inter-pod affinity, you assign rules that inform the scheduler’s approach in deciding which pod goes to which node based on their relation to other pods. Inter-pod affinity includes both pod affinity and pod anti-affinity.</p>\n<p>Like node affinity, this can be done using the rules <code>requiredDuringSchedulingIgnoredDuringExecution</code> and <code>preferredDuringSchedulingIgnoredDuringExecution</code> depending on your requirements. As the names imply, required and preferred are terms that represent how hard or soft the scheduling constraints should be. If the scheduling criteria for a pod are set to the required rule, then Kubernetes ensures the pod is placed on a node that satisfies this. Similarly, pods that contain the preferred rule are scheduled to nodes that match the highest preference.</p>\n<p><strong>Pod affinity:</strong> The <code>podAffinity</code> rule informs the scheduler to match pods that relate to each other based on their labels. If a new pod is created, then the scheduler takes care of searching the nodes for pods that match the label specification of the new pod’s label selector.</p>\n<p>Pod anti-affinity: In contrast, the <code>podAntiAffinity</code> rule allows you to prevent certain pods from running on the same node if the matching label criteria are met.</p>\n<p>These rules can be particularly helpful in various scenarios. For example, podAffinity can be beneficial for pods to co-locate each other in the same AZ or node to support any inter-dependencies and reduce network latency between services. On the other hand, <code>podAntiAffinity</code> is typically useful for preventing a single point of failure by spreading pods across AZs or nodes for high availability (HA). For such use cases, the recommended topology spread constraint for anti-affinity can be zonal or hostname. This can be implemented using the topologyKey property which determines the searching scope of the cluster nodes. The topologyKey is a key of a label attached to a node.</p>\n<p>An example of a <code>podAntiAffinity</code> implementation would be the <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/managing-coredns.html\" target=\"_blank\">CoreDNS</a> Deployment. Its <a href=\"https://github.com/coredns/deployment/blob/master/kubernetes/coredns.yaml.sed\" target=\"_blank\">Deployment resource</a> has the <code>podAntiAffinity</code> policy to ensure that the scheduler runs the <code>CoreDNS</code> pods on different nodes for HA and to avoid <a href=\"https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-cause-of-failed-dns-queries/\" target=\"_blank\">VPC DNS throttling</a>. You’ll notice that the Deployment’s anti-affinity <code>topologyKey</code> is set to the hostname. In addition to this, <code>podAntiAffinity</code> can be used to give a pod or set of pods resource isolation on exclusive nodes, as well as mitigating the risk of some pods interfering with the performance of others.</p>\n<p>Using <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> allows you to make sure that new compute provisioned for your cluster will satisfy these pod affinity rules as workloads scale, without configuring additional infrastructure. <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> tracks unscheduled pods and will provision compute resources in accordance with the required or preferred affinity rules defined in your resource manifests.</p>\n<h5><a id=\"Pod_affinity_example_with_Karpenter_27\"></a><strong>Pod affinity example with Karpenter</strong></h5>\n<p>In this example, you’ll create a deployment resource with a <code>podAffinity</code> rule that requires scheduling the pods on nodes in the same AZ (availability zone). In the process, <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> will interpret the requirements of the pods that need to be scheduled and provision nodes that allow for these affinity rules to be met in an optimal way.</p>\n<p>As a starting point, you’ll need to install the Karpenter Provisioner on your cluster. The Provisioner is a CRD that details configuration specifications and parameters such as node types, labels, taints, tags, customer kubelet configurations, resource limits and cluster connections via subnet and security group associations. The Provisioner manifest used in this example can be seen below.</p>\n<pre><code class=\"lang-\">apiVersion: karpenter.sh/v1alpha5\nkind: Provisioner\nmetadata:\n name: default\nspec:\n # Requirements that constrain the parameters of provisioned nodes.\n # These requirements are combined with pod.spec.affinity.nodeAffinity rules.\n # Operators { In, NotIn } are supported to enable including or excluding values\n requirements:\n - key: &quot;karpenter.sh/capacity-type&quot; # If not included, the webhook for the AWS cloud provider will default to on-demand\n operator: In\n values: [&quot;spot&quot;, &quot;on-demand&quot;]\n # Resource limits constrain the total size of the cluster.\n # Limits prevent Karpenter from creating new instances once the limit is exceeded.\n limits:\n resources:\n cpu: 1000 \n memory: 1000Gi\n provider:\n subnetSelector:\n karpenter.sh/discovery: alpha\n securityGroupSelector:\n karpenter.sh/discovery: alpha\n tags:\n karpenter.sh/discovery: alpha\n ttlSecondsAfterEmpty: 30\n</code></pre>\n<p>You can start by fetching all the nodes in your cluster using the <code>kubectl get nodes</code> command in your terminal. This will give you an idea of the existing nodes before <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> launches new ones in response to the application you’ll deploy to the cluster shortly.</p>\n<pre><code class=\"lang-\">NAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready &lt;none&gt; 47h v1.21.12-eks-5308cf7\nip-10-0-1-12.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\nip-10-0-1-73.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\n</code></pre>\n<p>After that, you can proceed to create a deployment resource with the following manifest:</p>\n<pre><code class=\"lang-\">apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: inflate\nspec:\n replicas: 8\n selector:\n matchLabels:\n app: inflate\n template:\n metadata:\n labels:\n app: inflate\n spec:\n affinity:\n podAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n - labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - inflate\n topologyKey: &quot;topology.kubernetes.io/zone&quot;\n terminationGracePeriodSeconds: 0\n containers:\n - name: inflate\n image: public.ecr.aws/eks-distro/kubernetes/pause:3.2\n resources:\n requests:\n cpu: 1\n</code></pre>\n<p><a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> will detect the unscheduled pods and provision a node that will help fulfill the inter-pod affinity requirements of this deployment:</p>\n<pre><code class=\"lang-\">NAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready &lt;none&gt; 2d v1.21.12-eks-5308cf7\nip-10-0-1-12.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\nip-10-0-1-233.eu-west-1.compute.internal Ready &lt;none&gt; 32m v1.21.12-eks-5308cf7 // New node\nip-10-0-1-73.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\n</code></pre>\n<p>The newly created node has the hostname <code>ip-10-0-1-233.eu-west-1.compute.internal</code>.</p>\n<p>Here is a partial description of the new node:</p>\n<pre><code class=\"lang-\">Name: ip-10-0-1-233.eu-west-1.compute.internal\nRoles: &lt;none&gt;\nLabels: beta.kubernetes.io/arch=amd64\n beta.kubernetes.io/instance-type=c6i.2xlarge\n beta.kubernetes.io/os=linux\n failure-domain.beta.kubernetes.io/region=eu-west-1\n failure-domain.beta.kubernetes.io/zone=eu-west-1b\n karpenter.sh/capacity-type=spot\n karpenter.sh/provisioner-name=default\n kubernetes.io/arch=amd64\n kubernetes.io/hostname=ip-10-0-1-233.eu-west-1.compute.internal\n kubernetes.io/os=linux\n node.kubernetes.io/instance-type=c6i.2xlarge\n topology.ebs.csi.aws.com/zone=eu-west-1b\n topology.kubernetes.io/region=eu-west-1\n topology.kubernetes.io/zone=eu-west-1b\nAnnotations: csi.volume.kubernetes.io/nodeid: {&quot;ebs.csi.aws.com&quot;:&quot;i-00725be7dfa8ef814&quot;}\n node.alpha.kubernetes.io/ttl: 0\n volumes.kubernetes.io/controller-managed-attach-detach: true\n...\n</code></pre>\n<p>We can then fetch the relevant pods using the appropriate label, <code>app=inflate</code> in this case, to review how the pods have been scheduled.</p>\n<pre><code class=\"lang-\">kubectl get pods -l app=inflate -o wide\nNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES\ninflate-588d96b7f7-2lmzb 1/1 Running 0 104s 10.0.1.197 ip-10-0-1-233.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-588d96b7f7-gv68n 1/1 Running 0 104s 10.0.1.11 ip-10-0-1-233.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-588d96b7f7-jffqh 1/1 Running 0 104s 10.0.1.248 ip-10-0-1-233.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-588d96b7f7-ktjrg 1/1 Running 0 104s 10.0.1.81 ip-10-0-1-12.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-588d96b7f7-mhjrl 1/1 Running 0 104s 10.0.1.133 ip-10-0-1-233.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-588d96b7f7-vhjl7 1/1 Running 0 104s 10.0.1.21 ip-10-0-1-233.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-588d96b7f7-zb7l8 1/1 Running 0 104s 10.0.1.18 ip-10-0-1-73.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-588d96b7f7-zz2g4 1/1 Running 0 104s 10.0.1.207 ip-10-0-1-233.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\n</code></pre>\n<p>As you can see, six of the pods have been scheduled on the new node <code>ip-10-0-1-233.eu-west-1.compute.internal</code>, whereas the other two have been scheduled to nodes in the same AZ (<code>eu-west-1b</code>) as per the <code>topologyKey</code> of the <code>podAffinity</code> rule. Since these nodes are all in the same AZ, they are part of the same topology, thus meeting the scheduling requirements.</p>\n<h5><a id=\"Pod_antiaffinity_example_with_Karpenter_167\"></a><strong>Pod anti-affinity example with Karpenter</strong></h5>\n<p>In the second example, you’ll apply a <code>podAntiAffinity</code> rule to preferably schedule the pods across different nodes in the cluster, based on their AZs. As before, <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> reads the pod requirements and launch nodes that support the <code>podAntiAffinity</code> configurations.</p>\n<p>Similar to the previous example, start by fetching all the nodes in the cluster:</p>\n<pre><code class=\"lang-\">NAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready &lt;none&gt; 47h v1.21.12-eks-5308cf7\nip-10-0-1-12.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\nip-10-0-1-73.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready &lt;none&gt; 2d2h v1.21.12-eks-5308cf7\n</code></pre>\n<p>After that, you can proceed to create a deployment resource.</p>\n<pre><code class=\"lang-\">apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: inflate\nspec:\n replicas: 8\n selector:\n matchLabels:\n app: inflate\n template:\n metadata:\n labels:\n app: inflate\n spec:\n affinity:\n podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 50\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - inflate\n topologyKey: &quot;topology.kubernetes.io/zone&quot;\n terminationGracePeriodSeconds: 0\n containers:\n - name: inflate\n image: public.ecr.aws/eks-distro/kubernetes/pause:3.2\n resources:\n requests:\n cpu: 1\n</code></pre>\n<p>In response to the pod requirements, <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> will provision a new node:</p>\n<pre><code class=\"lang-\">NAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready &lt;none&gt; 2d v1.21.12-eks-5308cf7\nip-10-0-1-12.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\nip-10-0-1-69.eu-west-1.compute.internal Ready &lt;none&gt; 73s v1.21.12-eks-5308cf7\nip-10-0-1-73.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready &lt;none&gt; 2d3h v1.21.12-eks-5308cf7\n</code></pre>\n<p>The newly created node has the hostname <code>ip-10-0-1-69.eu-west-1.compute.internal</code>.</p>\n<p>Here is a partial description of the new node:</p>\n<pre><code class=\"lang-\">Name: ip-10-0-1-69.eu-west-1.compute.internal\nRoles: &lt;none&gt;\nLabels: beta.kubernetes.io/arch=amd64\n beta.kubernetes.io/instance-type=c5.xlarge\n beta.kubernetes.io/os=linux\n failure-domain.beta.kubernetes.io/region=eu-west-1\n failure-domain.beta.kubernetes.io/zone=eu-west-1b\n karpenter.sh/capacity-type=spot\n karpenter.sh/provisioner-name=default\n kubernetes.io/arch=amd64\n kubernetes.io/hostname=ip-10-0-1-69.eu-west-1.compute.internal\n kubernetes.io/os=linux\n node.kubernetes.io/instance-type=c5.xlarge\n topology.ebs.csi.aws.com/zone=eu-west-1b\n topology.kubernetes.io/region=eu-west-1\n topology.kubernetes.io/zone=eu-west-1b\nAnnotations: csi.volume.kubernetes.io/nodeid: {&quot;ebs.csi.aws.com&quot;:&quot;i-0617fbc688949e367&quot;}\n node.alpha.kubernetes.io/ttl: 0\n volumes.kubernetes.io/controller-managed-attach-detach: true\n...\n</code></pre>\n<p>As before, fetch the pods with the relevant label:</p>\n<pre><code class=\"lang-\">kubectl get pods -l app=inflate -o wide\nNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES\ninflate-54cd576f79-88rt4 1/1 Running 0 101s 10.0.0.128 ip-10-0-0-35.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-54cd576f79-bpcc7 1/1 Running 0 101s 10.0.0.49 ip-10-0-0-126.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-54cd576f79-jdcfc 1/1 Running 0 101s 10.0.1.247 ip-10-0-1-12.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-54cd576f79-nh8zg 1/1 Running 0 101s 10.0.1.120 ip-10-0-1-69.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-54cd576f79-qm8dc 1/1 Running 0 101s 10.0.1.236 ip-10-0-1-69.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-54cd576f79-vvgkg 1/1 Running 0 101s 10.0.1.18 ip-10-0-1-73.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-54cd576f79-vzzjx 1/1 Running 0 101s 10.0.0.123 ip-10-0-0-193.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\ninflate-54cd576f79-xtwkr 1/1 Running 0 101s 10.0.1.147 ip-10-0-1-69.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\n</code></pre>\n<p>Except for three pods, all the others are dispersed to other nodes across the different AZs of the select region (<code>eu-west-1</code>) as per the affinity rule specification.</p>\n<p>Next, we’ll further explore <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a>‘s use with another advanced scheduling technique, namely volume topology awareness.</p>\n<h4><a id=\"Volume_topology_aware_scheduling_280\"></a><strong>Volume topology aware scheduling</strong></h4>\n<p>Before volume topology awareness, the processes of scheduling pods to nodes and dynamically provisioning volumes were independent. As you can imagine, this introduced the challenge of unpredictable outcomes for your workloads. For example, you might create a persistent volume claim which will trigger the dynamic creation of a volume in a certain AZ (i.e., <code>eu-west-1a</code>), whereas the pod that needs to make use of the volume gets placed on a node in a separate AZ (<code>eu-west-1b</code>). As a result, the pod will fail to start.</p>\n<p>This is especially problematic for your stateful workloads that rely on storage volumes to provide persistence of data. It would be inefficient, and counter-intuitive to dynamic provisioning, to manually provision the storage volumes in the appropriate AZs. That’s where topology awareness comes in.</p>\n<p>Topology awareness complements dynamic provisioning by ensuring that pods are placed on the nodes that meet their topology requirements, in this case, storage volumes. The goal of topology awareness scheduling is to provide alignment between topology resources and your workloads. Thus, it gives you a more reliable and predictable outcome. This is handled by the topology manager, a component of the <code>kubelet</code>. This means the topology manager will make sure that your stateful workloads and the dynamically created persistent volumes are placed in the correct AZs.</p>\n<p>To use volume topology awareness, ensure that you set the <code>volumeBindingMode</code> of your storage class to <code>WaitForFirstConsumer</code>. This property delays the provisioning of persistent volumes until a persistent volume claim is created by a pod that will use it.</p>\n<p>In scaling events, <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a>, the scheduler, and the topology manager work well together. In combination, they optimize the process of provisioning the right compute resources and align scheduled workloads with their dynamically created persistent volumes.</p>\n<p>These technologies enable you to run and reliably scale stateful workloads in multiple AZs. You can thus spread your applications or databases in your cluster across zones to prevent a single point of failure in the case that an AZ is impacted. Considering that elastic block store (EBS) volumes are AZ-specific, your workloads should be configured with nodeAffinity to ensure that they are provisioned in the same AZ where they were first scheduled for a successful reattachment.</p>\n<h5><a id=\"Volume_topology_aware_example_with_Karpenter_293\"></a><strong>Volume topology aware example with Karpenter</strong></h5>\n<p>In this example, you’ll create a stateful set for an application with 20 replicas, each with a persistent volume claim using a storage class with <code>volumeBindingMode</code> already set to <code>WaitForFirstConsumer</code>. In addition, you’ll specify that the nodeAffinity of the workloads should be scheduled to topology resources in the <code>eu-west-1a</code> AZ.</p>\n<p>To review the default storage class, run the <code>kubectl get storageclass</code> command:</p>\n<pre><code class=\"lang-\">NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE\ngp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 3d11h\n</code></pre>\n<p>Next, you’ll fetch the nodes in the respective AZs:</p>\n<pre><code class=\"lang-\">Running kubectl get nodes -l topology.kubernetes.io/zone=eu-west-1a returns the following:\n\nNAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready &lt;none&gt; 4d23h v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready &lt;none&gt; 4d23h v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready &lt;none&gt; 4d21h v1.21.12-eks-5308cf7\n</code></pre>\n<p>Whereas, running <code>kubectl get nodes -l topology.kubernetes.io/zone=eu-west-1b</code> returns the following:</p>\n<p>Git</p>\n<pre><code class=\"lang-\">NAME STATUS ROLES AGE VERSION\nip-10-0-1-12.eu-west-1.compute.internal Ready &lt;none&gt; 4d23h v1.21.12-eks-5308cf7\nip-10-0-1-73.eu-west-1.compute.internal Ready &lt;none&gt; 4d23h v1.21.12-eks-5308cf7\nip-10-0-3-30.eu-west-1.compute.internal Ready &lt;none&gt; 4d23h v1.21.12-eks-5308cf7\n</code></pre>\n<p>Once you have the layout for your nodes, you can proceed to create the stateful set and an accompanying load balancer service for the application.</p>\n<pre><code class=\"lang-\">apiVersion: v1\nkind: Service\nmetadata:\n name: express-nodejs-svc\nspec:\n selector:\n app: express-nodejs\n type: LoadBalancer\n ports:\n - protocol: TCP\n port: 8080\n targetPort: 8080\napiVersion: apps/v1\nkind: StatefulSet\nmetadata:\n name: express-nodejs\nspec: \n serviceName: express-nodejs-svc\n replicas: 20\n selector:\n matchLabels:\n app: express-nodejs\n template:\n metadata:\n labels:\n app: express-nodejs\n spec:\n affinity:\n nodeAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n nodeSelectorTerms:\n - matchExpressions:\n - key: topology.kubernetes.io/zone\n operator: In\n values:\n - eu-west-1a\n containers:\n - name: express-nodejs\n image: lukondefmwila/express-test:1.1.4\n resources:\n requests:\n memory: &quot;512Mi&quot;\n cpu: &quot;500m&quot;\n limits:\n memory: &quot;512Mi&quot;\n cpu: &quot;500m&quot;\n ports:\n - containerPort: 8080\n name: express-nodejs\n volumeMounts:\n - name: express-nodejs\n mountPath: /data\n volumeClaimTemplates:\n - metadata:\n name: express-nodejs\n spec:\n accessModes: [ &quot;ReadWriteOnce&quot; ]\n storageClassName: gp2\n resources:\n requests:\n storage: 10Gi\n</code></pre>\n<p>After deploying the application, persistent volumes are dynamically created in response to each claim from the stateful set replicas. Each one is created in the appropriate AZ, resulting in the successful creation of each pod replica. In conjunction, <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> provisions new nodes in <code>eu-west-1a</code> to meet the compute requirements of the stateful set.</p>\n<p>Now when we run <code>kubectl get nodes -l topology.kubernetes.io/zone=eu-west-1a</code>, we get the following response:</p>\n<pre><code class=\"lang-\">NAME STATUS ROLES AGE VERSION\nip-10-0-0-126.eu-west-1.compute.internal Ready &lt;none&gt; 5d v1.21.12-eks-5308cf7\nip-10-0-0-176.eu-west-1.compute.internal Ready &lt;none&gt; 4m18s v1.21.12-eks-5308cf7\nip-10-0-0-193.eu-west-1.compute.internal Ready &lt;none&gt; 5d v1.21.12-eks-5308cf7\nip-10-0-0-35.eu-west-1.compute.internal Ready &lt;none&gt; 4d21h v1.21.12-eks-5308cf7\nip-10-0-0-4.eu-west-1.compute.internal Ready &lt;none&gt; 6m12s v1.21.12-eks-5308cf7\nip-10-0-0-53.eu-west-1.compute.internal Ready &lt;none&gt; 8m8s v1.21.12-eks-5308cf7\nip-10-0-0-96.eu-west-1.compute.internal Ready &lt;none&gt; 2m28s v1.21.12-eks-5308cf7\n</code></pre>\n<p>As you can see, <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> has launched the following additional nodes:</p>\n<ul>\n<li>ip-10-0-0-176.eu-west-1.compute.internal</li>\n<li>ip-10-0-0-4.eu-west-1.compute.internal</li>\n<li>ip-10-0-0-53.eu-west-1.compute.internal</li>\n<li>ip-10-0-0-96.eu-west-1.compute.internal</li>\n</ul>\n<p>Furthermore, we reviewed the created persistent volume claims, persistent volumes, and pods by running the appropriate commands as shown in the following code:</p>\n<pre><code class=\"lang-\">kubectl get pv\nNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE\npvc-07ad8f9f-e14f-4760-a908-58d2c48c49ac 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-11 gp2 9m53s\npvc-0c3a949a-aa2f-4244-9988-d650b409698a 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-3 gp2 13m\npvc-32dfc65e-9d10-42ea-a1c1-946f25500766 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-7 gp2 11m\n\npvc-3cf7afb9-8bf4-4a0c-8064-cc97f0cdcbd5 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-9 gp2 11m\npvc-3d8d0cb8-c5f4-43ad-a3a4-a95922a13c53 10Gi RWO Delete Bound default/express-nodejs-express-nodejs-0 gp2\n...\nkubectl get pvc\n\nNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE\nexpress-nodejs-express-nodejs-0 Bound pvc-3d8d0cb8-c5f4-43ad-a3a4-a95922a13c53 10Gi RWO gp2 14m\nexpress-nodejs-express-nodejs-1 Bound pvc-af841cf3-634a-4314-bfd1-a1d6da9d4101 10Gi RWO gp2 13m\nexpress-nodejs-express-nodejs-10 Bound pvc-741c0d72-7311-4063-9d9b-15942f71a9a9 10Gi RWO gp2 10m\nexpress-nodejs-express-nodejs-11 Bound pvc-07ad8f9f-e14f-4760-a908-58d2c48c49ac 10Gi RWO gp2 10m\nexpress-nodejs-express-nodejs-12 Bound pvc-4a91fb0a-778b-42d2-b4b7-33d5d3dc8a87 10Gi RWO gp2 9m45s\n...\nkubectl get pods -l app=express-nodejs -o wide\nNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES\nexpress-nodejs-0 1/1 Running 0 16m 10.0.0.174 ip-10-0-0-193.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\n\nexpress-nodejs-1 1/1 Running 0 16m 10.0.0.30 ip-10-0-0-35.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\nexpress-nodejs-10 1/1 Running 0 12m 10.0.0.235 ip-10-0-0-53.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\nexpress-nodejs-11 1/1 Running 0 12m 10.0.0.137 ip-10-0-0-53.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\nexpress-nodejs-12 1/1 Running 0 12m 10.0.0.161 ip-10-0-0-4.eu-west-1.compute.internal &lt;none&gt; &lt;none&gt;\n...\n</code></pre>\n<h3><a id=\"Cleanup_447\"></a><strong>Cleanup</strong></h3>\n<p>To avoid incurring any additional costs, make sure you destroy all the infrastructure that you provisioned in relation to the examples detailed in this post.</p>\n<h3><a id=\"Conclusion_450\"></a><strong>Conclusion</strong></h3>\n<p>In this post, we covered a hands-on approach to scaling Kubernetes swith <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a> specifically for supporting advanced scheduling techniques with inter-pod affinity and volume topology awareness.</p>\n<p>To learn more about <a href=\"https://karpenter.sh/\" target=\"_blank\">Karpenter</a>, you can read the <a href=\"https://karpenter.sh/v0.10.1/\" target=\"_blank\">documentation</a> and join the community channel, #karpenter, in the <a href=\"https://slack.k8s.io/\" target=\"_blank\">Kubernetes Slack workspace</a>. Also, if you like the project, you can star it on <a href=\"https://github.com/aws/karpenter\" target=\"_blank\">GitHub here</a>.</p>\n<p><img src=\"data:image/png;base64,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v/KV8/bHel8J3rxxZHX6R7/+j//qf/4P/qWf/sOPLh63NX7mv/fHq9r55aW7tf36b/3P/3dvPtpZnYvq7nL3Z/+N/9FP/4n/6lWut27fEqHDM+L8/ILJWje/8+1v/+zP/sYf/a//2BptXuSv/Gd/46f/5B97/ubxRd89/8Ld//G//KcAELnP/aKTwf6j//P//aItmzoZWOsUkZER2aoS0KNpA0hrfnWVF30fvWViXdu6tqv9+vjR48f3H7797ntvvv3gd7727V//rW+cHB9tj7dvvP49d4IO4eNnD/7s/+x/88K9G+v5xbtvv13mGtHHjQIcvuZEwCBGjQwtBcj16vHF00fff+vGlz/1/O2z4+NNOd5UARBeVKZSLlt85623f+U3v/bplz++tDUNd27fODo6njYLiplImWeBTIJdONar/mB9+PRJXTZVfLteiel6Uffhjx8/+blf+cqVy71lqsrhcvIcdjPrkj4yRDXpLetEZoQXylLnR/ffOX/25OT07IM/DP+ZL8LRqvzC577v3/zX/o3f+spXXvnOdzbbzd3bNz/5iU+4J0UoCUFE9nUP7+6ekXYIaAdEpNTBaddB8BwYMIhgTHRYRAEkhnMdI4FVTSUY1zh3ws1UMtfeKaJAFQnRHk3FZOQnKNVwNk+CC8AASDEklQ4JpyuRvUN83O/SS5nsK7/1288urrbbKYCXP/kiEZT4C//BX/rkp1/4iS//QMt91aqQs81pUfuN7/zmt177rs+L+lTMdldX/+Af/sp/+0/8c6L2uR/85FLmLTYweCQgcAr4t/7Oz//zf+wnNzq1nt955fV/69/+C//uv/M/+dSLz/NAF4VQZ13eeOed/8tf+it//W/+3E/+V37q0dOnfd0/eXKh6B4+F/z9n/35J+++c//hw8urq69987XHT3d/+l/+sybwiHXvV+t+39a236+7q8gM0Wkz/erv/A6DGTnP87JM6Y4kihSLt773VoKyWbJ3SUoihQJSDho/AhYhQGb2frW/Ov/M3Rvf98LN09OjW6c3zo5Obmy3FVm0TlN95+GjV994560HT196+eO3bxxtt/PmaHu63S6bbZ0mAGoG993FRb88z9535+f7oqUUOzqyZbPuL59cXT18/OTBwydvP73cHJ9+6t5ZKaWWImKhXOYyALHGwSpOoWqSGSDTR/py7W3/5mvf+v4f/vGP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\" alt=\"59c9055aae4d4332a28e2bd482f2265e_image1.png\" rel=\"1\" /></p>\n<p><strong>Lukonde Mwila, Principal Technical Evangelist, SUSE</strong></p>\n<p>Lukonde is a Principal Technical Evangelist at SUSE, an AWS Container Hero, and a HashiCorp Ambassador. He has years of experience in application development, solution architecture, cloud engineering, and DevOps workflows. He is a life-long learner and is passionate about sharing knowledge through various mediums. Nowadays, Lukonde spends the majority of his time providing content, training, and support in the Kubernetes ecosystem and SUSE’s open-source container management stack.</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/a2efff38cea14753875974d603e10bd9_image.png\" alt=\"image.png\" /></p>\n<p><strong>Jeremy Cowan</strong></p>\n<p>Jeremy Cowan is a Specialist Solutions Architect for containers at AWS, although his family thinks he sells “cloud space”. Prior to joining AWS, Jeremy worked for several large software vendors, including VMware, Microsoft, and IBM. When he’s not working, you can usually find on a trail in the wilderness, far away from technology.</p>\n"}
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭
contact-us