一、编辑daemo.json文件

  vim /etc/docker/daemon.json

  

harbor底层架构设计 harbor.cfg_Kubernetes

二、安装Harbor

   1、Harbor 官方地址:https://github.com/goharbor/harbor/releases

   2、解压软件包: tar zxvf harbor-offline-installer-<version>.tgz

   3、配置harbor.cfg:进入解压的harbor,找到配置文件harbor.cfg。

    a、必选参数

      hostname:目标的主机名或者完全限定域名

      ui_url_protocol:http或https。默认为http

      db_password:用于db_auth的MySQL数据库的根密码。更改此密码进行任何生产用途

      max_job_workers:(默认值为3)作业服务中的复制工作人员的最大数量,对于每个映像复制作业,工作人员将存储库的所有标签同步到远程目标。增加此数字允许系统中更多的并发复制作业。但是,由于每个工作人员都会消耗一定的网络/CPU/IO资源,请根据主机的硬件资源,仔细选择该属性的值。

      customize_crt:(on或off:默认为on)当此属性打开时,prepare脚本将为注册表的令牌的生成/验证创建私钥和跟证书

      ssl_cert:SSL证书的路径,仅当协议设置为https时才应用

         ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用

      secretkey_path: 用于在复制策略中加密或解密远程注册表的密码的密钥路径

   4、创建https证书以及配置相关目录权限

       openssl gensa -des3 -out server.key 2048

     openssl req -new -key server.key -out server.csr

     cp server.key server.key.org

     openssl rsa -in server.key.org -out server.key

        openssl x509 -rep -days 365 -in server.csr -signkey server.key -out server.crt

        mkdir /data/cert

     chmod -R 777 /data/cert

   5、运行脚本进行安装

      ./install.sh

      6、访问测试

     ① https://reg.yourdomain.com的管理门户(将reg.yourdomain.com更改为您的主机名harbor.cfg)。请注意,默认管理员用户名/密码为admin / Harbor12345

     ② docker登录harbor:docker login https://hub.atguigu.com

        拉取docker镜像:docker pull wangyanglinux/myapp:v1

        镜像打一个标签:docker tag wangyanglinux/myapp:v1 hub.atguigu.com/library/myapp:v1

             推送镜像到k8s:docker  push hub.atguigu.com/library/myapp:v1

       7、上传镜像进行上传测试

     测试启动k8s的pod,刚刚推送的镜像是否可用:

      ① kubectl run nginx-deployment --image=hub.atguigu.com/library/myapp:v1 --port=80 --replicas=1

      ② kubectl get deployment   

        kubectl get rs

      ③ kubectl get pod -o wide 可以查看pod运行的情况,包括IP,node在哪个节点运行的

       curl ip 可以查看通没有

      ④ 在运行的节点上可以查看:docker ps -a | grep nginx

      ⑤ 删除节点:kubectl delete pod <name>

      ⑥ 删除后,再kubectl get pod查看节点,你会发现又有一个新的pod。这是因为我们运行pod的时候设置了副本数为1, --replicas=1,k8s会保证副本数始终为1

      ⑦ 副本扩容:kubectl scale --replicas=3 deployment/nginx-deployment

       通过kubectl get pod -o wide查看运行的情况。

      ⑧现在运行了三个pod,那我们怎么访问呢?

        通过svc来配置访问:

        1、kubectl get svc

        2、kubectl get deployment

        3、kubectl expose deployment nginx-deployment --port=30000 --target-port=80

        4、kubectl get svc

           curl 10.97.154.59:3000

          

harbor底层架构设计 harbor.cfg_Kubernetes_02

 

        5、ipvsadm -Ln 查看IP配置的规则

        6、kubectl get pod -o wide

        7、kubectl get svc

        8、修改svc的NodePort:kubectl edit svc nginx-deployment