为Kubernetes集群部署本地镜像仓库
目录贴:Kubernetes学习系列
经过之前两篇文章:Centos7部署Kubernetes集群、基于kubernetes集群部署DashBoard,我们基本上已经能够在k8s的集群上部署一个应用了,但有一个问题就是:生产环境下,我们势必不能够每个机器都导入一遍从海外下载回来的镜像,也不能真的搭建一个长期使用的梯子,这两个方法都不是可以长期使用的。以下,我们通过搭建本地的私有镜像仓库(docker registry,这个镜像可以在国内直接下载)来解决这个问题。
1、部署docker registry
在master上搭建registry。
1.1 拉取registry镜像
[root@host---- ~]# docker pull docker.io/registry
Using default tag: latest
Trying to pull repository docker.io/library/registry ...
sha256:0e40793ad06ac099ba63b5a8fae7a83288e64b50fe2eafa2b59741de85fd3b97: Pulling from docker.io/library/registry
b7f33cc0b48e: Pull complete
46730e1e05c9: Pull complete
: Pull complete
0cf045fea0fd: Pull complete
b78a03aa98b7: Pull complete
Digest: sha256:0e40793ad06ac099ba63b5a8fae7a83288e64b50fe2eafa2b59741de85fd3b97
Status: Downloaded newer image for docker.io/registry:latest
[root@host---- ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/registry latest d1e32b95d8e8 weeks ago 33.17 MB
1.2 启动registry
docker run -d -p : --name=registry --restart=always --privileged=true --log-driver=none -v /home/data/registrydata:/tmp/registry registry
其中,/home/data/registrydata是一个比较大的系统分区,今后镜像仓库中的全部数据都会保存在这个外挂目录下。
2、更改名称并推送
[root@K8s-node- ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.access.redhat.com/rhel7/pod-infrastructure latest 34d3450d733b weeks ago MB
gcr.io/google_containers/kubernetes-dashboard-amd64 v1.5.1 1180413103fd weeks ago 103.6 MB
[root@K8s-node- ~]# docker tag registry.access.redhat.com/rhel7/pod-infrastructure:latest registry:/pod-infrastructure:latest
[root@K8s-node- ~]# docker tag gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1 registry:/kubernetes-dashboard-amd64:v1.5.1
[root@K8s-node- ~]# docker push registry:/pod-infrastructure:latest
The push refers to a repository [registry:/pod-infrastructure]
ba3d4cbbb261: Pushed
0a081b45cb84: Pushed
df9d2808b9a9: Pushed
latest: digest: sha256:9314554780673b821cb7113d8c048a90d15077c6e7bfeebddb92a054a1f84843 size:
[root@K8s-node- ~]# docker push registry:/kubernetes-dashboard-amd64:v1.5.1
The push refers to a repository [registry:/kubernetes-dashboard-amd64]
25820b2590cc: Pushed
v1.5.1: digest: sha256:f3f399a937a73b2c0361d93576cd4eb854018a1445b016577e95976c4e09e694 size:
[root@K8s-node- ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.access.redhat.com/rhel7/pod-infrastructure latest 34d3450d733b weeks ago MB
registry:/pod-infrastructure latest 34d3450d733b weeks ago MB
gcr.io/google_containers/kubernetes-dashboard-amd64 v1.5.1 1180413103fd weeks ago 103.6 MB
registry:/kubernetes-dashboard-amd64 v1.5.1 1180413103fd weeks ago 103.6 MB
gcr.io/google_containers/kubedns-amd64 1.7 bec33bc01f03 months ago 55.06 MB
[root@K8s-node- ~]#
3、更改所使用的镜像名称
Dashboard是在yaml中定义的,要更改dashboard.yaml中对应的“image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1”为“image: registry:5000/kubernetes-dashboard-amd64:v1.5.1”
pod-infrastructure是在node的kubelet配置文件中定义的,要更改每个node中/etc/kubernetes/kubelet中对应的“KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"为“KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image= registry:5000/pod-infrastructure:latest "”。更改之后需要重启kubelet服务。
4、重建dashboard应用
执行完基于kubernetes集群部署DashBoard中的“销毁应用”之后,再次执行“启动”,即可完成dashboard的重建。
为Kubernetes集群部署本地镜像仓库的更多相关文章
- 基于Kubernetes集群部署skyDNS服务
目录贴:Kubernetes学习系列 在之前几篇文章的基础,(Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard.为Kubernetes集群部署本地镜像仓库 ...
- Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目
在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...
- Docker学习-Kubernetes - 集群部署
Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...
- kubernetes 集群部署
kubernetes 集群部署 环境JiaoJiao_Centos7-1(152.112) 192.168.152.112JiaoJiao_Centos7-2(152.113) 192.168.152 ...
- kubernetes集群部署
鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,c ...
- Kubernetes集群部署关键知识总结
Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...
- Kubernetes集群部署DNS插件
准备 kube-dns 相关镜像 准备 kube-dns 相关 yaml 文件 系统预定义的 RoleBinding 配置 kube-dns 相关服务 检查 kube-dns 功能 kube-dns ...
- linux运维、架构之路-Kubernetes集群部署
一.kubernetes介绍 Kubernetes简称K8s,它是一个全新的基于容器技术的分布式架构领先方案.Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部 ...
- Kubernetes 集群部署(2) -- Etcd 集群
Kubenetes 集群部署规划: 192.168.137.81 Master 192.168.137.82 Node 192.168.137.83 Node 以下在 Master 节点操作. ...
随机推荐
- Lamport Logical Clock 学习
1,导论 ①如何在分布式环境下定义系统中所有事件的发生顺序?②分布式环境下多个进程竞争资源时如何互斥?③什么是偏序,偏序的作用是什么,有什么不足?④什么是全序,全序的作用是什么,有什么不足?⑤为什么需 ...
- jsp/servlet页面跳转丢失样式问题
问题:使用servlet,如何处理在多路径页面跳转中servlet转发页面样式丢失问题?(例如访问 http://localhost/project/listUser.action后转到http:// ...
- android 短信拦截
android 4+版本需要用户主动添加broadReceiver 1.清单文件 <manifest xmlns:android="http://schemas.android.com ...
- Linux 查看服务进程运行时间
Linux 查询服务进程的 运行时间 查看运行时间 ps -eo pid,lstart,etime | grep pid ps -eo pid,lstart,etime | grep 1713 # ...
- [NOIP2012提高]借教室 题解(二分答案+差分)
[NOIP2012提高&洛谷P1083]借教室 Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室 ...
- split('\r\n')
'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格.通常用的Enter是两个加起来. 实际我的脚本读取FTP的列表,如果用的split("\r\n"),可以获得正 ...
- G - 楼房重建 (线段树)
题目链接:https://cn.vjudge.net/contest/281960#problem/G 题目大意:中文问题 具体思路:首先每一个点的值可以用当前这个点的斜率来表示,每一次输入一个值,我 ...
- Eclipse文件路径
经常我们需要读取某个文件,一般情况下,在Eclipse工程中,路径为./src/....
- aar jar包打包
使用Android Studio Module的方式编译出aar和jar包: aar包:打aar包时,gradle compile依赖编译进来的包不会被打到aar包中,所以接入aar的应用仍然需要添加 ...
- layoutSubviews总结(转)
- (void)setNeedsDisplay - (void)drawRect 但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发 You shou ...