阿里云 eci 折腾 一次注定失败的尝试

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 尝试使用阿里云的eci搭建开箱即用的远程开发环境,折腾记录(已失败)

起因

笔者早已对能够实现开箱即用、体验与本地开发并无多大区别的web IDE 好奇不已,想要自己搭建一个快速切换开发环境的应用。一开始的想法是通过切换云服务器的镜像来实现,但此方法过于繁琐,每次切换都需要消耗大量的时间,且实际上并不需要更换操作系统,不够优雅,遂放弃。最近开始使用vs code + remote ssh 进行远程开发,remote ssh 的效果相当不错,而快速切换开发环境可以通过不同的docker 镜像来实现。但我云服务器的使用时间已经所剩无几,且服务器包年对于学生来说,花销着实不小。在了解到eci之后,想要尝试通过vs code 远程连接eci 来实现远程开发。

经过

创建 eci 容器及容器组

使用eci 的第一步即为创建 eci 容器及容器组,容器组包含一个或多个容器,创建 eci 时只能以容器组为单位。实际上一个容器组是由一个特定规格的 ecs 来作为宿主机的,因此容器的总资源规格只能小于等于容器组选定的ecs资源。具体操作步骤如官方教程所示,值得注意的是 eci 具有生命周期的概念,一旦运行状态变为 succeed ,容器占有的资源将会被释放,无法重新启动该容器。

挂载OSS

在创建 eci 容器时有通过 oss 持久化存储的选项,但在实际操作过程中,发现即便创建了具有所需的权限的角色,在网页上创建 eci 时仍然无法刷新出该角色,怀疑只能通过 open API 进行 k8s 设置时才能成功。 使用已有ip时也存在类似的问题,即便已经存在ip,也无法在页面刷新出该选项。

连接容器

对我来说最关键的一步就在此处,仅能通过 workbench 远程连接进入容器(如果能够ssh连接到宿主机那就是另外的价了,哈哈哈)。由于 容器 本身只有一个进程的限制,无法在进入容器后开启 sshd 建立 ssh 连接,且无法将 sshd 直接设为启动命令,这将导致 容器 无法正常运行,进入终止状态。

后续仔细思考后得出结论,ssh 首先需要通过 ip 与宿主机建立连接,但显然阿里云不可能提供ssh连接到宿主机的方式,那相当于 ecs 了。而且宿主机到容器之间存在端口映射,不可能直接通过 ssh 连接容器。

结论

在颇费一番周折后,发现 vs code 远程开发的前提条件 ssh 连接都无法实现,本方案从一开始就注定失败,容器服务虽然能够实现随心所欲变换开发环境,但无法提供 ssh 连接,无法实现远程开发,而ecs 虽然能够实现远程开发,但价格较贵且无法快速切换开发环境,ecs 开启容器服务虽然能够实现目的,但还是得借助价格不菲的 ecs …… 希望有一天介于 eci 和 ecs 的中间产物能够出现。


补充

之前被vs code 影响了思绪,实际上,不一定非要通过 vs code ssh 连接容器。可以考虑在容器中部署 code server ,直接在浏览器中访问,也能实现相同的效果!!!我觉得值得一试。

相关实践学习
基于ACK Serverless轻松部署企业级Stable Diffusion
本实验指导您在容器服务Serverless版(以下简称 ACK Serverless )中,通过Knative部署满足企业级弹性需求的Stable Diffusion服务。同时通过对该服务进行压测实验,体验ACK Serverless 弹性能力。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——专有版操作步骤
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——专有版操作步骤自制脑图
145 1
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——专有版操作步骤
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot——特殊实例
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot——特殊实例自制脑图
399 4
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot——创建ECI Pot
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot——创建ECI Pot自制脑图
352 1
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot自制脑图
287 1
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——运行场景
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——运行场景自制脑图
278 1
|
7月前
|
弹性计算 缓存 Kubernetes
什么是阿里云弹性容器实例?弹性容器实例优势及应用场景介绍
弹性容器实例是阿里云的云服务器产品,使用弹性容器实例之后,用户无需管理底层 ECS 服务器,只需要提供打包好的镜像,即可运行容器,与阿里云容器服务无缝对接并仅为容器实际运行消耗的资源付费。本文介绍了阿里云弹性容器实例的、功能特性、产品优势及应用场景。
什么是阿里云弹性容器实例?弹性容器实例优势及应用场景介绍
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——易用性
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——易用性自制脑图
130 2
|
安全 容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——安全
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——安全自制脑图
102 2
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——操作步骤
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——操作步骤自制脑图
272 1
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——ECI关键技术
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——ECI关键技术自制脑图
133 1