KubernetesAutoscaler

Example Usage

cluster-autoscaler in Kubernetes Cluster.

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.vpc.VpcFunctions;
import com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
import com.pulumi.alicloud.cs.CsFunctions;
import com.pulumi.alicloud.cs.inputs.GetManagedKubernetesClustersArgs;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.ess.ScalingGroup;
import com.pulumi.alicloud.ess.ScalingGroupArgs;
import com.pulumi.alicloud.ess.ScalingConfiguration;
import com.pulumi.alicloud.ess.ScalingConfigurationArgs;
import com.pulumi.alicloud.cs.KubernetesAutoscaler;
import com.pulumi.alicloud.cs.KubernetesAutoscalerArgs;
import com.pulumi.alicloud.cs.inputs.KubernetesAutoscalerNodepoolArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
final var name = config.get("name").orElse("autoscaler");
final var defaultNetworks = VpcFunctions.getNetworks();
final var defaultImages = EcsFunctions.getImages(GetImagesArgs.builder()
.owners("system")
.nameRegex("^centos_7")
.mostRecent(true)
.build());
final var defaultManagedKubernetesClusters = CsFunctions.getManagedKubernetesClusters();
final var defaultInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.cpuCoreCount(2)
.memorySize(4)
.build());
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.vpcId(defaultNetworks.applyValue(getNetworksResult -> getNetworksResult.vpcs()[0].id()))
.build());
var defaultScalingGroup = new ScalingGroup("defaultScalingGroup", ScalingGroupArgs.builder()
.scalingGroupName(name)
.minSize(var_.min_size())
.maxSize(var_.max_size())
.vswitchIds(defaultNetworks.applyValue(getNetworksResult -> getNetworksResult.vpcs()[0].vswitchIds()[0]))
.removalPolicies(
"OldestInstance",
"NewestInstance")
.build());
var defaultScalingConfiguration = new ScalingConfiguration("defaultScalingConfiguration", ScalingConfigurationArgs.builder()
.imageId(defaultImages.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
.securityGroupId(defaultSecurityGroup.id())
.scalingGroupId(defaultScalingGroup.id())
.instanceType(defaultInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
.internetChargeType("PayByTraffic")
.forceDelete(true)
.enable(true)
.active(true)
.build());
var defaultKubernetesAutoscaler = new KubernetesAutoscaler("defaultKubernetesAutoscaler", KubernetesAutoscalerArgs.builder()
.clusterId(defaultManagedKubernetesClusters.applyValue(getManagedKubernetesClustersResult -> getManagedKubernetesClustersResult.clusters()[0].id()))
.nodepools(KubernetesAutoscalerNodepoolArgs.builder()
.id(defaultScalingGroup.id())
.labels("a=b")
.build())
.utilization(var_.utilization())
.coolDownDuration(var_.cool_down_duration())
.deferScaleInDuration(var_.defer_scale_in_duration())
.build(), CustomResourceOptions.builder()
.dependsOn(
alicloud_ess_scaling_group.defalut(),
defaultScalingConfiguration)
.build());
}
}

Properties

Link copied to clipboard
val clusterId: Output<String>

The id of kubernetes cluster.

Link copied to clipboard

The cool_down_duration option of cluster-autoscaler.

Link copied to clipboard

The defer_scale_in_duration option of cluster-autoscaler.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val urn: Output<String>
Link copied to clipboard

Enable autoscaler access to alibabacloud service by ecs ramrole token. default: false

Link copied to clipboard
val utilization: Output<String>

The utilization option of cluster-autoscaler.