Forest-L 本项目自动化在 AWS 中部署 EKS和 KubeSphere 。有着EKS提供的 Kubernetes 集群环境,更有着通过 KubeSphere 容器平台构建并管理云原生应用程序。 以 us-east-1 创建新的 VPC 脚本为例描述。 1、文档说明 关于 KubeSphere on AWS 的详细安装文档请参考KubeSphere on AWS 关于自动化安装脚本,详细文档中有入口,此处单独列出在 us-east-1 创建新的 VPC 链接 ,Deploy KubeSphere into a new VPC on AWS 2、CloudFormation 脚本细节说明 通常需要输入的参数:Number of Availability Zones(选择几个 Zones)、Availability Zones(根据上步的个数选择具体zone)、Allowed external access CIDR(设置外网 IP 段可访问该EKS集群,默认 0.0.0.0/0)、SSH key name(外网访问时ssh key)、KubeSphereConsolePassword(KubeSphere 控制台登录密码设置)。 (可选项参数),需要开启什么服务,将默认 false 改成 true,如 Devops 等。 开始部署时,最好打开堆栈创建选项–>失败时回滚–>已禁用项,此界面在配置堆栈选择界面最下面。 审核 KubeSphere 界面最下面功能处,两个“我确认“都需要勾选。 此CloudFormation脚本总共有4个界面,分别为:先决条件-准备模板、指定堆栈详细信息、配置堆栈选项和审核KubeSphere 四个界面。 3、安装部署流程 打开上面“Deploy KubeSphere into a new VPC on AWS” 链接,登录自己账号,然后点击下一步。 输入如下参数值:Number of Availability Zones、Availability Zones 、Allowed external access CIDR、SSH key name、KubeSphereConsolePassword,然后点击下一步。 在配置堆栈选项界面最下面,打开堆栈创建选项–>失败时回滚–>已禁用项。然后点击下一步。 在审核 KubeSphere 界面最下面,两个“我确认“都需要勾选。然后点击创建堆栈。 4、部署过程中遇到问题怎么解决? 当部署过程报错时,因为在3步骤中失败时回滚已禁用,所以能看到相应的报错日志。 当报错时,点击最左边最上面那个报错堆栈(一定要看最上面那个堆栈报错信息),然后点击事件(Events),就会显示报错原因。 常见问题,包括权限问题,资源受限问题,资源已存在,内部EKS报错等问题,如下截图报错信息。 当在某个区已存在 EKS 集群时,需要在输入参数的”指定堆栈详细界面“中”Per region shared resources“项 默认 Yes 改成 No。 当在某个账号下存在 EKS 集群时,需要在输入参数的“指定堆栈详细界面”中”Per-account shared resources“项默认 Yes改成 No。 当在某个区准备好堡垒机时,需要在输入参数的”指定堆栈详细界面”中“Provision bastion host“项默认 Enable 改成Disabled。 在某个区域删除 CloudFormation 脚本时,可能会发生删除失败情形,需要再点击删除按钮,同时到 IAM 下删除"eks-"打头role。 在某个区域部署时,提前检查该区域下 IAM 下是否有”eks-“打头的role,如果存在,检查该账号下是否有别的EKS集群,如果有,参考”Per-account shared resources“和”Per-account shared resources“设置,否则删除”eks-“打头的role。 在同区部署 CloudFormation 脚本时,一定要把同区之前部署报错的脚本删掉再部署。 5、报错信息附件 如果堆栈在 EKSControlPlane 步骤报错了,说明是创建 EKS 报错,具体报错信息看 Events 下Status reason原因,比如权限/Role。 资源存在报错 资源不足
Forest-L https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html https://aws-quickstart.github.io/quickstart-qingcloud-kubesphere/index-cn.html
ruiyaoOps 部署报错与处理方式: No transform named 682804326264::QuickStartParameterResolver found. 在没有其他 EKS 集群的时候 不能把 PerAccountSharedResources 和 PerRegionSharedResources 设置为 no,它将创建了一堆 lambda 函数以及几个 CFN 宏,他们不存在会导致 CFN 阻塞。
ruiyaoOps KubeSphere on AWS v3.1.0 删除堆栈报错 这是由于在创建 KubeSphere 前为了防止 ks-installer 部署错误,先创建了 admin 用户和 SA 并更新了密码,在删除 KubeSphere 过程中会自动删除这部分资源,导致堆栈删除时找不到这些资源。 该报错会导致堆栈删除失败,但不会有残留,只需再手动删除时忽略 KubeSphereUser, KubeSphereUpdatePassword 即可。
bowen-huang ruiyaoOps 已经定位到原因了。查看了AWS堡垒机文档https://aws-quickstart.github.io/quickstart-linux-bastion/ 不支持在cn-northwest-1区部署。