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对象关 ...
随机推荐
- Java多线程常见概念
进程和线程的区别 进程是资源分配的最小单位,线程是CPU调度的最小单位 线程不能看做独立应用,而进程可以 进程有独立的地址空间,互相不影响,线程只是进程的不同执行路径 线程没有独立的地址空间,多进程的 ...
- 基础篇三:Nginx介绍
Nginx是一个开源,高性能,可高的http中间件,代理服务 常见的中间件服务: httpd apache基金会的产品 IIS 微软的产品 gws google的产品 选择Ng ...
- win下PowerShell的簡單使用
- 存储映射I/O函数
1.void * mmap((void *addr, size_t length, int prot, int flags, int fd, off_t offset) 参数: addr:用于指定映 ...
- 使用mybatis的动态sql解析能力生成sql
需求: 计算平台,有很多表,打算提供一个基于sql的服务接口, sql不能完全在配置页面写死, 要能根据参数不同执行不同的语义,防止sql个数爆炸 把mybatis原码down下来, 改造一下测试用例 ...
- [LC] 24. Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head. You may not modify the value ...
- git 第一次上传本地代码到远程仓库,解决 ! [rejected] master -> master (non-fast-forward)错误
使用git想GitHub远程仓库上传代码的基本步骤一般是 初始化为git仓库 git init 添加所有要提交的文件 git add . 本次提交说明 git commit -m '提交说明' 关联G ...
- Redhat7 配置https
Redhat7 配置https 分为自签名证书和第3方证书(此时实验为第3方,自签名略) 安装: # yum install httpd mod_ssl 生成key: # openssl genrsa ...
- IO流框架
目录 IO流框架总结 字节流 字符流 IO流框架总结 普通IO / NIO 字节流 字节流是万能流,但是在处理字符方面有时候不太方便,一般用来处理二进制文件 字节输入流 InputStream int ...
- 对H5新增多线程的理解与简单使用
由于JavaScript的特性决定了JavaScript语言是一种单线程语言,但是有时候我们需要使用多线程比如进行大量的计算时.H5为此新增了多线程的方法. 在这里我是用JavaScript来实现著名 ...