设为首页 收藏本站
查看: 838|回复: 0

[经验分享] kubernetes环境下私有仓库搭建

[复制链接]

尚未签到

发表于 2018-1-4 22:47:18 | 显示全部楼层 |阅读模式
  前期在客户那里搭建了基本运行环境,鉴于很多企业的环境都是内部网无法连接外部,因此搭建私有仓库是逃避不开的问题,按照网上的步骤搭建,虽然遇到一些问题,但还好都算容易解决了,下面大致把步骤记录一下便于下次去客户那里更新。
  首先在需要在启动registry Pod的机器上把registry images获取下来
  

docker pull registry  

  然后在生成几个构建persistence volumn(pv), persistence volumn claim(pvc),以及registry rc和service的文件
  

[iyunv@k8s-master registry]# cat pv.yaml  
apiVersion: v1
  
kind: PersistentVolume
  
metadata:
  name: pv01
  release: stable
  
spec:
  capacity:
  storage: 20Gi
  accessModes:
- ReadWriteMany  persistentVolumeReclaimPolicy: Recycle
  nfs:
  path:
/k8s/test  server:
10.182.168.99  

  

[iyunv@k8s-master registry]# cat pvc.yaml  
kind: PersistentVolumeClaim
  
apiVersion: v1
  
metadata:
  name: myclaim2
  
spec:
  accessModes:
- ReadWriteMany  resources:
  requests:
  storage: 20G
  

  

[iyunv@k8s-master registry]# cat registry-rc.yaml  
apiVersion: v1
  
kind: ReplicationController
  
metadata:
  name: registry
  labels:
  name: registry
  
spec:
  replicas:
1  selector:
  name: registry
  template:
  metadata:
  labels:
  name: registry
  spec:
  containers:
- name: registry  image: registry
  imagePullPolicy: IfNotPresent
  ports:
- containerPort: 5000  volumeMounts:
- mountPath: "/var/lib/registry"  name: mypd
  volumes:
- name: mypd  persistentVolumeClaim:
  claimName: myclaim2
  

  

[iyunv@k8s-master registry]# cat registry-srv.yaml  
apiVersion: v1
  
kind: Service
  
metadata:
  name: registry
  labels:
  name: registry
  
spec:
  type: NodePort
  ports:
- port: 5000  nodePort:
30002  selector:
  name: registry
  

  

10.182.168.99是k8s-node-1的地址,非flannel集群地址  

  一个一个建立起来,当然需要在k8s-node-1上打个标签
  

kubectl label node k8s-node-1 name=registry  

  在建立registry-rc的时候遇到一些问题。
  registry pod总是处于container creating的状态。


  • 首先需要在启动registry pod的机器上创建相关的目录,我的是在k8s-node-1上创建/k8s/test
  通过describe pods 一看,基本都是nfs mount的问题,解决方式如下:


  • 启动nfs service
  

systemctl start nfs  



  • 遇到
  Output: mount.nfs: access denied by server while mounting 10.182.168.99:/k8s/test错误时,修改配置文件/etc/exports,加入 insecure 选项
  

/k8s/test  *(insecure,rw,async,no_root_squash)  

  启动完成,一切顺利,
  

[iyunv@k8s-master registry]# kubectl get pods  
NAME                       READY     STATUS    RESTARTS   AGE
  
helloworld
-service-62wl1   1/1       Running   6          88d  
helloworld
-service-8cbt2   1/1       Running   6          88d  
registry
-7nj8q             1/1       Running   2          1h  
[iyunv@k8s
-master registry]# kubectl get services  
NAME            CLUSTER
-IP      EXTERNAL-IP   PORT(S)          AGE  
helloworldsvc
10.254.247.84   <nodes>       7001:30001/TCP   88d  
kubernetes
10.254.0.1      <none>        443/TCP          120d  
registry
10.254.174.54   <nodes>       5000:30002/TCP   1h  

  =====================================================================
  接下来验证。
  在k8s-node-1上有一大堆的本地images
  

[iyunv@k8s-node-1 v2]# docker images
  
REPOSITORY                                             TAG                      IMAGE>  
docker.io
/registry                                     latest                   3ebefe7c539b        5 days ago          33.19 MB  

1213-domain                                            v2                       326bf14bb29f        3 months ago        2.055 GB  
oracle
/coherence                                       12.2.1.0.0-cacheserver   57a90e86e1d2        3 months ago        625 MB  
oracle
/coherence                                       12.2.1.0.0-proxy         238c85d61468        3 months ago        625 MB  
gcr.io
/google_containers/nginx-ingress-controller      0.9.0-beta.7             2c3d45bb8cb9        3 months ago        130.6 MB  
gcr.io
/google_containers/k8s-dns-sidecar-amd64         1.14.2                   7c4034e4ffa4        4 months ago        44.5 MB  
gcr.io
/google_containers/k8s-dns-kube-dns-amd64        1.14.2                   ca8759c215c9        4 months ago        52.36 MB  
gcr.io
/google_containers/k8s-dns-dnsmasq-nanny-amd64   1.14.2                   e5c335701995        4 months ago        44.84 MB  

1213-helloworld                                        v1                       351691157b77        4 months ago        2.064 GB  

  找一个小的,然后重新tag一下,这里我认为应该指向node的外部地址和端口而不是集群地址
  

docker tag docker.io/nginx  k8s-node-1:30002/nginx  

  然后修改/etc/sysconfig/docker文件,主要是修改两行(在需要用到registry的节点上都需要修改)
  

ADD_REGISTRY='--add-registry k8s-node-1'  

  
INSECURE_REGISTRY
='--insecure-registry k8s-node-1:30002'  

  然后重启docker
  

service docker restart  

  将images push到本地的registry,然后我们查看/k8s/test目录下就有内容了.
  

docker push k8s-node-1:30002/nginx  

  在其他机器运行docker pull,看到已经从本地拉回images.
  

[iyunv@k8s-master registry]# docker pull k8s-node-1:30002/nginx  
Using
default tag: latest  
Trying to pull repository k8s
-node-1:30002/nginx ...  
sha256:c15f1fb8fd55c60c72f940a76da76a5fccce2fefa0dd9b17967b9e40b0355316: Pulling
from k8s-node-1:30002/nginx  
36a46ebd5019: Pull complete
  
57168433389f: Pull complete
  
332ec8285c50: Pull complete
  
Digest: sha256:c15f1fb8fd55c60c72f940a76da76a5fccce2fefa0dd9b17967b9e40b0355316
  
Status: Downloaded newer image
for k8s-node-1:30002/nginx:latest  
[iyunv@k8s
-master registry]# docker images
  
REPOSITORY               TAG                 IMAGE>  
k8s
-node-1:30002/nginx   latest              46102226f2fd        4 months ago        109.4 MB  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431711-1-1.html 上篇帖子: 在CentOS7上部署Kubernetes集群 下篇帖子: 基于Kubernetes(k8s)的RabbitMQ 集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表