It is a shame karpenter is AWS only. I was thinking about how our k8s autoscaler could be better and landed on the same kind of design as karpenter where you work from unschedulable pods backwards. Right now we have an autoscaler which looks at resource utilization of a node pool but that doesn’t take into account things like topology spread constraints and resource fragmentation.
Azure Linux support has been added recently [1], and so is available for self-hosted Karpenter (you can specify "imageFamily: AzureLinux" in AKSNodeClass), will be rolled out for the managed experience (Node Auto Provisioning) soon.