zoukankan      html  css  js  c++  java
  • Kubernetes Harbor部署


    title: Kubernetes Harbor部署
    author: susu
    date: 2021-01-01
    site:
    - cnblogs.com

    official docs

    Harbor Installation Prerequisites
    harbor releases

    harbor

    docker engine

    https://docs.docker.com/engine/install/

    docker-compose

    https://docs.docker.com/compose/install/

    [root@master ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    

    process

    # 1. download harbor-offline-installer-version.tgz
    wget https://github.com/goharbor/harbor/releases/download/v2.2.2/harbor-offline-installer-v2.2.2.tgz
    tar xzvf harbor-offline-installer-v2.2.2.tgz
    cd harbor
    cp harbor.yml.tmpl harbor.yml
    
    [root@master harbor]# ls
    common  common.sh  harbor.v2.2.2.tar.gz  harbor.yml  harbor.yml.tmpl  input  install.sh  LICENSE  prepare
    
    
    # 2. configure https access to harbor(optional)
    
    openssl genrsa -out ca.key 4096
    
    openssl req -x509 -new -nodes -sha512 -days 3650 
     -subj "/C=CN/ST=Shanghai/L=Shanghai/O=susu/OU=susu/CN=susu.com" 
     -key ca.key 
     -out ca.crt
    
    openssl genrsa -out susu.com.key 4096
    openssl req -sha512 -new 
        -subj "/C=CN/ST=Shanghai/L=Shanghai/O=susu/OU=susu/CN=susu.com" 
        -key susu.com.key 
        -out susu.com.csr
    
    cat > v3.ext <<-EOF
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1=susu.com
    DNS.2=susu
    DNS.3=master
    EOF
    
    openssl x509 -req -sha512 -days 3650 
        -extfile v3.ext 
        -CA ca.crt -CAkey ca.key -CAcreateserial 
        -in susu.com.csr 
        -out susu.com.crt
    
    cp susu.com.crt /data/cert/
    cp susu.com.key /data/cert/
    
    openssl x509 -inform PEM -in susu.com.crt -out susu.com.cert
    
    cp susu.com.cert /etc/docker/certs.d/susu.com/
    cp susu.com.key /etc/docker/certs.d/susu.com/
    cp ca.crt /etc/docker/certs.d/susu.com/
    
    systemctl restart docker
    
    # 3. configure the harbor yaml file
    # 如果不需要https,注释相关项即可。
    vim harbor.yml
    hostname: susu.com
    
    # http related config
    http:
      # port for http, default is 80. If https enabled, this port will redirect to https port
      port: 80
    
    # https related config
    https:
      # https port for harbor, default is 443
      port: 443
      # The path of cert and key files for nginx
      certificate: /data/cert/susu.com.crt
      private_key: /data/cert/susu.com.key
    
    # 4. install harbor
    [root@master harbor]# ./prepare 
    prepare base dir is set to /root/harbor
    Clearing the configuration file: /config/portal/nginx.conf
    Clearing the configuration file: /config/log/logrotate.conf
    Clearing the configuration file: /config/log/rsyslog_docker.conf
    Generated configuration file: /config/portal/nginx.conf
    Generated configuration file: /config/log/logrotate.conf
    Generated configuration file: /config/log/rsyslog_docker.conf
    Generated configuration file: /config/nginx/nginx.conf
    Generated configuration file: /config/core/env
    Generated configuration file: /config/core/app.conf
    Generated configuration file: /config/registry/config.yml
    Generated configuration file: /config/registryctl/env
    Generated configuration file: /config/registryctl/config.yml
    Generated configuration file: /config/db/env
    Generated configuration file: /config/jobservice/env
    Generated configuration file: /config/jobservice/config.yml
    Generated and saved secret to file: /data/secret/keys/secretkey
    Successfully called func: create_root_cert
    Generated configuration file: /compose_location/docker-compose.yml
    Clean up the input dir
    [root@master harbor]# vim harbor.yml
    [root@master harbor]# docker-compose up -d
    Creating network "harbor_harbor" with the default driver
    Creating harbor-log ... done
    Creating harbor-portal ... done
    Creating registry      ... done
    Creating registryctl   ... done
    Creating harbor-db     ... done
    Creating redis         ... done
    Creating harbor-core   ... done
    Creating harbor-jobservice ... done
    Creating nginx             ... done
    [root@master harbor]# docker login susu.com
    Username: admin
    Password: 
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded
    [root@master harbor]# docker tag 192.168.1.2/kubernetes-local/alpine:3.6 susu.com/kubernetes-local/alpine:3.6
    [root@master harbor]# docker push susu.com/kubernetes-local/alpine
    The push refers to repository [susu.com/kubernetes-local/alpine]
    721384ec99e5: Pushed 
    3.6: digest: sha256:36c3a913e62f77a82582eb7ce30d255f805c3d1e11d58e1f805e14d33c2bc5a5 size: 528
    [root@master harbor]# docker rmi susu.com/kubernetes-local/alpine:3.6 
    Untagged: susu.com/kubernetes-local/alpine:3.6
    Untagged: susu.com/kubernetes-local/alpine@sha256:36c3a913e62f77a82582eb7ce30d255f805c3d1e11d58e1f805e14d33c2bc5a5
    [root@master harbor]# docker pull susu.com/kubernetes-local/alpine:3.6
    3.6: Pulling from kubernetes-local/alpine
    Digest: sha256:36c3a913e62f77a82582eb7ce30d255f805c3d1e11d58e1f805e14d33c2bc5a5
    Status: Downloaded newer image for susu.com/kubernetes-local/alpine:3.6
    susu.com/kubernetes-local/alpine:3.6
    

    reference

    1. harbor安装以及基本使用方法
    2. docker登录私仓失败cannot validate certificate for 192.168.76.131 because it doesn‘t contain any IP SANs
    3. docker push Registry时https报错解决方法
    4. Configure HTTPS Access to Harbor部署
    WARNING: No any other purpose,keeping reminded! So sorry to offended,if necessary, contact me and I do change what I had done to protect your privileges!
  • 相关阅读:
    POJ 3041 Asteroids 最小点覆盖 == 二分图的最大匹配
    POJ 3083 Children of the Candy Corn bfs和dfs
    POJ 2049 Finding Nemo bfs 建图很难。。
    POJ 2513 Colored Sticks 字典树、并查集、欧拉通路
    POJ 1013 Counterfeit Dollar 集合上的位运算
    POJ 2965 The Pilots Brothers' refrigerator 位运算枚举
    无聊拿socket写的100以内的加法考试。。。
    POJ 1753 Flip Game
    初学socket,c语言写的简单局域网聊天
    汇编语言 复习 第十一章 标志寄存器
  • 原文地址:https://www.cnblogs.com/MimiSnowing/p/14883622.html
Copyright © 2011-2022 走看看