

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 启动托管节点组的模板支持
<a name="launch-template-support"></a>

[eksctl 支持使用提供的 EC2 启动模板启动托管节点组。](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)这为节点组启用了多个自定义选项，包括提供自定义 AMI 和安全组，以及传递用于节点引导的用户数据。

## 使用提供的启动模板创建托管节点组
<a name="_creating_managed_nodegroups_using_a_provided_launch_template"></a>

```
# managed-cluster.yaml
# A cluster with two managed nodegroups
---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: managed-cluster
  region: us-west-2

managedNodeGroups:
  - name: managed-ng-1
    launchTemplate:
      id: lt-12345
      version: "2" # optional (uses the default launch template version if unspecified)

  - name: managed-ng-2
    minSize: 2
    desiredCapacity: 2
    maxSize: 4
    labels:
      role: worker
    tags:
      nodegroup-name: managed-ng-2
    privateNetworking: true
    launchTemplate:
      id: lt-12345
```

## 升级托管节点组以使用不同的启动模板版本
<a name="_upgrading_a_managed_nodegroup_to_use_a_different_launch_template_version"></a>

```
eksctl upgrade nodegroup --name=managed-ng-1 --cluster=managed-cluster --launch-template-version=3
```

**注意**  
如果启动模板使用自定义 AMI，则新版本也应使用自定义 AMI，否则升级操作将失败

如果启动模板未使用自定义 AMI，也可以指定要升级到的 Kubernetes 版本：

```
eksctl upgrade nodegroup --name=managed-ng-1 --cluster=managed-cluster --launch-template-version=3 --kubernetes-version=1.17
```

## 关于自定义 AMI 和启动模板支持的注意事项
<a name="_notes_on_custom_ami_and_launch_template_support"></a>
+ 提供启动模板时，不支持以下字段：`instanceType`、、、、`ami`、`ssh.allow`、`ssh.sourceSecurityGroupIds`、`securityGroups`、`instancePrefix`、`instanceName`、`ebsOptimized`、`volumeEncrypted`、`volumeKmsKeyID`、`volumeIOPS`、`maxPodsPerNode`、`preBootstrapCommands`、`overrideBootstrapCommand`和`disableIMDSv1`。
+ 使用自定义 AMI (`ami`) 时，还`overrideBootstrapCommand`必须设置为执行引导。
+  `overrideBootstrapCommand`只能在使用自定义 AMI 时进行设置。
+ 提供启动模板时，节点组配置中指定的标签仅适用于 EKS 节点组资源，不会传播到 EC2 实例。