手动打镜像推送阿里云镜像仓库并部署EDAS

2023年 10月 27日 54.4k 0

前言

在以往的工作中,笔者一直都是使用阿里云EDAS基于ECS集群来进行项目应用的部署。而新项目需要切换为K8s集群部署,在此过程中也踩了一些坑,因此创作本文来作为一个使用记录。

什么是EDAS

企业级分布式应用服务EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的云原生PaaS平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持Spring Cloud和Apache Dubbo(以下简称Dubbo)等微服务运行环境,帮助应用轻松上云。

以上为阿里云官方提供的EDAS功能图

底层服务器环境

在我们开发完一个应用之后,通过EDAS来进行应用的托管。本文对于EDAS的功能不做拓展,而是主要说说基于底层服务器环境的部署。通过官方给出的功能图可以看到,EDAS底层服务器环境可以基于ECS集群、K8s集群或是混合云集群

在企业级应用中,通常使用ECS集群或K8s集群

ECS集群部署

ECS集群的特点是比较轻量级,它为用户提供了默认的应用运行环境(Java环境、tomcat环境),当我们需要通过EDAS来托管我们的一个后台java微服务时,我们只需要在创建应用时选择集群类型为ECS集群,选择应用运行环境为Java,并指定Jdk版本,最后把我们的jar包上传即可简单完成应用的部署。

K8s集群部署

K8s集群的使用相对来说比较麻烦,但是自由度比较高,具体使用步骤如下:

1、由于在EDAS中不支持创建K8s集群,所以我们需要先自己创建集群,在集群中添加我们的云服务器ECS资源,再将集群导入到EDAS中。

2、创建容器镜像仓库

3、制作应用镜像(docker)

4、在EDAS中创建应用,选择集群类型为容器服务K8s集群,选择我们创建的集群,并选择我们容器镜像仓库中的一个应用镜像,最后完成应用的部署。

手动打镜像推送阿里云镜像仓库

下面来具体操作如何将我们的jar包打成镜像并推送至阿里云镜像仓库:

环境准备:阿里云Linux服务器、docker环境

一、文件准备

在linux服务器上新建目录:/home/admin/images/test

目录下有两个文件:test.jar、Dockerfile

test.jar为我们需要打镜像部署的jar包

Dockerfile为用来构建docker镜像的文本文件

Dockerfile文件内容如下:

# 由于笔者服务器为内网服务器,所以使用了自己已经打好的jdk8镜像作为基础镜像,外网环境下使用openjdk:8-jdk即可
FROM jdk8:381

# 配置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# test.jar为需要打镜像的jar包,和Dockerfile同一目录下
COPY test.jar /test.jar

EXPOSE 9090
ENTRYPOINT ["java","-jar","/test.jar"]

二、制作镜像

cd至Dockerfile文件目录下,执行以下命令

//docker build -t [镜像名称]:[镜像版本号] .
docker build -t test:1.0 .

三、查看镜像

docker images

这里需要记住我们刚打好镜像的imageId

四、推送镜像至阿里云镜像仓库

4.1 登录镜像仓库
docker login --username=[镜像仓库username] [镜像仓库地址] -p [镜像仓库密码]
4.2 打镜像标签
docker tag [imageId] [镜像仓库地址]:[镜像版本号]
4.3 推送镜像至阿里云仓库
docker push [镜像仓库地址]:镜像版本号
4.4 登录阿里云镜像仓库页面,查看推送的镜像

4.5 部署

在创建应用时选择K8s集群部署

点击下一步,选择我们的镜像仓库以及镜像版本

最后点击确认创建即可

写到最后

其实对于整个过程来说,不仅仅是本文提到的这些,例如:

一、服务器为内网服务器,且服务器中缺乏一些基础镜像,如centos、Jdk镜像。这就需要在外网先搭建一套docker环境,然后将这些需要用到的基础镜像打包,然后拷贝至内网服务器进行使用

二、后台需要配置域名解析,由于容器的运行由EDAS托管,也就无法使用docker
run 的--add-host命令进行配置

...

更详细的说明有时间再捋一捋吧,今天先鸽了~

end...

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论