实验环境

master  10.6.191.181
node1 10.6.191.182
node2 10.6.191.183
本地私有仓库 10.6.191.184

一、安装本地私有仓库

1、安装docker

yum install -y docker
service docker restart

2、下载Docker registry镜像,并启动私有仓库

docker pull registry
mkdir -p /data/registry/
docker run -itd -p : -v /data/registry:/var/lib/registry docker.io/registry

默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下。

二、Kubernetes 使用本地私有仓库构建kubernetes-dashboard

1、docker私有仓库配置

1)从网盘中下载并导入kubernetes-dashboard和pod-infrastructure(或者docker search这两个镜像,然后pull)

将两个镜像都改名为。

10.6.191.184:/kubernetes-dashboard-amd64:latest
10.6.191.184:/pod-infrastructure:latest

2)vim /etc/sysconfig/docker,添加红色代码:

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry gcr.io --insecure-registry 10.6.191.184:
5000'

重启docker

service docker restart

3)上传镜像到仓库

docker push 10.6.191.184:/kubernetes-dashboard-amd64:latest
docker push 10.6.191.184:/pod-infrastructure:latest

4)检测本地私有仓库

curl -XGET http://10.6.191.184:5000/v2/_catalog
curl -XGET http://10.6.191.184:5000/v2/kubernetes-dashboard-amd64/tags/list

2、node节点配置

1)node节点docker配置文件添加如下代码,同时重启docker服务,获取本地私有仓库。vim /etc/sysconfig/docker

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false
ADD_REGISTRY='--add-registry 10.6.191.184:5000'
#添加私有仓库

2)需要在Docker主机添加本地仓库地址,/etc/docker/daemon.json文件中代码如下,并重启docker:

cat > /etc/docker/daemon.json << EOF
{
"insecure-registries":["10.6.191.184:5000"]
}
EOF
service docker restart

3)修改/etc/kubernetes/kubele

配置文件将KUBELET_POD_INFRA_CONTAINER选项注释,同时添加一个新的KUBELET_POD_INFRA_CONTAINER参数,代码如下,前提需要将pod-infrastructure镜像上传私有仓库。

#KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=10.6.191.184:5000/pod-infrastructure:latest"

4)在每台nodes上重启kubelet服务

systemctl  restart  kubelet.service

ps:

1、当构造kubernetes-dashboard报错。

查看pod描述

kubectl get pods --all-namespaces
kubectl describe pods/kubernetes-dashboard--hptlr --namespace="kube-system"

原因:缺少gcr.io/google_containers/pause-amd64:3.0基础镜像

解决办法:在所有节点都下载这个基础镜像,新版本的Kubernetes在安装部署中,需要从k8s.grc.io仓库中拉取所需镜像文件,但由于国内网络防火墙问题导致无法正常拉取,不能                   直接下载这个镜像,所有拉去其他源的镜像,并改tag。

docker search pause-amd64
docker pull docker.io/huangyj/pause-amd64
docker tag docker.io/huangyj/pause-amd64:latest gcr.io/google_containers/pause-amd64:3.0
docker rmi docker.io/huangyj/pause-amd64

2、在/etc/sysconfig/docker和/etc/docker/daemon.json不能同时有insecure-registries,报错了

解决办法:只在/etc/docker/daemon.json添加,在/etc/sysconfig/docker不添加。

3、master端配置

1)创建kube-namespace.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kubernetes-dashboard
namespace: kube-system
labels:
k8s-app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
spec:
selector:
matchLabels:
k8s-app: kubernetes-dashboard
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
spec:
containers:
- name: kubernetes-dashboard
image: 10.6.191.184:/kubernetes-dashboard-amd64:latest
resources:
# keep request = limit to keep this container in guaranteed class
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
ports:
- containerPort:
args:
- --apiserver-host=http://10.6.191.181:8080
livenessProbe:
httpGet:
path: /
port:
initialDelaySeconds:
timeoutSeconds:
---
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard
namespace: kube-system
labels:
k8s-app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
spec:
selector:
k8s-app: kubernetes-dashboard
ports:
- port:
targetPort:

2)创建dashboard

kubectl create  -k  kube-dashboard.yaml

3)查看状态

kubectl  get  pods  --all-namespaces

Kubernetes本地私有仓库配置的更多相关文章

  1. docker使用registry搭建本地私有仓库

    参考链接来自:http://blog.csdn.net/wangtaoking1/article/details/44180901/ 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时 ...

  2. docker 搭建本地私有仓库

    1.使用registry镜像创建私有仓库 安装docker后,可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境: docker run -d -p : registry: 这将 ...

  3. Docker基础-搭建本地私有仓库

    1.使用registry镜像创建私有仓库 安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境: docker run -d -p 5000:5000 regist ...

  4. kubeadm init 时从本地私有仓库下载镜像

    #kubeadm init 时从本地私有仓库下载镜像 images=( gcr.io/google_containers/kube-proxy-amd64:v1.6.1 gcr.io/google_c ...

  5. Docker本地私有仓库实战

    Docker仓库主要用于存放Docker镜像,Docker仓库分为公共仓库和私有仓库,基于registry可以搭建本地私有仓库,使用私有仓库的优点如下: 1)节省网络带宽,针对于每个镜像不用去Dock ...

  6. Docker容器之搭建本地私有仓库

    Docker容器之搭建本地私有仓库 本地私有仓库搭建的具体步骤 首先下载 registry 镜像 docker pull registry 在 daemon.json 文件中添加私有镜像仓库的地址并重 ...

  7. maven+nexus配置本地私有仓库

    以下是settting.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <settings> ...

  8. npm私有仓库 配置verdaccio在docker环境

    前端开发过程中,少不了自己封装一些通用的包,但又不想放在公共的平台,所以搭建一个npm私有的仓库是很有必要的. 在这里简单介绍如何使用 verdoccio 在docker环境下的配置.verdocci ...

  9. 关于kubernetes使用私有仓库一点说明

    一.概述 关于kubernetes使用私有docker image  registry的一些说明: 1.对于自己构建的项目镜像或一些不想暴露到外网的image需要使用自建的私有仓库,一般有两种选择:d ...

随机推荐

  1. C# 程序集Assembly

    原谅我到目前为止一直肤浅的认为程序集就是dll,这种想法是错误的. 今天就系统的学习记录一下“程序集”的概念.原文链接https://www.cnblogs.com/czx1/p/2014131370 ...

  2. POJ 2481 Cows【树状数组】

    题意:给出n头牛的s,e 如果有两头牛,现在si <= sj && ei >= ej 那么称牛i比牛j强壮 然后问每头牛都有几头牛比它强壮 先按照s从小到大排序,然后用e来 ...

  3. ZBrush中功能强大的插件PaintStop

    PaintStop是ZBrush®3.1的手绘插件,可以比较真实的模拟手绘风格,尤其是用水彩笔刷画水墨风格画.PaintStop插件可供用户免费使用. PaintStop是一款功能强大的插件,已经被添 ...

  4. Matlab---从入门到精通 Chapter 4 编程基础

    ---恢复内容开始--- 4-1 M文件编辑器 在命令窗口输入edit命令,可以打开M文件编辑器,创建新的M文件 在命令行中输入edit filename,那么可以打开在当前目录环境下的M文件 4-2 ...

  5. 查看Linux 服务器是 32位还是64位的

    查看Linux 服务器是 32位还是64位的 getconf LONG_BIT 返回 64 代表就是 64位的: 返回 32 代表就是 32位的:

  6. 第三方-FastDFS分布式文件系统

    1.什么是FastDFS? FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标, ...

  7. useradd: cannot open /etc/passwd

    [root@ftp ~]# useradd -g ftp -s/sbin/nologin liwmuseradd: cannot open /etc/passwd [root@ftp ~]# user ...

  8. 处理Oracle 11g在用EXP导出时,空表不能导出

    一.问题原因:     11G中有个新特性,当表无数据时,不分配segment,以节省空间 想要给空表也分配segmant,有以下两个办法: 1.insert一行,再rollback就产生segmen ...

  9. 国庆 day 7 上午

    思路:模拟,set记录一下. #include<set> #include<cstdio> #include<cstring> #include<iostre ...

  10. Cannot set web app root system property when WAR file is not expanded

    Cannot set web app root system property when WAR file is not expanded 在tomcat下面可以,在weblogic下面不行的处理方法 ...