Kubernetes-5:搭建企业级私有仓库Harbor
发布时间:2020-12-14 15:16:16 所属栏目:百科 来源:网络整理
导读:搭建企业级私有仓库 Harbor ? 安装需求 ?python版本 = 2.7 ?Docker引擎版本 = 1.10 ?docker-compose版本 = 1.6.0 ? 安装环境 一、 Python安装 yum -y install python3 ? 二、 Docker上章节中已经安装,不再赘述 ? 三、 docker-compose安装 curl -L https: //
搭建企业级私有仓库Harbor ? 安装需求 ?python版本 >= 2.7 ?Docker引擎版本 >= 1.10 ?docker-compose版本 >= 1.6.0 ? 安装环境 一、Python安装 yum -y install python3 ? 二、Docker上章节中已经安装,不再赘述 ? 三、docker-compose安装 curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ? 四、Harbor安装 ## 因为docker 默认不允许http 方式推送镜像,所以要修改docker配置文件,添加以下行,每个k8s节点都要做 vim /etc/docker/daemon.json ... ? 测试访问Harbor 1、浏览器输入:https://hub.vfancloud.com/ ? 2、登录,账号为admin,密码为harbor.yml中的 harbor_admin_password 的值 ? 3、可以自己创建一些用户,或者上传一些镜像等 ? 新建Pod测试 ## 首先docker login登录仓库
? [root@Centos8 rbac]# docker login hub.vfancloud.com ## 启动一个deployment [root@Centos8 ~]# kubectl run nginx-deployment --image=hub.vfancloud.com/test/myapp:v1 --port=443 --replicas=1 kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead. deployment.apps/nginx-deployment created ## 查看deployment [root@Centos8 ~]# kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE nginx-deployment 1/1 1 8s ## 新建一个deployment会自动创建一个rs [root@Centos8 ~]# kubectl get rs NAME DESIRED CURRENT READY AGE nginx-deployment-5bc446d899 1 74s ## 再来查看pod [root@Centos8 ~]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-deployment-5bc446d899-ndd57 1 Running 0 81s 10.244.3.6 testcentos7 <none> <none> ## 测试访问 [root@Centos8 ~]# curl 3.6 Hello MyApp | Version: v1 | <a href=hostname.html">Pod Name</a> [root@Centos8 ~]# curl 3.6/.html nginx-deployment-5bc446d899-ndd57 ## 添加副本数 [root@Centos8 ~]# kubectl scale --replicas=3 deployment/nginx-deployment deployment.extensions/nginx-deployment scaled [root@Centos8 ~]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-deployment-5bc446d899-jsgvf 1 Running 0 37s 3.7 testcentos7 <none> <none> nginx-deployment-5bc446d899-lbsfp 0/1 ContainerCreating 0 7m32s <none> kubenode2 <none> <none> nginx-deployment-5bc446d899-v2lrx 0 37s <none> kubenode2 <none> <none> ## 创建svc,实现自动的负载均衡 [root@Centos8 ~]# kubectl expose deployment nginx-deployment --port=20000 --target-port= service/nginx-deployment exposed [root@Centos8 ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d17h nginx-deployment ClusterIP 14.172 <none> 20000/TCP 7s [root@Centos8 ~]# curl 14.172:.html nginx-deployment-78d674b868-mqkqf [root@Centos8 ~]# curl 8jdhl [root@Centos8 ~]# curl jcd42 ## 可以使用ipvsadm -Ln来查看当前负载的ip地址 [root@Centos8 ~]# ipvsadm -Ln TCP 20000 rr -> 3.12:80 Masq 1 0 4 -> 3.13:3.14:4 ? 测试外网访问 ##修改svc TYPE,实现可以外网访问 [root@Centos8 ~]# kubectl edit svc nginx-deployment service/nginx-deployment edited [root@Centos8 ~]# grep type /tmp/kubectl-edit-1h3zf.yaml type: NodePort #修改此行 ## 查看TYPE 已经修改为nodeport [root@Centos8 ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 0.1 <none> TCP 3d17h nginx-deployment NodePort 10.97.134.6 <none> 30000:31568/TCP 16m ## 修改完毕后,进入外网进行测试访问,还是访问不到,后来得知为iptables规则问题 ## 将 FORWARD 链放行即可 [root@Centos8 ~]# iptables -P FORWARD ACCEPT ## 测试访问 [root@Centos8 ~]# curl 152.53:31540">Pod Name</a> ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |