首页 > 解决方案 > AWS EKS 自定义 AMI 托管节点组引导文件不存在

问题描述

以下是我为使用自定义 AMI EKS 托管节点组而执行的步骤。

  1. bootstrap_user_data 文件已创建并按照标准转换为 base64 格式。
#!/bin/bash
set -ex
B64_CLUSTER_CA= <My eks cluster Certificate authority value>
API_SERVER_URL= <My EKS cluster API server URl>
/etc/eks/bootstrap.sh <cluster-name> --b64-cluster-ca $B64_CLUSTER_CA --apiserver-endpoint $API_SERVER_URL   
  1. 猫 bootstrap_user_data | base64
  2. 使用以下数据通过 custom-configuration.json 文件创建的启动模板
   cat config_custom_ami.json
{
  "LaunchTemplateData": {
  "EbsOptimized": false,
  "ImageId": "ami-0e00c1f097aff7fe8",
  "InstanceType": "t3.small",
  "UserData": "bootstrap_user_data",
    "SecurityGroupIds": [
     "sg-0e9b58499f42bcd4b"
   ]
 }
}
  1. 安全组已选择 EKS 集群安全组,它是第一次创建 EKS 集群时自动创建的。

  2. 使用 eksctl 命令创建启动模板

aws ec2 create-launch-template  --region eu-central-1  --launch-template-name my-template-name   --version-description "first version "  --cli-input-json file://custom.config.json
  1. 使用 eksctl 命令创建节点组
aws eks create-nodegroup --region eu-central-1 --cluster-name my-cluster  --nodegroup-name my-node-group   --subnets subnet-<subnet1> subnet-<subnet2>  --node-role 'arn:aws:iam::123456789:role/EKSNODEGROUP'   --launch-template name=my-template-name

  1. 执行节点组创建命令后,创建节点组需要 20 分钟,同时所需的 VM 被创建为 Auto Scaling 组的一部分,但节点组在 20 分钟后无法加入集群。

  2. 使用 SSH 连接到您的 Amazon EKS 工作程序节点实例并检查 kubelet 代理日志

ssh -i my.key ec2-user@1.2.3.4
sudo -i
cd /etc/eks/bootstrap.sh 
-bash: cd: /etc/eks: No such file or directory

您能否请一些帮助,为什么我的 bootstrap.sh 文件不存在于 /etc/eks 位置,另一方面在 AWS 控制台启动模板 - 高级选项卡 - 我可以看到我的用户数据以解码格式。

标签: amazon-eks

解决方案


推荐阅读