以下示例以golang web程序为例,使用kuboard部署服务。
一、镜像打包
需要搭建私有镜像仓库,或者使用官网dcoker仓库。
编译应用程序
编译服务,生成可执行文件, 命令如下:
go build -o example
编写Dockerfile文件
简单示例如下:
#基础镜像系统版本
FROM alpine:3.12
#创建工作目录
RUN mkdir "/app"
#指定工作目录
WORKDIR "/app"
#将可执行文件拷贝到工作目录
COPY example /app/app
#给工作目录添加权限
RUN chmod +x /app/app
#指定程序执行命令
ENTRYPOINT ["./app"]
将可执行文件example与Dockerfile放置同一目录下:
准备环境
构建镜像:
docker build -f Dockerfile -t example:v1.0.0 .
-f: 指定dockerfile 文件
-t: 镜像名称
.:当前目录
\
登录私有仓库:
登录harbor: docker login xwdr.harbor.com
修改tag名称, tag名称加上私有仓库地址和仓库名:
docker tag example:v1.0.0 xwdr.harbor.com/test/example:v1.0.0
推送镜像至私有仓库:
docker push xwdr.harbor.com/test/example:v1.0.0
二、Kuboard部署服务
创建工作负载
创建基本信息:
服务类型: Deployment
服务分层: 微服务层(Kuboard使用这个字段确定将部署显示在微服务架构的哪个分层)
服务名称: example(服务分层的前缀 + 服务名 组成最终的 K8S Deployment name)
副本数: 1(replicas)
添加工作容器信息:
添加镜像,私有仓库需要配置密钥
密文创建如下:
容器名称: example
镜像: xwdr.harbor.com/test/example:v1.0.0
magePullSecret: 需要自己配置私有仓库
容器端口:8080,也可以在dockerfile设置:EXPOSE 8080
抓取策略: Always
创建服务及路由:
点击保存即可。
服务部署成功如下:
服务测试
查看服务对外端口:
服务可以正常调用: