[英]AWS mixed cluster with EC2 and fargate instances
我將 AWS CDK 用於我的基礎設施即代碼(下面的 C# .NET 中的 CDK 代碼片段)。
我創建了一個 VPC,如下所示:
// vpc (testing)
this.vpc = new Vpc(this, "vpc", new VpcProps() {
MaxAzs = 1,
NatGateways = 1
});
我創建了一個集群,如下所示:
// cluster
this.cluster = new Cluster(this, "cluster", new ClusterProps() {
Vpc = this.vpc
});
我有一個 Fargate 任務的工作人員定義,如下所示:
// worker
this.workerDefinition = new FargateTaskDefinition(this,
"worker-definition",
new FargateTaskDefinitionProps() {
Cpu = 256,
MemoryLimitMiB = 512
}
);
我有如下的 Fargate 工作程序服務,它使用實例計數和任務定義將工作程序服務與集群聯系起來:
var worker = new FargateService(this, "worker", new FargateServiceProps() {
Cluster = this.cluster,
DesiredCount = k, // up to k worker instances
TaskDefinition = this.workerDefinition
});
問題:
您運行的 Fargate 任務永遠不會在您創建和管理的 EC2 實例上運行,它們將在 AWS 管理的計算容量上運行。 使用 Fargate 的好處之一是您不必擔心管理 EC2 實例。
要回答您的問題:
如果您想在您創建的 EC2 實例上運行任務,則需要使用 EC2 啟動模式啟動任務。
如果您使用 FARGATE 啟動類型,Fargate 將在 AWS 管理的計算容量上運行您的任務。 您運行的任何 EC2 實例都不會用於這些任務。
不可以,您創建並添加到集群的 EC2 實例僅用於使用 EC2 啟動類型啟動的任務。
運行服務時,ECS 服務調度程序將根據您為服務定義的擴展標准啟動或停止任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.