Azure MinIO gateway를 사용할 때의 GitLab 차트

MinIO는 S3 호환 API를 노출하는 객체 리포지터리 서버로, Azure Blob Storage로의 요청을 프록시하는 게이트웨이 기능을 갖추고 있습니다. 게이트웨이를 설정하려면 Azure의 Web App on Linux를 활용할 것입니다.

시작하기 전에 Azure CLI를 설치하고 (az login으로 로그인)하는지 확인하세요. 이미 Resource group이 없다면 Resource group을 생성하세요.

az group create --name "gitlab-azure-minio" --location "WestUS"

리포지터리 계정

리소스 그룹 내에 리포지터리 계정을 생성하세요. 리포지터리 계정의 이름은 전 세계적으로 고유해야 합니다.

az storage account create \
    --name "gitlab-azure-minio-storage" \
    --kind BlobStorage \
    --sku Standard_LRS \
    --access-tier Cool \
    --resource-group "gitlab-azure-minio" \
    --location "WestUS"

리포지터리 계정의 계정 키를 검색하세요.

az storage account show-connection-string \
    --name "gitlab-azure-minio-storage" \
    --resource-group "gitlab-azure-minio"

출력물은 다음 형식으로 제공됩니다.

{
    "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=gitlab-azure-minio-storage;AccountKey=h0tSyeTebs+..."
}

Web App on Linux에 MinIO 배포

먼저, 동일한 리소스 그룹 내에 App Service Plan을 생성해야 합니다.

az appservice plan create \
    --name "gitlab-azure-minio-app-plan" \
    --is-linux \
    --sku B1 \
    --resource-group "gitlab-azure-minio" \
    --location "WestUS"

minio/minio 도커 컨테이너로 구성된 Web 앱을 생성하세요. 지정한 이름은 웹 앱의 URL에 사용됩니다.

az webapp create \
    --name "gitlab-minio-app" \
    --deployment-container-image-name "minio/minio" \
    --plan "gitlab-azure-minio-app-plan" \
    --resource-group "gitlab-azure-minio"

Web 앱은 이제 https://gitlab-minio-app.azurewebsites.net에서 접속 가능합니다.

마지막으로, 웹 앱이 사용할 리포지터리 계정 이름과 키를 저장할 환경 변수를 생성하고, MINIO_ACCESS_KEYMINIO_SECRET_KEY에 저장합니다.

az webapp config appsettings set \
    --settings "MINIO_ACCESS_KEY=gitlab-azure-minio-storage" "MINIO_SECRET_KEY=h0tSyeTebs+..." "PORT=9000" \
    --name "gitlab-minio-app" \
    --resource-group "gitlab-azure-minio"

# 시작 명령
az webapp config set \
    --startup-file "gateway azure" \
    --name "gitlab-minio-app" \
    --resource-group "gitlab-azure-minio"

결론

이 게이트웨이를 S3 호환 클라이언트와 함께 사용할 수 있습니다. 웹 애플리케이션의 URL이 s3 엔드포인트, 리포지터리 계정 이름이 accesskey, 리포지터리 계정 키가 secretkey가 될 것입니다.

참고

이 안내서는 Alessandro Segala의 블로그 게시물로부터 유사한 주제에 대한 적응된 것입니다.