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本地仓库/远程仓库的基本介绍 示意图: 本地仓库是指存在于我们本机的仓库,在我们加入依赖时候,首先会跑到我们的本地仓库去找,如果找不到则会跑到远程仓库中去找.对于依赖的包大家可以从这个地 ...
随机推荐
- JavaScript Array vs new Array区别
规范说明 When Array is called as a function rather than as a constructor, it creates and initialises a n ...
- iOS音频学习笔记三:音频会话管理
使用Audio Session API ,可以指定App需要的音频行为,比如,当播放音频时,使得其他应用App静音或者混和在一起,也可以指定当App的音频被中断(例如被电话)时的行为,还 ...
- coco creator编辑动画坑之拖图片
如图所示,批量选中多张图片之后,拖到右下角的框中,发现有时候可以有时候不行.这个我觉得是个软件的bug 后来经过测试发现只有在粉红色圈的高度才可以正确放入图片,否则都放不了.
- cd .ssh返回-bash: cd: .ssh:No such file or directory怎么办
继续上一篇博文 今天再次陷入同样的问题 避免这个问题的另一个套路是用节点和其他节点直接ssh 远程连接,需要输入密码, 但是输入再次退出之后就OK了 cd 可以到.ssh了 然后就可以开心的免密了
- Computer Vision_33_SIFT:An efficient SIFT-based mode-seeking algorithm for sub-pixel registration of remotely sensed images——2015
此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...
- java - day013 - 流, FileInputStream, BufferedInputStream,
流 Stream 把数据的读写,抽象成数据在管道中流动. 流是单向的 输入流, 只能用来读取数据 输出流, 只能用来输出数据 流只能顺序读写数据 流只能一次性从头到尾读写数据 流动过的数据,不能反复流 ...
- pandas里面过滤列出现ValueError: cannot index with vector containing NA / NaN values错误的解决方法(转)
###df_18的字段fuek是否包含 / df_18[df_18['fuel'].str.contains('/')] 报错: ValueError Traceback (most recent c ...
- 线性查找与二分查找(python)
# -*- coding: utf-8 -*- number_list = [0, 1, 2, 3, 4, 5, 6, 7] def linear_search(value, iterable): f ...
- P2746 P2812 [USACO5.3]校园网Network of Schools[SCC缩点]
题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作"接受学校").注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学 ...
- P2882 [USACO07MAR]Face The Right Way [贪心+模拟]
题目描述 N头牛排成一列1<=N<=5000.每头牛或者向前或者向后.为了让所有牛都 面向前方,农夫每次可以将K头连续的牛转向1<=K<=N,求操作的最少 次数M和对应的最小K ...