k8s环境部署.net core web项目(docker本地仓库)
在之前的文档中,我们部署了.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本地仓库)的更多相关文章
- 怎么部署 .NET Core Web项目 到linux
.NET Core is free, open source, cross platform and runs basically everywhere. STEP 0 - GET A CHEAP H ...
- VS2017 IIS 部署.net core web项目
1.点击IIS,查看模块 查看是否安装了 AspNetCoreModule 模块,如果没有安装可下载:https://dotnet.microsoft.com/download 下载安装后,即可部署项 ...
- Docker 部署Dotnet Core MVC项目
原文:Docker 部署Dotnet Core MVC项目 1.dotnet core创建项目 dotnet new mvc -o myweb cd myweb 然后就是业务代码的编辑,增删改查乱七八 ...
- 【Eclipse】eclipse部署web项目至本地的tomcat但在webapps中找不到
clipse部署web项目至本地的tomcat但在webapps中找不到 1.发现问题 在我的 eclipse 中有个Dynamic Web Project(动态web项目),在本地的 tomcat ...
- Azure Web App (三)切换你的Net Core Web 项目的数据库连接字符串
一,引言 上一篇文章讲到今天我们演示了一下,如何在Web App中创建 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到创建的Web App中创建的新的部署槽位中, ...
- Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space
Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space >>>>>>>>>& ...
- asp.net core web 项目附加进程调试
之前asp.net web项目在部署IIS站点的时候可以直接选择项目目录,不用发布,然后附加进程的时候,找到w3wp.exe开头的进程,再根据用户名找到要附加的进程,就可以附加进程调试了.但asp.n ...
- Nginx 部署多个 web 项目(虚拟主机)
1,创建 www 目录 2,在 www 目录下创建 test1 和 test2 目录,表示两个项目 3,test1 下创建 test1.html 4,test2 下创建 test2.html 5,配置 ...
- C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求
C# 动态创建SQL数据库(二) 使用Entity Framework 创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...
随机推荐
- Matlab高级教程_第二篇:MATLAB和C#对应数据类型的讲解(多讲一点儿C#的矩阵运算)
1. MATLAB对应C#的数据类型主要在引入的父类库MWArray当中.有如下对应规则 .NET TYPE MWArrayTYPE MATLAB Type System.Double MWNumer ...
- dubbo同步/异步调用的方式
我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制:基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用(默认) 异步调用 参数回调 事件通知 同步 ...
- mysql模糊匹配like及批量替换replace
1.mysql 模糊匹配 like 与 not like 用法 : SELECT * FROM `user` where `nickname` LIKE '%测试%' SELECT * FROM `u ...
- 常用JS图片滚动(无缝、平滑、上下左右滚动)
常用JS图片滚动(无缝.平滑.上下左右滚动)代码大全 <head><-----></head><body> <!--向下滚动代码开始-->& ...
- Qt platform plugin 'windows' 问题的解决方法
关于Qt 发布程序时遇到qt platform plugin ‘windows’问题的解决方法如下 遇到这个问题,一般应该已经把一部分dll拷贝到了发布的可执行文件同级目录, 我是直接添加C:\Qt ...
- 学习python-20191208(1)-Python Flask高级编程开发鱼书_第03章_数据与flask路由
视频01: 略...... ———————————————————————————————————————————————————————————— 视频02: 搜索需要外部数据源,也就是需要外部的A ...
- python学习笔记(11)文件操作
一.读文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...
- window server 2012+apache+django
一.apache下载安装 https://www.apachelounge.com/download/VC10/ ***注意*** 本人用的是window server 2012 64位版本云服务器, ...
- dotfuscator安装
1.vs 2017 安装 dotfuscator 组件 打开vs 2017 按 ctrl + Q在输入框中输入“dotfuscator” ,选中第一个. 2.安装完成后即可在vs的工具中看到该组件 3 ...
- fetch API 和 ajax
fetch('/some.json', { method: 'get', body: { id: 22 } }).then(function (resp) { resp.json().then(con ...