kubernetes使用本地仓库
k8s与docker的安装
我参考的是
https://kuboard.cn/install/install-k8s.html#%E6%96%87%E6%A1%A3%E7%89%B9%E7%82%B9
我搭建的服务器有三台,一台master、两台worker。master会直接使用docker相关命令创建镜像、并直接在docker里运行和测试容器。以下我将在master上建立本地仓库。
自建本地仓库
我参考的是
https://www.cnblogs.com/justmine/p/8666907.html
https://www.cnblogs.com/justmine/p/8678758.html
kubernetes我装的是1.16.3的版本,仓库源必须来自使用https的服务器。所以自建的本地仓库也必须要有SSL证书。有两个办法解决证书问题
使用通用域名的证书
如果在运营中的域名购买过通用域名证书,那就好办了。如购买的证书是*.mydomain.com,那么我们只需要想办法将一个二级域名解释为本地的IP地址,举例,使用localdocker.mydomain.com指向本地IP192.168.100.100。为此需要修改master机与work机的/etc/hosts文件,增加以下内容
192.168.100.100 localdocker.mydomain.com
运行本地仓库。注意其中的/opt/data/registry是master放本地仓库的实质文件的目录,请自行创建目录。
docker run -d --restart=always --name registry \
-v /opt/data/registry:/var/lib/registry \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-p 443:443 registry:2
你可能想,这是不是跑一个镜像吗?没错,本地仓库在容器里跑。
使用自制证书
如果没有买过证书,或没有通用域名证书。可以自己做一个。我的docker版本是18.9,过程简述如下
创建证书,在master上录入以下命令,我将使用安装k8s时脚本创建的master的本地名称“apiService.demo”来创建,在安装k8s时各大服务器的/etc/hosts已加入该条目指向master,master也是我的本地仓库服务器。
openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt
命令会提示你需要录入几个要素,看到hostname时,需要录入“apiService.demo”

将当前目录的拷贝到 /opt/certs目录下,以下命令会用到
运行本地仓库
docker run -d \
--restart=always \
--name apiService.demo \
-v /opt/data/registry:/var/lib/registry \
-v /opt/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
-p 443:443 registry:2
因为是自制的证书,所在需要自己手工分发到各大本地的服务器。因为只在docker里使用,master 下执行以下命令
mkdir -p /etc/docker/certs.d/apiService.demo
cp /opt/certs/domain.crt /etc/docker/certs.d/apiService.demo/ca.crt
其他服务器就想办法拷贝该master服务器上生成的domain.crt为各服务器自己的/etc/docker/certs.d/apiService.demo/ca.crt。
以此docker准备好了,如何上传到本地仓库?需要两个命令
docker tag kevin2y/site-d-p apiserver.demo/site-d-p
docker push apiserver.demo/site-d-p
Kubernetes的准备工作
1.创建命名空间
kubectl create namespace localdocker-apps
2.创建Secret
kubectl -n localdocker-apps create secret docker-registry registry-key \
--docker-server=apiService.demo \
--docker-username=<your-docker-name> \
--docker-password=<your-docker=password> \
--docker-email=<you-docker-email>
注意上面三个your-docker开头的内容需要使用自己在docker上注册的相关信息录入
修改yaml定义,从本地仓库下载镜像

注意增加方框的内容,并调整箭头所指的地址。
kubernetes使用本地仓库的更多相关文章
- Kubernetes 本地仓库
1.Kubernetes本地私有仓库 Docker仓库主要用于存放Docker镜像,Docker仓库分为公共仓库和私有仓库,基于registry可以搭建本地私有仓库.使用私有仓库有如下优点: 1)节省 ...
- 使用Nexus搭建Maven本地仓库
阅读目录 序 Nexus 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 在工作中可能存在有 ...
- maven上传jar到nexus本地仓库
一.nexus新增本地仓库 Hosted Repository:本地仓库,部署组织内部的版本内容 Proxy Repository:代理仓库,代理远程的公共仓库,如maven中央仓库 Virtual ...
- maven向本地仓库导入jar包(处理官网没有的jar包)
对于官网没有的jar包,maven向本地仓库导入jar包用如下命令 mvn install:install-file -DgroupId=包名 -DartifactId=项目名 -Dversion=版 ...
- Git 创建本地仓库
前面已经搭好环境了,现在我们缺的是一个管理版本控制的仓库.这次的实验是在电脑本地创建本地仓库.指定路径 默认的位置是在你所安装Git的目录下.Git的仓库你可以建在你电脑的任何目录下(最好不要包含有中 ...
- 如何将本地的jar包上传到maven本地仓库中
首先需要将本地的jar包做mvn install到本地仓库中 mvn install:install-file -Dfile=D:\skyeye-ruleInfo\lib\lucene-querypa ...
- maven 本地仓库和远程仓库
在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件. Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方) 任何的 ...
- git将本地仓库推送到远程仓库
如何将本地仓库推送到公司远程仓库? 1:前提是你本地安装好git.先把远程git仓库克隆到本地 git clone 远程仓库的地址(SSH) 2: git branch //查看本地分支 3: g ...
- (三)Maven仓库介绍与本地仓库配置
1.Maven本地仓库/远程仓库的基本介绍 示意图: 本地仓库是指存在于我们本机的仓库,在我们加入依赖时候,首先会跑到我们的本地仓库去找,如果找不到则会跑到远程仓库中去找.对于依赖的包大家可以从这个地 ...
随机推荐
- Jmeter学习笔记(五)——dubbo接口测试
一.什么是dubbo接口 Dubbo 接口是阿里巴巴开源的致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,dubbo框架告别了传统的web service的服务模式,进而改用 ...
- apache ftp server 设置
<server xmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w ...
- 一份数据分析学习清单.xls
今天给大家整理一份数据分析的学习清单,打算了解学习这方面的同学可以看看,基本上大的需要学习的点都有涉及:具体细节知识的学习建议大家亲自去动手制作思维导图,自己动手梳理知识脉络. 上期入口:18个堪称神 ...
- jade成段的文本和标签
如果文本是大段的文本怎么写呢?因为文本会换行,比如有多行的文本,标签,文本傻傻分不清楚 p 1234567890 => <p>1234567890</p> 如果需要换行, ...
- TAITherm — 专业热管理工具
TAITherm 是美国ThermoAnalytics 公司开发的专业三维热仿真分析工具RadTherm 的升级产品,在继承RadTherm特征的基础上,开发了新型高效求解器Multigrid Sol ...
- JDBC课程1-实现Driver接口连接mysql数据库、通用的数据库连接方法(使用文件jdbc.properties)
package day_18; import jdk.internal.util.xml.impl.Input; import org.junit.Test; import java.io.Input ...
- 回归分析特征选择(包括Stepwise算法) python 实现
# -*- coding: utf-8 -*-"""Created on Sat Aug 18 16:23:17 2018 @author: acadsoc"& ...
- LINUX 新手 入门 教程
新手入门教程 点评: linux 入门 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声
- jQuery实现点击复制效果
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
- H5--性能测试(PageSpeed Insights )
中文网站(不需要翻墙): http://www.googlespeed.cn 主要可实现: 1.测试手机与电脑打开的速度对比. 2.详细的测试结果 3.直观的统计数据,查看页面的共xx个请求.总共大小 ...