Kubernetes 本地仓库
1、Kubernetes本地私有仓库
Docker仓库主要用于存放Docker镜像,Docker仓库分为公共仓库和私有仓库,基于registry可以搭建本地私有仓库。使用私有仓库有如下优点:
1)节省网络带宽,针对于每个镜像不用去Docker官网仓库下载;
2)下载Docker镜像从本地私有仓库中下载;
3)组件公司内部私有仓库,方便各部门使用,服务器管理更加统一;
4) 可以基于GIT或者SVN、Jenkins更新本地Docker私有仓库镜像版本。
2、构建Docker 本地私有仓库方法
1)下载Docker registry镜像
docker pull registry
2)启动私有仓库容器,启动命令如下:
mkdir -p /data/registry/
docker run -itd -p : -v /data/registry/:/tmp/registry docker.io/registry
Docker 本地仓库启动后容器启动,

默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下。
3、上传镜像至本地私有仓库
客户端上传镜像至本地私有仓库,如下以docker.io/lemonbar/centos6-ssh 为例,上传至私有仓库服务器
docker pull docker.io/lemonbar/centos6-ssh
docker tag efd998bd6817 centos6-ssh #改名字
docker rmi docker.io/lemonbar/centos6-ssh
docker tag centos-ssh 192.168.0.112:/centos6-ssh
docker push 192.168.0.112:/centos6-ssh
4、检测本地私有仓库:
curl -XGET http://192.168.0.112:5000/v2/_catalog
curl -XGET http://192.168.0.112:5000/v2/centos6-ssh/tags/list
5、在docker配置文件中添加如下代码并且重启
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 192.168.0.112:5000'
ADD_REGISTRY='--add-registry 192.168.0.112:5000'


6、Kubernetes Pods配置私有仓库
创建kuber-namespace.yaml
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "kube-system"
}
}
建kubernetes-dashboard.yaml,读取本地私有仓库,代码如下:
# Copyright Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. # Configuration to deploy release version of the Dashboard UI.
#
# Example usage: kubectl create -f <this_file> kind: Deployment
apiVersion: extensions/v1beta1
metadata:
labels:
app: kubernetes-dashboard
version: latest
name: kubernetes-dashboard
namespace: kube-system
spec:
replicas:
selector:
matchLabels:
app: kubernetes-dashboard
template:
metadata:
labels:
app: kubernetes-dashboard
spec:
containers:
- name: kubernetes-dashboard
image: 192.168.0.112:/kubernetes-dashboard-amd64
imagePullPolicy: Always
ports:
- containerPort:
protocol: TCP
args:
# Uncomment the following line to manually specify Kubernetes API server Host
# If not specified, Dashboard will attempt to auto discover the API server and connect
# to it. Uncomment only if the default does not work.
- --apiserver-host=192.168.0.111:
livenessProbe:
httpGet:
path: /
port:
initialDelaySeconds:
timeoutSeconds:
---
kind: Service
apiVersion: v1
metadata:
labels:
app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
type: NodePort
ports:
- port:
targetPort:
selector:
app: kubernetes-dashboard
1)在docker主机添加本地仓库地址 vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.0.112:5000"]
}
2)/etc/kubernetes/kubelet配置文件将KUBELET_POD_INFRA_CONTAINER选项注释,同时添加一个新的KUBELET_POD_INFRA_CONTAINER参数,代码如下,前提需要将pod-infrastructure镜像上传私有仓库
在每台nodes上重启kubelet服务:systemctl restart kubelet.service
#KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=192.168.0.112:5000/pod-infrastructure:latest"
3) nodes上Docker配置文件/etc/sysconfig/docker中,添加如下代码,并重启Docker服务:
ADD_REGISTRY='--add-registry 192.168.0.112:5000'



Kubernetes 本地仓库的更多相关文章
- Kubernetes本地私有仓库配置
实验环境 master 10.6.191.181 node1 10.6.191.182 node2 10.6.191.183 本地私有仓库 10.6.191.184 一.安装本地私有仓库 1.安装do ...
- kubernetes使用本地仓库
k8s与docker的安装 我参考的是 https://kuboard.cn/install/install-k8s.html#%E6%96%87%E6%A1%A3%E7%89%B9%E7%82%B9 ...
- centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)
先决条件(先假设你做完这两步骤) 检查Linux是否支持虚拟化,验证输出是否为非空如何开启虚拟化 grep -E --color 'vmx|svm' /proc/cpuinfo 安装 kubectl ...
- 使用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在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方) 任何的 ...
随机推荐
- Java - 33 Java Applet基础
Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独 ...
- windows下解决python输出utf-8中文
class UnicodeStreamFilter: def __init__(self, target): self.target = target self.encoding = 'utf-8' ...
- Java课程作业之动手动脑(五)
1.请阅读并运行AboutException.java示例. import javax.swing.*; class AboutException { public static void main( ...
- 判断B是不是A的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解答: class Solution: def HasSubtree(self, pRo ...
- [Android]Android布局优化之 merge
转载请标明:转载于http://www.cnblogs.com/Liuyt-61/p/6602915.html -------------------------------------------- ...
- service和pod通过标签绑定
service和pod绑定 apiVersion: v1 kind: Service metadata: name: my-haproxy labels: app: my-haproxy spec: ...
- python学习笔记_week17
note jQuery http://jquery.cuishifeng.cn/ 模块 <=>类库 DOM/BOM/JavaScript的类库 版本: 1.x 1.12 2.x 3.x 转 ...
- HTTP 416
真是活久见, 竟然遇到了HTTP 416 参照 http://baike.baidu.com/view/1790469.htm , Requested Range Not Satisfiable 如果 ...
- PHP 时间相关操作
使用函式 date() 实现 <?php echo $showtime=date("Y-m-d H:i:s");?> 显示的格式: 年-月-日 小时:分钟:秒 获得当天 ...
- react-native 插件汇总
部分自己搜集 部分 来自别的网站 第三方路由插件 react-native-router-flux react-native-scrollable-tab-view 选项卡 测滑动菜单 react-n ...