在之前的文档中,我们部署了.net core web在k8s环境下,达成了集群管理项目的目的。但是,由于是本地部署,需要在所有的node节点都拉取好镜像,这是非常麻烦的,为了只维护一份代码,同步更新。我们将使用docker镜像拉取,但是,由于GitHub仓库的push和pull太慢,经常失败,因此,本地简单部署一个私有仓库。记录下过程。

一、准备工作

  1、两台或以上的虚拟机,2cpu

    192.168.3.181    k8s-master

    192.168.2.156    k8s-node

  2、docker最新版

  3、k8s环境,不会配的看看其他文档

二、本地仓库

  本地仓库会用到官方镜像,registry

docker pull registry

  这一步你可能因为网络问题拉取不下来,解决方法:

dig @114.114.114.114 docker.io

  

使用该命令获取到可用ip,编辑hosts

vim /etc/hosts

  

2、docker images查看该镜像

3、运行容器

docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry

4、查看仓库里的镜像

curl http://192.168.1.197:5000/v2/_catalog

  当然,现在是空的,没什么好看的

三、上传&拉取镜像

  1、编辑tag

    首先,你需要有一个镜像,比如我这里用的test

执行命令修改tag

docker tag test 192.168.3.181:5000/test:v1

    格式是: docker tag 镜像名 ip:端口/镜像名:版本(版本是为了k8s项目更新)

  2、推送镜像(push)

docker push 192.168.3.181:5000/test:v1

一般情况下,这时候你会遇到一个错误

你需要执行:vim /etc/docker/daemon.json 进行编辑

当然了,ip地址和端口记得改成自己的,然后再次push,就能正常了

   

3、上传成功后,可以删除本地镜像,从仓库拉取

docker rmi 192.168.3.181:5000/test:v1
docker pull 192.168.3.181:5000/test:v1

  

4、在局域网的其他机器拉取镜像

  在局域网的其他机器拉取镜像,需要同样的,编辑vim /etc/docker/daemon.json

  内容跟上面也一样,不赘述

四、项目部署

  1、修改.yaml文件

  参考本地部署文档里面的.yaml文件,https://www.cnblogs.com/CoderLinkf/p/12408589.html

  这里改动两个地方,第一个,images:改为192.168.3.181:5000/test:v1

  拉取策略:imagePullPolicy:IfNotPresent(如果本地没有就从仓库拉取)

  2、执行apply命令

  kubectl apply -f 你的文件名.yaml

  这里要注意的一点是,如果你的项目还没运行过,那么,不要直接用apply命令,请先使用create命令

  kubectl create -f 你的文件名.yaml

  3、kubectl get pods 即可查看状态,running状态就成功了

k8s环境部署.net core web项目(docker本地仓库)的更多相关文章

  1. 怎么部署 .NET Core Web项目 到linux

    .NET Core is free, open source, cross platform and runs basically everywhere. STEP 0 - GET A CHEAP H ...

  2. VS2017 IIS 部署.net core web项目

    1.点击IIS,查看模块 查看是否安装了 AspNetCoreModule 模块,如果没有安装可下载:https://dotnet.microsoft.com/download 下载安装后,即可部署项 ...

  3. Docker 部署Dotnet Core MVC项目

    原文:Docker 部署Dotnet Core MVC项目 1.dotnet core创建项目 dotnet new mvc -o myweb cd myweb 然后就是业务代码的编辑,增删改查乱七八 ...

  4. 【Eclipse】eclipse部署web项目至本地的tomcat但在webapps中找不到

    clipse部署web项目至本地的tomcat但在webapps中找不到 1.发现问题 在我的 eclipse 中有个Dynamic Web Project(动态web项目),在本地的 tomcat ...

  5. Azure Web App (三)切换你的Net Core Web 项目的数据库连接字符串

    一,引言 上一篇文章讲到今天我们演示了一下,如何在Web App中创建 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到创建的Web App中创建的新的部署槽位中, ...

  6. Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space

    Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space >>>>>>>>>& ...

  7. asp.net core web 项目附加进程调试

    之前asp.net web项目在部署IIS站点的时候可以直接选择项目目录,不用发布,然后附加进程的时候,找到w3wp.exe开头的进程,再根据用户名找到要附加的进程,就可以附加进程调试了.但asp.n ...

  8. Nginx 部署多个 web 项目(虚拟主机)

    1,创建 www 目录 2,在 www 目录下创建 test1 和 test2 目录,表示两个项目 3,test1 下创建 test1.html 4,test2 下创建 test2.html 5,配置 ...

  9. C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求

    C# 动态创建SQL数据库(二) 使用Entity Framework  创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...

随机推荐

  1. dubbo同步/异步调用的方式

    我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制:基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用(默认) 异步调用 参数回调 事件通知 同步 ...

  2. ionic3 修改页面切换动画

    在app.module.ts中 配置pageTransition属性 [ BrowserModule, IonicModule.forRoot(MyApp, { pageTransition: 'io ...

  3. 吴裕雄--天生自然python Google深度学习框架:人工智能、深度学习与机器学习相互关系介绍

  4. HDU 6126 Give out candies(网络流)

    题目给出n,m,k 然后给出n*m的矩阵a[i][j]代表第i个人在获得j 颗糖果能得到的满足值, 然后k是k行每行输入三个整数x,y,z     ,x,y,z表示一组限制表示第x个人分到的糖数减去第 ...

  5. 各大厂RTSP取流的URI

    目前使用过的各大厂商取流规则是在实际的工作中遇到的相关视频接入问题,通过rtsp协议接入视频数据的一些记录,其中的图片可能来源于网络,内容部分来源于网络,本人仅仅是对相关内容作了汇总. 海康RTSP取 ...

  6. ARM7探究

    1.流水线:三级流水线 预取.译码.执行.三级并行发生 2.什么是哈佛结构? 哈佛结构是一种存储器结构,是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是 ...

  7. vue element 全屏不好用问题

    Chrome71版本使用screenfull.js全屏功能时报参数错误   在生产环境长期使用的一个“全屏”功能突然失效了,查看Console 如下报错: Failed to execute 'req ...

  8. Android7.0 USBCamera设备/dev/video0无读权限

    Android7.0的系统,具备root权限,执行 # adb shell # su # chmod 777 /dev/video0 在5.0的系统中可以预览图像,7.0返回无读权限 File fil ...

  9. zoj2588-tarjan求桥/割边

    tarjan求桥,算法流程详见核心代码: void tarjan(int k){ dfn[k]=low[k]=++cnt; //fa[k]=(edge){f,0,fid}; for(int i=hea ...

  10. JavaScript 事件代理

    转自:http://www.cnblogs.com/silence516/archive/2009/09/03/delegateEvent.html 如果你想给网页添加点JavaScript的交互性, ...