zoukankan      html  css  js  c++  java
  • 一键制作镜像并发布到k8s

    Antdeploy是我开发的一款开源一键部署工具,支持将.net应用(支持netcore)一键部署到远程服务器,并支持以下3种部署方案

    • 支持docker一键部署(支持netcore)
    • 支持iis一键部署(支持netcore和framework)
    • 支持windows服务一键部署(支持netcore和framework)
    • (支持增量发布)(支持一键回滚)(支持点火)(支持选择特定文件发布)(支持查看发布记录)
    • 支持脱离Visual Studio独立使用(跨平台支持windows系统和mac系统)

    github开源源代码地址

    插件下载地址

    最近我在研究k8s,最近新增了关于k8s的功能目的是将AntDeploy应用到k8s的应用一键部署上面

    配合k8s的新需求点

    1. 如何将本地应用一键打包成docker镜像并上传到镜像仓库
    2. 有了镜像后如何在k8s进行快速部署
    3. 如何利用AntDeploy一键完成上面2步骤!

    本篇介绍 如何一键打包成docker镜像并上传到镜像仓库

    本篇演示环境:

    1. vs2019 并且安装了 AntDeploy插件
    2. 本地有一个虚拟机centos7 并且 安装了docker

    本篇应用目标:

    1. 创建一个 netcore web应用
    2. 一键部署镜像并上传到阿里云的镜像仓库
    3. 在k8s的dashbord上deploy应用

    创建一个netcore web应用

    image

    项目名称取名: testimage

    image

    选择模板: Web应用程序

    image

    创建完成 如下图:

    image

    安装了AntDeploy插件后 点击右键 找到 AntDeploy

    image

    点击 AntDeploy 出现

    image

    配置AntDeploy【只需要首次配置】

    点击发布配置

    image

    AntDeploy的配置说明:一个环境对应多台服务器

    创建1个环境 取名叫 test 点击 添加环境按钮

    image

    然后在 test 环境下 添加linux服务器

    image

    选择 Docker发布, 选择我们刚刚创建的环境 test

    image

    image

    选择 配置镜像上传 填写阿里云容器镜像服务的参数

    image

    image

    因为我们是测试,没有在项目里面添加Dockerfile 那么AntDeploy会创建默认的Dockfile 默认的Dockefile内容会在 发布日志里面进行展示

    点击 发布进行一键制作 docker image 并且上传到阿里镜像仓库

    image

    完成进度展示:

    image

    发布日志非常详细:

    11:54:11|INFO|The Porject ENTRYPOINT name:testimage.dll,DotNetSDK.Version:2.2  
    11:54:11|INFO|-----------------Start publish[Ver:7.10]-----------------  
    11:54:11|INFO|Visual Studio Version : 16.0  
    11:54:11|INFO|CurrentProjectFolder:  file://C:UsersAdministratorsource
    epos	estimage	estimage#link4
    11:54:11|INFO|current project Path:C:UsersAdministratorsource
    epos	estimage	estimage	estimage.csproj  
    11:54:11|INFO|dotnet publish "C:UsersAdministratorsource
    epos	estimage	estimage	estimage.csproj" -c Release -o "C:UsersAdministratorsource
    epos	estimage	estimageinReleasedeploy_docker	est"  
    11:54:12|INFO|版权所有(C) Microsoft Corporation。保留所有权利。  
    11:54:12|INFO|  C:UsersAdministratorsource
    epos	estimage	estimage	estimage.csproj 的还原在 44.05 ms 内完成。  
    11:54:12|INFO|  C:UsersAdministratorsource
    epos	estimage	estimage	estimage.csproj 的还原在 44.05 ms 内完成。  
    11:54:15|INFO|  testimage -> C:UsersAdministratorsource
    epos	estimage	estimageinRelease
    etcoreapp2.2	estimage.dll  
    11:54:15|INFO|  testimage -> C:UsersAdministratorsource
    epos	estimage	estimageinRelease
    etcoreapp2.2	estimage.Views.dll  
    11:54:15|INFO|  testimage -> C:UsersAdministratorsource
    epos	estimage	estimageinRelease
    etcoreapp2.2	estimage.Views.dll  
    11:54:15|INFO|  testimage -> C:UsersAdministratorsource
    epos	estimage	estimageinReleasedeploy_docker	est  
    11:54:16|INFO|  testimage -> C:UsersAdministratorsource
    epos	estimage	estimageinReleasedeploy_docker	est  
    11:54:16|INFO|publish success  ==>   file://C:UsersAdministratorsource
    epos	estimage	estimageinReleasedeploy_docker	est#link15
    11:54:16|INFO|-----------------Start package-----------------  
    11:54:16|INFO|package ignoreList Count:0  
    11:54:16|INFO|package success,package size:<1M  
    11:54:16|INFO|-----------------Deploy Start-----------------  
    11:54:16|INFO|Serverssh connecting 192.168.159.135...   
    11:54:26|INFO|ServerConnected to root@192.168.159.135:22 via SSH  
    11:54:26|INFO|ServerChanged directory to antdeploy/testimage/20200308115416/  
    11:54:26|INFO|Serveruploaded 100 %  
    11:54:27|INFO|Serverunzip -o -q antdeploy/testimage/20200308115416/publish.zip -d publish/  
    11:54:27|INFO|Serverunzip success: antdeploy/testimage/20200308115416/publish/  
    11:54:27|INFO|ServerdockerFile not found in: [antdeploy/testimage/20200308115416/publish/Dockerfile],will create default Dockerfile!  
    11:54:27|INFO|Servercreate docker file: antdeploy/testimage/20200308115416/publish/Dockerfile  
    11:54:27|INFO|ServerFROM mcr.microsoft.com/dotnet/core/aspnet:2.2  
    11:54:27|INFO|ServerCOPY . /publish  
    11:54:27|INFO|ServerWORKDIR /publish  
    11:54:27|INFO|ServerENV ASPNETCORE_URLS=http://*:5000  
    11:54:27|INFO|ServerEXPOSE 5000  
    11:54:27|INFO|ServerENTRYPOINT ["dotnet", "testimage.dll"]  
    11:54:27|INFO|Servercreate docker file success: antdeploy/testimage/20200308115416/publish/Dockerfile  
    11:54:27|INFO|ServerStart Copy Files From [antdeploy/testimage/20200308115416/publish/] To [antdeploy/testimage/deploy/]  
    11:54:27|INFO|ServerSuccess Copy Files From [antdeploy/testimage/20200308115416/publish/] To [antdeploy/testimage/deploy/]  
    11:54:27|INFO|ServerChanged directory to antdeploy/testimage/deploy/  
    11:54:27|INFO|Serverdocker build --no-cache --rm -t testimage:20200308115416 -f antdeploy/testimage/deploy/Dockerfile antdeploy/testimage/deploy/   
    11:54:27|INFO|ServerSending build context to Docker daemon  4.688MB  
    11:54:27|INFO|ServerStep 1/6 : FROM mcr.microsoft.com/dotnet/core/aspnet:2.2  
    11:54:27|INFO|Server ---> e7e3b238011c  
    11:54:27|INFO|ServerStep 2/6 : COPY . /publish  
    11:54:27|INFO|Server ---> 77f1a71e747e  
    11:54:27|INFO|ServerStep 3/6 : WORKDIR /publish  
    11:54:27|INFO|Server ---> Running in 0488ac2f9d34  
    11:54:27|INFO|ServerRemoving intermediate container 0488ac2f9d34  
    11:54:27|INFO|Server ---> 52cace207336  
    11:54:27|INFO|ServerStep 4/6 : ENV ASPNETCORE_URLS=http://*:5000  
    11:54:27|INFO|Server ---> Running in 6002963328d2  
    11:54:28|INFO|ServerRemoving intermediate container 6002963328d2  
    11:54:28|INFO|Server ---> 30ef31b36b85  
    11:54:28|INFO|ServerStep 5/6 : EXPOSE 5000  
    11:54:28|INFO|Server ---> Running in 76a1ba895e97  
    11:54:28|INFO|ServerRemoving intermediate container 76a1ba895e97  
    11:54:28|INFO|Server ---> a0be298ccf70  
    11:54:28|INFO|ServerStep 6/6 : ENTRYPOINT ["dotnet", "testimage.dll"]  
    11:54:28|INFO|Server ---> Running in c81d0ec0a693  
    11:54:28|INFO|ServerRemoving intermediate container c81d0ec0a693  
    11:54:28|INFO|Server ---> 1c1fa6c51b6e  
    11:54:28|INFO|ServerSuccessfully built 1c1fa6c51b6e  
    11:54:28|INFO|ServerSuccessfully tagged testimage:20200308115416  
    11:54:28|WARN|Serverignore docker run  
    11:54:28|WARN|Server[upload image] - Login Succeeded  
    11:54:28|WARN|Server[upload image] - The push refers to repository [registry.cn-hangzhou.aliyuncs.com/lito/testimage]  
    11:54:28|WARN|Server[upload image] - a3dea8cda1bb: Preparing  
    11:54:28|WARN|Server[upload image] - 579a8f1d6a12: Preparing  
    11:54:28|WARN|Server[upload image] - 15e45d99c926: Preparing  
    11:54:28|WARN|Server[upload image] - 0cf75cb98eb2: Preparing  
    11:54:28|WARN|Server[upload image] - 814c70fdae62: Preparing  
    11:54:31|WARN|Server[upload image] - 0cf75cb98eb2: Mounted from lito/spa  
    11:54:31|WARN|Server[upload image] - 814c70fdae62: Mounted from lito/spa  
    11:54:31|WARN|Server[upload image] - 15e45d99c926: Mounted from lito/spa  
    11:54:31|WARN|Server[upload image] - 579a8f1d6a12: Mounted from lito/spa  
    11:54:32|WARN|Server[upload image] - a3dea8cda1bb: Pushed  
    11:54:34|WARN|Server[upload image] - 20200308115416: digest: sha256:892c1994a969fcc613d300590754bb8ddee0fb8f75e9614a097a7f482fa5d38e size: 1374  
    11:54:34|INFO|Server[upload image] - Success  
    11:54:34|INFO|publish Host: 192.168.159.135centos End  
    11:54:34|INFO|Deploy Version20200308115416  
    11:54:34|INFO|local publish folder  ==>   file://C:UsersAdministratorsource
    epos	estimage	estimageinReleasedeploy_docker	est#link79
    11:54:34|INFO|-----------------Deploy End,[Total]:1,[Fail]:0-----------------  
    11:54:34|INFO|Deploy log ==>   file://C:UsersAdministratorsource
    epos	estimage	estimageinReleasedeploy_docker	est_deploy_logs20200308115416.log#link81
    
    
    

    从日志里面可以看到,docker image被成功的上传了

    image

    在阿里云镜像仓库可以查到

    image

    下篇介绍会继续介绍

    • 镜像上传到仓库后如何手动在k8s进行快速部署
    • 有了镜像后如何在k8s进行快速部署
  • 相关阅读:
    bootstrap-table实现分页、导出数据至excel
    Python求多个list的交集、并集、差集 & list 排序
    JS
    python 格式化输出(% VS format)
    pyqt5_实例:修改xml文件中节点值
    博客迁移
    Reverse is Multiplex, You Need PinTools.
    ISCC2018_leftleftrightright-Writeup
    如何在linux主机上运行/调试 arm/mips架构的binary
    强网杯2018
  • 原文地址:https://www.cnblogs.com/yudongdong/p/12441855.html
Copyright © 2011-2022 走看看