构建自制应用
进入KUBESPHERE面板后,点击应用负载-应用,点击自制应用
点击构建自制应用
进入构建应用面板后,需要先填写应用的名称和描述信息,填写完成后点击下一步
进入到服务组件添加界面,这里我们需要添加有状态的服务
设置服务基本信息,将服务名称等信息完善后点击下一步
添加容器镜像
进入到容器镜像构建界面,我们需要先拉取要构建容器的镜像,点击添加容器镜像
进入添加镜像界面后,我们在Dockerhub一行填写需要拉取的镜像名,如果不清楚自己需要拉取的镜像全名叫什么,可以去到Dockerhub官网去搜索镜像名并复制粘贴到这里,或者也可以在界面这里点开Dockerhub的右侧图标打开搜索面板进行搜索
设置容器构建需要分配的资源
设置好需要拉取的镜像后,需要设置容器构建需要分配的资源,以mysql数据库为例,可以设置分配2个cpu核心和4G内存
资源分配后,设置容器端口和服务端口,一般情况下,默认选择tcp协议或http协议,并且容器端口和服务端口保持一致
设置好端口后,如果容器有其他特殊的设置,例如需要添加启动参数或设置环境变量,可以在下面的选项进行配置。
以mysql容器配置为例:需要设置mysql数据库大小写不敏感和mysql的root用户密码。先勾选启动命令并添加参数--lower_case_table_names=1,然后勾选环境变量,添加mysql的root用户密码变量MYSQL_ROOT_PASSWORD,并在对应的变量值填写框内填写root用户密码
挂载
容器镜像配置完成后,点击下一步来到挂载存储界面,可以在这里添加存储卷进行挂载操作,并可以将容器内的目录映射到存储卷上
首选点击添加存储卷
进入添加界面后选择存储卷进行挂载,如果没有预先设置存储卷,也可以使用临时存储卷进行挂载,挂载存储卷后,选择是否需要映射目录和映射的方式,同时填写需要映射的目录路径
挂载存储配置完成后,点击下一步到高级设置,勾选开启会话保持,设置为最大时长86400
设置完成后,点击添加按钮,再点击下一步进入到路由规则配置界面,可以通过配置路由规则将服务映射到外网
点击添加路由规则,在‘/‘后面编辑路由规则,并配置对应的服务端口后,点击确定
所有设置完成后,点击创建,面板将会自动拉取镜像创建容器并运行
其他服务如eip后端,nginx前端,redis缓存等服务都可以按照上述步骤操作
需要注意的是,eip后端和nginx前端需要提前找一台可以连接外网的服务器,进行docker镜像打包上传到Dockerhub上发布。其中,eip后端镜像需要包含以下文件:eip-boot.jar,application-uat.yml;nginx前端需要提前将eip的前端文件存放在html目录下。
Eip后端服务的镜像打包目录如下
Eip后端服务对应的Dockerfile配置如下:
FROM jre:1.8
MAINTAINER heyifan "heyf@jee-soft.cn"
ENV LANG C.UTF-8
RUN /bin/sh -c 'mkdir -p /home/hotent && rm -f /etc/machine-id && rm -f /var/lib/dbus/machine-id && systemd-machine-id-setup'
ADD eip-boot.jar /home/hotent
ADD application-uat.yml /home/hotent
EXPOSE 8088
ENTRYPOINT ["sh", "-c", "java -Xms2048m -Xmx4096m -jar -Duser.timezone=GMT+08 /home/hotent/eip-boot.jar --spring.config.location=classpath:/config/application.yml,/home/hotent/application-uat.yml", "&"]
在准备好eip-boot.jar,application-uat.yml,Dockerfile文件后即可在当前目录执行docker build命令打包成镜像,并使用docker push命令将镜像上传到Dockerhub。
Nginx前端服务的镜像打包目录如下
Nginx前端服务对应的Dockerfile配置如下:
FROM nginx
MAINTAINER heyifan "heyf@jee-soft.cn"
ENV LANG C.UTF-8
ADD html /usr/share/nginx/html/
在准备好html前端文件,Dockerfile文件后即可在当前目录执行docker build命令打包成镜像,并使用docker push命令将镜像上传到Dockerhub。