

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EKS 起動テンプレートをカスタマイズする
<a name="eks-launch-templates"></a>

AWS Batch Amazon EKS の では、起動テンプレートがサポートされています。起動テンプレートでできることには制約があります。

**重要**  
EKS AL2 AMIs、 は AWS Batch を実行します`/etc/eks/bootstrap.sh`。`/etc/eks/bootstrap.sh` を起動テンプレートや cloud-init user-data スクリプトでは実行しないでください。[bootstrap.sh ](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh) には `--kubelet-extra-args` パラメータ以外にもパラメータを追加できます。これを行うには、`AWS_BATCH_KUBELET_EXTRA_ARGS` `/etc/aws-batch/batch.config` ファイルに変数を設定します。詳細は以下の例を参照してください。
EKS AL2023 の場合、 は EKS の [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec) AWS Batch を使用してインスタンスを EKS クラスターに参加させます。 AWS Batch は EKS クラスターの [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec) に [ClusterDetails](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#clusterdetails) を入力するため、それらを指定する必要はありません。

**注記**  
は値を上書きするため AWS Batch 、起動テンプレートで以下の[https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)設定は行わないことをお勧めします。詳細については、「[Kubernetes ノードの責任分担](eks-ce-shared-responsibility.md)」を参照してください。  
`Taints`
`Cluster Name`
`apiServerEndpoint`
`certificatAuthority`
`CIDR`
プレフィックス `batch.amazonaws.com/` が付いたラベルを作成しないでください

**注記**  
[CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) を呼び出した後に起動テンプレートが変更された場合は、[https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) を呼び出して代替用の起動テンプレートのバージョンを評価する必要があります。

**Topics**
+ [`kubelet` 追加因数を追加する](#kubelet-extra-args)
+ [コンテナランタイムを設定する](#change-container-runtime)
+ [Amazon EFS ボリュームをマウントする](#mounting-efs-volume)
+ [IPv6 サポート](#eks-ipv6-support)

## `kubelet` 追加因数を追加する
<a name="kubelet-extra-args"></a>

AWS Batch は、 `kubelet` コマンドへの引数の追加をサポートしています。サポートされるパラメータのリストについては、「*Kubernetes ドキュメント*」の「[https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/)」 を参照してください。EKS AL2 AMI の次の例では、`{{--node-labels mylabel=helloworld}}` が `kubelet` コマンドラインに追加されています。

```
MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

      --==MYBOUNDARY==
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      mkdir -p /etc/aws-batch

      echo AWS_BATCH_KUBELET_EXTRA_ARGS=\"{{--node-labels mylabel=helloworld}}\" >> /etc/aws-batch/batch.config

      --==MYBOUNDARY==--
```

EKS AL2023 AMI の場合、ファイル形式は YAML です。サポートされるパラメータのリストについては、「*Kubernetes ドキュメント*」の「[https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)」 を参照してください。EKS AL2023 AMI の次の例では、`{{--node-labels mylabel=helloworld}}` が `kubelet` コマンドラインに追加されています。

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: application/node.eks.aws

apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  kubelet:
    flags:
    - --{{node-labels=mylabel=helloworld}}

--==MYBOUNDARY==--
```

## コンテナランタイムを設定する
<a name="change-container-runtime"></a>

環境変数を使用して AWS Batch `CONTAINER_RUNTIME`、マネージドノードでコンテナランタイムを設定できます。次の例では、`bootstrap.sh` コンテナランタイムを実行時に `containerd` を設定しています。詳細については、「*Kubernetes ドキュメント*」の「 [https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd)」を参照してください。

最適化された `EKS_AL2023` または `EKS_AL2023_NVIDIA` AMI を使用している場合は、**containerd** のみがサポートされているため、コンテナランタイムを指定する必要はありません。

**注記**  
`CONTAINER_RUNTIME` 環境変数は `bootstrap.sh` の `--container-runtime` オプションと同等です。詳細については、「*Kubernetes ドキュメント*」の「 [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options)」を参照してください。

```
MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

      --==MYBOUNDARY==
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      mkdir -p /etc/aws-batch

      echo CONTAINER_RUNTIME=containerd >> /etc/aws-batch/batch.config

      --==MYBOUNDARY==--
```

## Amazon EFS ボリュームをマウントする
<a name="mounting-efs-volume"></a>

起動テンプレートを使用してボリュームをノードにマウントできます。次の例では、`cloud-config`、`packages` および `runcmd` の設定が使用されています。詳細については、「*cloud-init ドキュメント*」の「[クラウド設定例](https://cloudinit.readthedocs.io/en/latest/topics/examples.html)」を参照してください。

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

packages:
- amazon-efs-utils

runcmd:
- file_system_id_01=fs-abcdef123
- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}
- echo "${file_system_id_01}:/ ${efs_directory} efs _netdev,noresvport,tls,iam 0 0" >> /etc/fstab
- mount -t efs -o tls ${file_system_id_01}:/ ${efs_directory}

--==MYBOUNDARY==--
```

このボリュームをジョブで使用するには、[RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) の [EKSProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html) パラメーターにボリュームを追加する必要があります。次の例は、仕事定義の大部分です。

```
{
    "jobDefinitionName": "MyJobOnEks_EFS",
    "type": "container",
    "eksProperties": {
        "podProperties": {
            "containers": [
                {
                    "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                    "command": ["ls", "-la", "/efs"],
                    "resources": {
                        "limits": {
                            "cpu": "1",
                            "memory": "1024Mi"
                        }
                    },
                    "volumeMounts": [
                        {
                            "name": "{{efs-volume}}",
                            "mountPath": "{{/efs}}"
                        }
                    ]
                }
            ],
            "volumes": [
                {
                    "name": "{{efs-volume}}",
                    "hostPath": {
                        "path": "{{/mnt/efs}}"
                    }
                }
            ]
        }
    }
}
```

ノードでは、Amazon EFS ボリュームが `/mnt/efs` ディレクトリにマウントされます。Amazon EKS ジョブのコンテナでは、ボリュームは `/efs` ディレクトリにマウントされます。

## IPv6 サポート
<a name="eks-ipv6-support"></a>

AWS Batch は、IPv6 アドレスを持つ Amazon EKS クラスターをサポートします。 AWS Batch サポートにカスタマイズは必要ありません。ただし、始める前に、「*Amazon EKS ユーザーガイド*」の「[ポッドとサービスへの IPv6 アドレスの割り当て](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html)」で説明されている考慮事項と条件を確認することをお勧めします。