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 本地仓库的更多相关文章

  1. Kubernetes本地私有仓库配置

    实验环境 master 10.6.191.181 node1 10.6.191.182 node2 10.6.191.183 本地私有仓库 10.6.191.184 一.安装本地私有仓库 1.安装do ...

  2. kubernetes使用本地仓库

    k8s与docker的安装 我参考的是 https://kuboard.cn/install/install-k8s.html#%E6%96%87%E6%A1%A3%E7%89%B9%E7%82%B9 ...

  3. centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)

    先决条件(先假设你做完这两步骤) 检查Linux是否支持虚拟化,验证输出是否为非空如何开启虚拟化 grep -E --color 'vmx|svm' /proc/cpuinfo 安装 kubectl ...

  4. 使用Nexus搭建Maven本地仓库

    阅读目录 序 Nexus 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 在工作中可能存在有 ...

  5. maven上传jar到nexus本地仓库

    一.nexus新增本地仓库 Hosted Repository:本地仓库,部署组织内部的版本内容 Proxy Repository:代理仓库,代理远程的公共仓库,如maven中央仓库 Virtual ...

  6. maven向本地仓库导入jar包(处理官网没有的jar包)

    对于官网没有的jar包,maven向本地仓库导入jar包用如下命令 mvn install:install-file -DgroupId=包名 -DartifactId=项目名 -Dversion=版 ...

  7. Git 创建本地仓库

    前面已经搭好环境了,现在我们缺的是一个管理版本控制的仓库.这次的实验是在电脑本地创建本地仓库.指定路径 默认的位置是在你所安装Git的目录下.Git的仓库你可以建在你电脑的任何目录下(最好不要包含有中 ...

  8. 如何将本地的jar包上传到maven本地仓库中

    首先需要将本地的jar包做mvn install到本地仓库中 mvn install:install-file -Dfile=D:\skyeye-ruleInfo\lib\lucene-querypa ...

  9. maven 本地仓库和远程仓库

    在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件. Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方) 任何的 ...

随机推荐

  1. php引用变量

    引用变量:在php中引用意味着用不同的名字访问同一个变量内容 定义方式:& 总结:$b=&$a其中$b是取到了$a的地址,随着$a的地址变化,不会重新开辟空间可以根据他们的内存占用情况 ...

  2. Solr合并索引方式

    索引合并并不会判断uniqueKey,所以主键有重复不会判断主键会重复. 官方的解释是不要有重复. 要合并索引,它们必须满足以下要求: 这两个索引必须兼容:它们的架构应该包含相同的字段,并且它们应该以 ...

  3. 点不到的NO

    <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">   ...

  4. springboot通过poi导出excel

    Maven引入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...

  5. day3(第一周)周末作业

    1.创建字符串变量的三种写法及其区别# 代码:单引号 ''# 双引号 ""# 多引号 ''' '''# 区别:单引号和双引号没有任何区别,一般用于单行字符:多行字符用多引号.## ...

  6. uva-10282-枚举

    题意:语言翻译, 直接map即可 #include "pch.h" #include <string> #include<iostream> #includ ...

  7. SAP work process Memory allocate

    Memory allocation sequence to dialog work processes in SAP What is the memory allocation sequence to ...

  8. 18.os模块获取url后缀

    针对文件下载文件重命名文件后缀的获取,此方式只适用url里有后缀的情况(其它的要根据情况去用类似方式获取字段后缀). import os A="http://www.铜陵市建筑工程信息网.c ...

  9. 关于 version control

    1.什么是 version control 版本控制(Vevision control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程.此外,版本控制也是一种软体工程技巧,借此能在软体 ...

  10. koltin语言学习(一)——什么是koltin

    转自:Koltin China (一) 介绍 #Kotlin-for-Android-Dev 1. 什么是Kotlin? Kotlin是JetBrains开发的基于JVM的语言.Kotlin是使用Ja ...