Minio 맞춤형 S3 Bucket을 사용하여 Gitlab 컨테이너 레지스트리를 사용하려면 어떻게 해야 합니까?제1부

11863 단어 gitlabminio

기본적으로 gitlab Omnibus에는 사용할 수 있거나 사용하지 않을 수 있는 gitlab 레지스트리 설정이 있습니다.이 문서에서는 Minio S3 bucket과 통합하는 방법을 학습합니다.1부에서는 Minio 서버를 설치하고 구성합니다.


예비 지식


이 설정의 경우 다음이 필요합니다.
  • Gitlab 통합 서버(ce,ee)
  • Ubuntu20.04 서버(최소 4gb 메모리, 4개의 cpu와 250gb 메모리)
  • Gitlab 컨테이너 레지스트리 테스트를 위한 Docker 서버
  • 안전한 연결을 위한 Openssl 또는 Letsencrypt
  • 미니 설치


    소스 코드를 컴파일하거나 바이너리 파일을 사용하여 Minio 서버를 설치할 수 있습니다.소스 코드에서 설치하려면 시스템에 적어도 Go 1.12를 설치해야 합니다.
    먼저 서버에 로그인하여 efe를 사용자 이름으로 바꾸고, 서버의 ip를 Ubuntu 20.04 서버의 ip 주소로 바꾸십시오.
    ssh efe@your_server_ip
    
    그런 다음 패키지 데이터베이스를 업데이트해야 합니다.
    sudo apt update
    
    그런 다음 홈페이지에서 Minio 서버의 바이너리 파일을 다운로드합니다.
    wget https://dl.min.io/server/minio/release/linux-amd64/minio
    
    출력은 다음과 같습니다.
    Output
    --2020-07-31 15:08:49--  https://dl.min.io/server/minio/release/linux-amd64/minio
    Resolving dl.min.io (dl.min.io)... 178.128.69.202
    Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 44511616 (42M) [application/octet-stream]
    Saving to: ‘minio’
    
    minio               100%[===================>]  42.45M  21.9MB/s    in 1.9s
    
    2020-07-31 15:08:51 (21.9 MB/s) - ‘minio’ saved [44511616/44511616]
    
    다운로드가 완료되면 미니오라는 파일이 작업 디렉토리에 나타납니다.다음 명령을 사용하여 수행할 수 있습니다.
    sudo chmod +x minio
    
    그런 다음 Minio의 systemd 시작 스크립트에서 찾고자 하는/usr/local/bin 디렉토리로 파일을 이동합니다.
    sudo mv minio /usr/local/bin
    
    보안상의 이유로 Minio 서버가 루트 사용자로 실행되는 것을 피하는 것이 좋습니다.그래서 우리는 미니오 사용자와 그룹을 만들어야 한다.
    sudo useradd -r minio-user -s /sbin/nologin
    
    그런 다음 Minio 바이너리 파일의 소유권을 Minio 사용자로 변경합니다.
    sudo chown minio-user:minio-user /usr/local/bin/minio
    
    Minio, 다음 파일을 저장할 디렉터리가 필요합니다.
    sudo mkdir /usr/local/share/minio
    
    이제 미니오 사용자의 소유권을 이 디렉토리에 부여해야 합니다.
    sudo chown minio-user:minio-user /usr/local/share/minio
    
    이제 Minio 구성 파일을 저장하려면/etc에 디렉토리를 생성해야 합니다.
    sudo mkdir /etc/minio
    
    그런 다음 미니 사용자에게 소유권을 다시 부여합니다.
    sudo chown minio-user:minio-user /etc/minio
    
    이제 미니오 기본 프로파일을 추가하고 수정해야 합니다.
    vim /etc/default/minio
    
    파일을 연 후 다음 행을 추가하여 몇 가지 중요한 환경 변수를 설정합니다.
    MINIO_ACCESS_KEY="minio"
    MINIO_VOLUMES="/usr/local/share/minio/"
    MINIO_OPTS="-C /etc/minio --address your_server_ip:9000"
    MINIO_SECRET_KEY="miniostorage"
    
    너는 스스로 변수를 바꾸어야 한다.
    Minio Systemd 부팅 스크립트를 설치할 때입니다.
    curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
    
    출력은 다음과 유사합니다.
    Output
    
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   835  100   835    0     0   6139      0 --:--:-- --:--:-- --:--:--  6139
    
    미니오의 내용을 심사하기 위해서.서비스를 적용하기 전에 텍스트 편집기에서 서비스를 엽니다.
    vim minio.service
    
    다음과 같이 표시됩니다.
    [Unit]
    Description=MinIO
    Documentation=https://docs.min.io
    Wants=network-online.target
    After=network-online.target
    AssertFileIsExecutable=/usr/local/bin/minio
    
    [Service]
    WorkingDirectory=/usr/local/
    
    User=minio-user
    Group=minio-user
    
    EnvironmentFile=/etc/default/minio
    ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
    
    ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
    
    # Let systemd restart this service always
    Restart=always
    
    # Specifies the maximum file descriptor number that can be opened by this process
    LimitNOFILE=65536
    
    # Disable timeout logic and wait until process is stopped
    TimeoutStopSec=infinity
    SendSIGKILL=no
    
    [Install]
    WantedBy=multi-user.target
    
    # Built for ${project.name}-${project.version} (${project.name})
    
    그런 다음 단위 파일 디렉토리를 변경해야 합니다.Systemd 는 유닛 파일을 Systemd 구성 디렉토리에 저장해야 합니다.
    sudo mv minio.service /etc/systemd/system
    
    그런 다음 다음 다음 명령을 실행하여 모든 systemd 유닛을 다시 로드하고 Minio가 부트할 때 Minio를 시작하고 시작하도록 설정해야 합니다.
    sudo systemctl daemon-reload
    sudo systemctl enable minio
    sudo systemctl start minio
    
    Minio 서버에서 기본 9000 포트를 사용합니다.따라서 방화벽을 통해 구성된 포트에 액세스할 수 있도록 설정해야 합니다.
    sudo ufw allow 9000
    sudo ufw enable
    
    다음과 같은 프롬프트가 표시됩니다.
    Output
    Command may disrupt existing ssh connections. Proceed with operation (y|n)?
    
    이 점을 확인하려면 y 키를 누르고 을 입력합니다.출력은 다음과 같습니다.
    Output
    Firewall is active and enabled on system startup
    
    현재 Minio 서버는 트래픽을 수용할 준비가 되어 있지만 보안을 위해 Let's Encrypt(무료로 사용 가능) ssl을 Minio 서버에 구성하는 다른 절차가 필요합니다.
    먼저 방화벽을 통해 HTTP 및 HTTPS에 액세스할 수 있습니다.
    sudo ufw allow 80
    sudo ufw allow 443
    
    완료되면 상태를 확인할 수 있습니다.
    sudo ufw status verbose
    
    출력은 다음과 같습니다.
    Output
    Status: active
    Logging: on (low)
    Default: deny (incoming), allow (outgoing), disabled (routed)
    New profiles: skip
    
    To                         Action      From
    --                         ------      ----
    22/tcp (OpenSSH)           ALLOW IN    Anywhere
    9000                       ALLOW IN    Anywhere
    443                        ALLOW IN    Anywhere
    80                         ALLOW IN    Anywhere
    22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)
    9000 (v6)                  ALLOW IN    Anywhere (v6)
    443 (v6)                   ALLOW IN    Anywhere (v6)
    80 (v6)                    ALLOW IN    Anywhere (v6)
    
    그런 다음 Certbot을 설치합니다.무료 어댑터 인증서를 생성하기 전에,certbot이 설치되어 실행 중인지 확인해야 합니다. 설치하려면 다음 명령을 실행하십시오.
    sudo apt update
    sudo apt-get install letsencrypt
    
    이제 인증서를 획득할 수 있습니다.
    sudo certbot certonly --standalone -d minio-server.your_domain
    
    출력은 다음과 같습니다.
    Output
    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    Plugins selected: Authenticator standalone, Installer None
    Enter email address (used for urgent renewal and security notices) (Enter 'c' to
    cancel):
    
    전자 메일 메시지를 추가하고 Enter 키를 누릅니다.
    그런 다음 Let's Encrypt에 등록해야 합니다.
    Output
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Please read the Terms of Service at
    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
    agree in order to register with the ACME server at
    https://acme-v02.api.letsencrypt.org/directory
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (A)gree/(C)ancel:
    
    A를 입력하고 Enter 키를 눌러 동의를 나타냅니다.
    다음 출력이 표시됩니다.
    Output
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Would you be willing to share your email address with the Electronic Frontier
    Foundation, a founding partner of the Let's Encrypt project and the non-profit
    organization that develops Certbot? We'd like to send you email about our work
    encrypting the web, EFF news, campaigns, and ways to support digital freedom.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (Y)es/(N)o:
    
    Y나 N에 직접 대답할 수 있으며, 공개 키와 개인 키는/etc/letsencrypt/live/minio 서버에 생성되어 저장됩니다.도메인 이름 목록입니다.
    다음에 Minio 서버 설정 폴더에 있는certs 디렉터리에 두 개의 파일 (privkey.pem과fullchain.pem) 을 복사해서private로 이름을 바꿔야 합니다.중요:
    sudo cp /etc/letsencrypt/live/minio-server.your_domain_name/privkey.pem /etc/minio/certs/private.key
    
    그리고fullchain에 대해 같은 조작을 실행합니다.pem, 공용으로 명명됩니다.crt:
    sudo cp /etc/letsencrypt/live/minio-server.your_domain_name/fullchain.pem /etc/minio/certs/public.crt
    
    지금 우리는 사유재산의 소유권을 바꾸어야 한다.키와 공공 키.crt - 미니 사용자:
    sudo chown minio-user:minio-user /etc/minio/certs/private.key
    sudo chown minio-user:minio-user /etc/minio/certs/public.crt
    
    Minio 서버 웹 인터페이스를 연결하기 전에 다시 시작해야 합니다.
    sudo systemctl restart minio
    
    마지막으로 우리는 지향https://minio-server.your_domain:9000을 통해 웹 인터페이스에 접근할 수 있다.
    다음과 같은 로그인 화면이 표시됩니다.

    이제 자격 증명을 입력하여 주 인터페이스에 로그인합니다.(소형 액세스 키, 소형 기밀 키)
    그런 다음 다음과 같은 방법으로 Bucket을 만들 수 있습니다.

    지금 이대로...다음은 두 번째 부분입니다.Gitlab 컨테이너 레지스트리를 Minio bucket에 연결하는 방법을 공유합니다.

    좋은 웹페이지 즐겨찾기