Harbor ile Multi-tenant Docker Kayıt Oluştur
Bugünün konteynerli dünyasında, çok sayıda Docker görüntülerini güvenli bir şekilde yönetmek ve verimli bir şekilde tüm boyutlardaki kuruluşlar için önemlidir. Bu kapsamlı kılavuzlukları, sağlam, güvenli ve özellik zengin bir konteyner kayıt defterine her şeyi kapsayan, CNCF'nin 30.000'den fazla GitHub yıldızıyla birlikte en yaygın olarak kabul edilen açık kaynak bulut yerel konteyner kaydıdır.
Harbor nedir ve Neden Seçilir?
Harbor, politika ve rol tabanlı erişim kontrolü ile eserleri güvenli kılan açık bir kaynak kaydıdır, görüntüler açıklardan taranır ve güvenilir olarak görüntüler sunar. Harbor, açık kaynak Docker Dağıtımını genellikle güvenlik, kimlik ve yönetim gibi kullanıcılar tarafından gerekli hale getirerek genişletir.
2016 yılında VMware açık kaynaklı Harbor, Temmuz 2018'de CNCF'ye katıldı ve Haziran 2020'de mezun oldu - CNCF'ye ilk açık kaynak kaydı yapmak için bu dönüm noktası hem olgunluğunu hem de topluluk desteğini yansıtmaktadır.
Set Harbor Apart
Harbor, temel Docker kayıtlarından ve hatta ticari alternatiflerden birkaç işletme sınıfı yeteneklerinden ayırt eder:
- [FONT:0) Projeler aracılığıyla çok katmanlılık:[Dönetici:[Dönetici:0) Her proje kendi RBAC politikaları, tarama ayarları, kota sınırları ve etiketleme kuralları, kontenja limitleri ile içerik organize eder ve etiketleme kuralları kuralları kuralları,
- [FONT:0)Built-in Vulnerability Scanning:[Dönetici:[Dönetici: 0) Harbor, Trivy, Clair ve Anchore dahil olmak üzere tarama destekli arka uçlarla ilgili politikaları içeriyor
- [FONT:0]Image Signing ve Content Trust:) Harbor, Cosign ile imza imzalamayı ve tedarik zinciri güvenliği için Notasyona ilişkin değil, yalnızca imzalanmış görüntülerin çıkarılmasına yönelik içerik güven politikalarının çekilmesini destekler.
- [FONT:0)Multi-registry Replication:) Harbor, veri merkezleri, bulut bölgeleri veya karma ortamlar, depolarda, etiketler ve etiketlerde politika temelli filtrelerle, etiketler ve etiketlerle,
- [FONT:0) Kapsamlı Erişim Kontrolü:[Dönemli Kimlik:[Dönetici:[Dönetici:[Dönetici:0)) Kimlik Doğrulaması LDAP, Active Directory, OIDC sağlayıcılarına veya yerleşik veritabanına yapıştırılır
- [FONT:0)Robot Otomasyon için Hesaplar: Robot hesapları CI/CD boru hatlarına kapsamı olmayan izinler ve son tarihler ile erişim sağlar
- [FONT:0)Complete Denetim Yolu: [Döntme:[Dönetici:0)[Dönetici:[Döntme:0)[Dönetme, kaldırılmış, silinmiş veya taramalı eserler)
Harbor Over Alternatives'i Ne Zaman Seçilir
Organizasyonlar, özel bir konteyner kayıtlarına ihtiyaç duyduklarında, kayıt yaptıran güvenlik kontrollerine ihtiyaç duyduklarında, havayla kaplı ortamlar, düzenlenmiş endüstriler ve çoklu bulut kurulumları tipik kullanım koşulları olarak kullanılır.
Docker Hub ile karşılaştırıldığında, Harbor yerleşik kırılgan tarama, görüntü imzalama, RBAC, denetim oturumu ve çok-bölgeci replikasyonu sunuyor - Docker Hub'ın ücretli planları veya mevcut olmayan kuruluşlar için veri tutma gereksinimleri, uyumluluk görevleri veya sınırsız özel havuzlar için ihtiyaç duyuyor.
Harbor'ın Çok katmanlı Mimarisini Anlamak
Kuruluma girmeden önce, Harbor'ın multi-tanancy nasıl çalıştığını ve bu mimarlıkın örgütsel izolasyonu ve güvenliği nasıl desteklediğini anlamak önemlidir.
Tenant Boundaries
Harbor içindeki eserler bir proje tarafından sahip ve bu gruplama, takım, bölüm veya müşteri tarafından yapılan eserler setleri için ayarlanmayı sağlar. Projeler, Harbor'daki çok katmanlı isim alanlarının temel birimi olarak hizmet eder, ayrı konteyner görüntüleri, Helm grafikler, ve diğer OCI eserleri gibi davranır.
Harbor'ın çok katmanlı yetenekleri, ekip, çevre tarafından izole edilen modeller veya davayı kullanan projeler içerir, kimin itebileceğini kontrol etmek, çekmesini veya işletmek için iyi niyetli RBAC'yı kullanın.Bu proje bazlı izolasyon, diğer onantların açık izin vermeleri olmadan başka eserlerine erişemeyeceğinden emin olur.
Rol Tabanlı Erişim Kontrolü (RBAC)
Kullanıcılar "projes" ile farklı depolara erişebilir ve bir kullanıcı, bir proje altında görüntü veya Helm grafikler için farklı bir izine sahip olabilir. Harbor, proje seviyesinde atanmış rollerle sofistike bir RBAC sistemi uygular:
- [FONT:0)Guest:[Döne:[Döneme ve çekmeye erişim)
- [FONT:0)Developer:[Dönemli:[Dönemli) Okunma izinleri itmek ve çekmek için
- [FONT:0)Maintainer:[Dönetici:[Dönetici:0)Proje üyelerini yönetebilir ve proje ayarlarını yapabilir
- [FONT:0)Proje Yöneticisi:[Dönetici:[Dönetici:0)Projenin tam kontrolünü, okuma yazma-konfigure yetenekleri dahil olmak üzere proje üzerinde tam kontrol edin.
Bu granular izni modeli, kuruluşların en az ayrıcalık ilkesini uygulamalarına izin verir, kullanıcıların ve otomatik sistemlerin ihtiyaç duydukları kaynaklara erişimi vardır.
Kimlik Doğrulama Entegrasyonu
En basit durumlarda, kullanıcılar Harbor'un kendisi tarafından oluşturulabilir ve içsel olarak yönetilebilir, ancak bu özellikle de ölçeklendirmiyor, böylece Harbor ayrıca OIDC, Active Directory ve LDAP gibi diğer popüler hizmetlere entegrasyon sağlar. Bu esneklik, organizasyonların mevcut kimlik yönetimi altyapısını artırmasını sağlar ve sistemlerdeki tutarlı erişim politikalarını sağlar.
Önlemler ve Sistem Gereksinimleri
Harbor'ı yüklemeden önce, ortamınızın bir üretim hazır dağıtım için gerekli gereklilikleri yerine getirmesini sağlayın.
Donanım Gereksinimleri
Birden fazla kiracıyı destekleyen bir üretim için aşağıdaki minimum özellikleri göz önünde bulundurun:
- [FONT:0)CPU:[Dönetici: 0,4 temel minimum 8+ temel yüksek riskli ortamlar için önerilendir)
- [FONT=0)Memory:[Dönem:[Dönem: 8 GB RAM minimum (16+ GB tavsiye)
- [FONT:0]Storage:[Döncüm:[Döncüm:[Döncükler:)[Döncükler: [Döncükler: [Döncükler: [Döncükler:) Resim hacmine bağlı olarak; 100 GB ile başlayın ve büyüme planı ile başlayın
- [FONT:0)Network:[Dönetici:[Dönetici:0) Görüntü itme/pull işlemleri için yeterli bant genişliği ile sabit ağ bağlantı
Yazılım Önleri
Harbor aşağıdaki yazılım bileşenleri gerektirir:
- [FONT:0)Operating System:[[Dönetici:[Dönetici:0) Linux dağıtım (Ubuntu 20.04+, CentOS 7+, RHEL 7+, veya benzer)
- [FONT=0)Docker Motor:[Dönem: 0,0,0) Version 20.10.0 veya daha yüksek
- [FONT=0]Docker Komp:[Dönetici:[Dönetici:0)[Dönetici:[Dönetici:0)
- [FOubernetler: [Döneticiler: [Dönler:0)[Döneticiler:[Dönler:0)[Döneticiler:[Dönem:[Dönem:0)
- [FONT:0)OpenSSL: [Dönder: [Dönder: [Dönder:0) SSL / TLS sertifikalarını oluşturmak için
Network and Domain Yapılandırma
Bir üretim dağıtım için, ihtiyacınız olacak:
- Harbor server'a tam olarak nitelikli bir alan adı (FQDN) işaret ediyor
- SSL/TLS sertifikası (kendi kendine test için kaydoldu, CA-prodüksiyon için kaydoldu)
- Açık güvenlik duvarı limanları: 80 (HTTP), 443 (HTTPS), ve isteğe bağlı 4443 (Notary)
Limanı yükleyin: Step-by-Step Guide
Harbor, Herhangi bir Kubernet ortamında veya Docker desteği ile bir sistem üzerinde kurulabilir. Bu kılavuz hem yükleme yöntemlerini kapsar, Docker Boşluk için Docker Boşaltma yaklaşımı ile başlayın, Helm grafikler kullanarak Kubernetes dağıtımını takip edin.
Yöntem 1: Docker Compose ile Harbor
Docker Compose, Harbor up ve koşmak için en hızlı yol sağlar, onu geliştirme ortamları ve daha küçük dağıtımlar için ideal hale getirir.
Adım 1: Docker ve Docker Kome
İlk olarak, Docker ve Docker Kome sizin sisteminizde kuruludur. Ubuntu'da, onları aşağıdaki komutlarla yükleyebilirsiniz:
# Update package index
sudo apt update
# Install prerequisites
sudo apt install -y ca-certificates curl gnupg lsb-release
# Add Docker's official GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Set up Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine and Docker Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Start and enable Docker
sudo systemctl start docker
sudo systemctl enable docker
# Verify installation
docker --version
docker compose version
Adım 2: Download Harbor
Harbor serbest bırakılması ve Kurulum veamp'ı takip edin; Harbor'ı kurmak için yapılandırma Kılavuzu. Resmi GitHub repository'den son Harbor'ı indirmek için:
# Download the latest Harbor release
cd /opt
curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep '.tgz$' | wget -i -
# Extract the archive
tar xzvf harbor-offline-installer-*.tgz
# Navigate to Harbor directory
cd harbor
Adım 3: Configure Harbor
Harbor, çevreniz için özelleştirilmiş olması gereken bir YAML yapılandırma dosyasını kullanır:
# Copy the template configuration file
cp harbor.yml.tmpl harbor.yml
# Edit the configuration file
nano harbor.yml
Değiştirilecek Anahtar yapılandırma parametreleri:
# The hostname or IP address of your Harbor server
hostname: harbor.yourdomain.com
# HTTP configuration
http:
port: 80
# HTTPS configuration (recommended for production)
https:
port: 443
certificate: /path/to/your/certificate.crt
private_key: /path/to/your/private_key.key
# Harbor admin password (change this!)
harbor_admin_password: YourSecurePassword123!
# Database configuration
database:
password: DatabasePassword123!
max_idle_conns: 100
max_open_conns: 900
# Data storage location
data_volume: /data
# Log configuration
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
Adım 4: Genrate SSL Sertifikaları (Opiyonel ama Öneri)
Üretim dağıtımları için CA imzalı sertifikalar kullanın. Test için, kendini imzalanmış sertifikalar oluşturabilirsiniz:
# Create certificate directory
mkdir -p /opt/harbor/certs
cd /opt/harbor/certs
# Generate private key
openssl genrsa -out harbor.key 4096
# Generate certificate signing request
openssl req -new -key harbor.key -out harbor.csr -subj "/C=US/ST=State/L=City/O=Organization/CN=harbor.yourdomain.com"
# Generate self-signed certificate (valid for 365 days)
openssl x509 -req -days 365 -in harbor.csr -signkey harbor.key -out harbor.crt
# Update harbor.yml with certificate paths
# certificate: /opt/harbor/certs/harbor.crt
# private_key: /opt/harbor/certs/harbor.key
Adım 5: Trivy Browser ile Harbor
Trivy, Harbor v2.2'den beri varsayılan tarayıcıdır. Trivy kırılgan tarayıcı ile Harbor'ı kurmak için:
# Run the installation script with Trivy
sudo ./install.sh --with-trivy
# Verify all containers are running
docker compose ps
Liman-core, liman-portal, liman-db, kayıt, trivy-adapter ve diğerleri dahil olmak üzere tüm Harbor hizmetlerini göstermeniz gerekir.
Adım 6: Access Harbor Web Interface
Kurulum tamamlandığında, web tarayıcınızda Harbor UI'ye https://harbor.yourdomain.com ve oturum açma işlemine yönetici kullanıcı ve şifre ile giriş yapabilirsiniz.
Yöntem 2: Helm ile Kubernetes'te Liman Oluşturun
Liman'ı Kubernetes'te dağıtmak istiyorsanız, lütfen Harbor grafiğini kullanın. Kubernetes dağıtım daha iyi ölçeklenebilirlik, yüksek kullanılabilirlik ve bulut kaynaklı ekosistemlerle entegrasyon sağlar.
Adım 1: Add Harbor Helm Repository
# Add Harbor Helm repository
helm repo add harbor https://helm.goharbor.io
# Update Helm repositories
helm repo update
# Create namespace for Harbor
kubectl create namespace harbor
Adım 2: Helm Değerleri Dosyası Oluşturun
Liman dağıtımını yapılandırmak için özel bir değer dosyası oluşturun:
cat > harbor-values.yaml <<EOF
expose:
type: ingress
tls:
enabled: true
certSource: secret
secret:
secretName: harbor-tls
ingress:
hosts:
core: harbor.yourdomain.com
className: nginx
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
externalURL: https://harbor.yourdomain.com
persistence:
enabled: true
resourcePolicy: "keep"
persistentVolumeClaim:
registry:
storageClass: "fast-ssd"
size: 500Gi
database:
storageClass: "fast-ssd"
size: 10Gi
redis:
storageClass: "fast-ssd"
size: 1Gi
harborAdminPassword: "ChangeThisPassword123!"
database:
type: internal
redis:
type: internal
trivy:
enabled: true
notary:
enabled: true
EOF
Adım 3: Helm aracılığıyla Harbor
# Install Harbor
helm install harbor harbor/harbor
-n harbor
-f harbor-values.yaml
# Wait for all components to be ready
kubectl wait --for=condition=available --timeout=600s
deployment --all -n harbor
# Check pod status
kubectl get pods -n harbor
# Get Harbor admin password
kubectl get secret harbor-core -n harbor -o jsonpath='{.data.HARBOR_ADMIN_PASSWORD}' | base64 -d
Limanda Multi-tenancy
Harbor kurulduktan sonra, bir sonraki adım birden fazla takım, bölüm veya kuruluşunuzdaki müşterileri desteklemek için çok fazla bebek bulmaktır.
Tenants için projeler yaratmak
Limanda farklı ekipler veya bir işletme içindeki alt organizasyonlar tarafından saklanan eserleri ayırmak için birden fazla proje oluşturabilirsiniz. Projeler Harbor web arayüzü veya programmatik olarak API aracılığıyla oluşturulabilir.
Web Interface aracılığıyla projeler oluşturmak
Harbor portalı aracılığıyla bir proje oluşturmak için:
- Giriş yapın, bir yönetici olarak
- Sol navigasyon menüsünde "Projects" üzerine tıklayın
- "NEW PROJE" düğmesine tıklayın
- Proje ayarları yapılandırın: [[0.)[0] [Dönetici:2)Proje Adı: [DDDDDDDDÜDÜDÜDÜDÜDÜDÜDÜSÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ
- [FONT=0)Erişim Seviye:[Dönetici:[Dönetici:0)[[değiştir | kaynağı değiştir) veya "Özel" (gödeme doğrulama)
- [FONT:0]Storage Konta:[Dönetici:[Dönetici: 1 ) Bir tek kiracıyı aşırı depolamak için bir sınır kurmak
- [FONT:0)Proxy Cache:[Dönetici:[Dönetici:0)Projeyi dış kayıt için bir proxy önbellek olarak yapılandırın
- Projeyi oluşturmak için "OK" tıklayın
API aracılığıyla projeler oluşturmak
Otomatik proje oluşturma veya toplu işlemler için, Harbor REST API'yi kullanın:
# Set Harbor credentials
HARBOR_URL="https://harbor.yourdomain.com"
HARBOR_USER="admin"
HARBOR_PASSWORD="YourSecurePassword123!"
# Create multiple projects
for project in team-frontend team-backend team-ml customer-alpha customer-beta; do
curl -X POST "${HARBOR_URL}/api/v2.0/projects"
-H "Content-Type: application/json"
-u "${HARBOR_USER}:${HARBOR_PASSWORD}"
-d "{
"project_name": "${project}",
"public": false,
"storage_limit": 107374182400
}"
echo "Created project: $project"
done
# List all projects
curl -X GET "${HARBOR_URL}/api/v2.0/projects"
-u "${HARBOR_USER}:${HARBOR_PASSWORD}" | jq .
Project-Level Ayarları
Harbor'daki her proje güvenlik politikaları ve kaynakları sınırlarına uygulayan ayarlarla bağımsız olarak yapılandırılabilir.
Storage Quotas
Depolama kotaları bireysel kiracıları aşırı disk alanı kullanmaktan alıkoyuyor:
- Projeye Navigate
- "Configuration" sekmesine tıklayın
- "Kaynak Yönetimi" altında, depolama kotasını (örneğin 100 GB) kurdu.
- Click " Save"
Vulnerability Scanning Politikaları
Görüntüler için otomatik kırılgan tarama projesine itti:
- "Configuration" projesine git
- Enable "Automatically tarama görüntüleri it"
- “Örücük görüntüleri yürütmekten kaçın” kritik açıklarla görüntüleri engellemek için
- Dize ciddiyet eşi (örneğin, "Yüksek" veya "Critical" açıklarıyla fotoğraf)
Tag Retention Politikaları
Yeniden yükleme politikaları depolamayı verimli bir şekilde yönetmek için otomatik olarak eski veya kullanılmamış görüntüleri temizliyor:
- Projeye "Policy" sekmesini açın
- Tag Retention altında "Add Rule"
- Konformasyon kriteri: [[0)DÜDÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ: 0:0)ÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜye Olmayan Eşleştirme Modeli (EŞÜN, İZMİR, İZMİR)
- Retention rule (e.g., "en son zamanlarda 10 eser itti")
- Tag eşleştirme modeli (örneğin, dış "daha doğrusu" ve "projeksiyon" etiketleri)
- "Add" ve sonra "Run Now" politikası test etmek için
İçerik Güven ve Görüntü İşareti
Sadece imzalanmış görüntülerin çekilmesini sağlamak için enable içerik güven:
- Projede "Configuration", "Enable content trust" etkinleştirin.
- Bu, Docker Content Trust veya Cosign kullanarak imzalanması gereken görüntüler gerektirir
- İmzalanmamış görüntüler, kullanıcıların onları çekmeye çalışırken reddedilecektir
Kullanıcı Erişimi ve İzinleri Yönetin
Etkili multi-tenancy, kullanıcı erişim ve izinlerin dikkatli bir şekilde yönetilmesini gerektirir, ancak belirli kaynaklarına erişebilir.
Kullanıcı Yönetimi Stratejileri
Harbor, birden fazla kimlik doğrulama geri uçlarını destekler, organizasyonunuzun kimlik yönetim altyapınıza en iyi olan yaklaşımı seçmenize izin verir.
Yerel Kullanıcı Yönetimi
Küçük dağıtımlar veya test için, doğrudan Harbor'da kullanıcılar oluşturabilirsiniz:
- Giriş yapın
- "Yönetim" → "Kullanıcılar"
- Click "NEW USER"
- Kullanıcı ayrıntılarıyla doldurun (kullanıcı adı, e-posta, tam adı, şifre)
- Click "OK"
LDAP/Active Directory Entegrasyon
İşletme dağıtımları için, mevcut LDAP veya Active Directory ile Harbor'u entegre edin:
- "Yönetim" → "Configuration" → "Authentication"
- "LDAP"ı kimlik doğrulama modu olarak seçin
- LDAP ayarları: [[0.)[0] [FONT=2}LDAP URL: [Dönetici: 3][/FONT=0}[0]
- [FONTAP Arama DN:[Dönem:[Dönem: 1) cn=admin,dc=yourdomain,dc=com=com
- [FONTAP Base DN:[Dönem: 0: 3) dc = yourdomain,dc=com
- [FONT=0)) <>[[0]
- [FONT=0) <24|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|)
- [FONT=0) <0}[[Dönem: 1)
- Bağlantıyı test edin
- Click " Save"
OIDC Entegrasyonu
Okta, Auth0 veya Keycloak gibi modern kimlik sağlayıcıları için:
- "Authentication" ayarlarında, "OIDC" seçeneğini seçin.
- Configure OIDC parametreleri: [[0) [[0) [[Dönetici:0][Dönetici:0)[Dönetici: [Dönetici: [Dönetici: 3 )
- [FONT:0)OIDC Endpoint: [Dönem: [Dönetici:0]
- [FOIDC Müşteri Kimlik: [[Dönetici:0)
- [FOIDC Müşteri Gizli:[Dönem: 0)[Dönetici:0)
- [FOIDC Scope:[Dönetici: açık, profil, email
- Verify ve kurtarmak
Kullanıcılara Projelere Davet Etmek
Kullanıcılar kimlik doğrulaması yapılırsa, uygun rollerle projelere tayin edin:
- Projeye Navigate
- "Members" sekmesine tıklayın
- Üye eklemek için "USER" veya "GROUP"
- Kullanıcı veya grup için arama
- Uygun rolü seçin: [[0.0.DÜDÜDÜT:2)En büyük: [DÜDÜ:3) Görüntüleri çekmek için sadece erişim
- [FONT:0)Developer:[Dönetici:[Döncü: · 1 ) Görüntüleri itip çekebilir ve çizebilir
- [FONT:0)Maintainer:[Dönetici:[Dönetici:0)Proje üyelerini yönetebilir ve yapılandırılabilir ayarları yapılandırabilir
- [FONT:0)Proje Yöneticisi: [Dönetici: Proje üzerinde tam kontrol
- Click "OK"
CI/CD Entegrasyonu için Robot Hesapları
Robot hesapları, belirli izinlerle Harbor'da servis hesaplarıdır, CI/CD boru hatları gibi otomatik işlemler için kullanılan ve kimlikleri gerektiren görüntüleri çekmek veya çekmek için kullanılır.
Bir robot hesabı oluşturmak için:
- Projeye Navigate
- Click "Robot Hesapları" sekmesi
- Click "NEW ROBOT ACCOUNT"
- Robot hesabının yapılandırın: [[0.)][0] [Dönetici:2|Dönetici: [Dönetici: 3) Descriptive name (e.g., "ci-borline-bot")
- [FONT=0)Expiration zamanı:[[Dönlendirme süresi:[Dönlendirme süresi:[Dönlendirme süresi:[Dönlendirme süresi:[Dönlendirme tarihi: 1 )
- [FONT:0) İzinler:[[Dönler ve eylemler (push, çekme, silme)
- Click "ADD"
- Hemen üretilen token'i kopyalayın ( tekrar gösterilmeyecektir)
CI/CD boru hattınızda robot hesabı kullanın:
# In your CI/CD pipeline (e.g., GitLab CI, Jenkins)
docker login harbor.yourdomain.com -u 'robot$ci-pipeline-bot' -p 'TOKEN_HERE'
docker build -t harbor.yourdomain.com/team-frontend/app:${CI_COMMIT_SHA} .
docker push harbor.yourdomain.com/team-frontend/app:${CI_COMMIT_SHA}
Multi-tenant Çevreler için Güvenlik Özellikleri
Güvenlik, birden çok takım veya müşteri altyapısını paylaştığı çok sayıda ortamda parandır. Harbor, konteyner tedarik zincirinizi korumak için kapsamlı güvenlik özellikleri sunar.
Vulnerability Scanning
Trivy gibi popüler görüntü tarayıcılarını kullanarak, görüntüler bilinen açıklar için otomatik olarak taranabilir ve bu taramaların sonuçları, el ele alınmamış güvenlik sorunları ile eserler çekmesini engellemek için yararlanabilir.
Otomatik Tarama
Sistem veya proje seviyesinde enable otomatik tarama:
- Sistem çapında tarama için: "Yönetim" → "Kayıt Hizmetleri" → Configure Trivy ayarları
- Proje düzeyinde tarama için: Project → "Configuration" → Enable "Automatically scan Pictures on push"
- Yeni keşfedilen açık açıklar için mevcut görüntüleri yeniden kurmak için planlanan taramalar set up planlı taramalar
Vulnerability Policies
Hedeflenen görüntülerin dağıtılmasını engellemek için yapılandırın:
- Projede "Configuration", "Örleyici görüntülerden kaçınma" etkinleştirin.
- Erkeğin (örneğin, “Yüksek” veya “Critical”) kesişir.
- Bu eşiğin üzerindeki veya yukarıdaki görüntüler çekilmiş olamaz
Viewing Scan Sonuçlar
Güvenlik tarama sonuçlarını görüntülemek için:
- Projeye ve havuza Navigate
- Bir sanat / grafik üzerinde tıklayın
- ayrıntılı tarama sonuçları için "Vulner yükümlülükleri" sekmesini görüntüle
- CVE ayrıntıları, ciddiyet seviyeleri ve mevcut düzeltmeler
Resim İşaret ve İçerik Güvenir
Harbor, Docker Content Trust (daha önceleme ve kanıtlayıcılığı garanti etmek için) kullanarak konteyner görüntülerini imzalamayı ve dağıtılmamasını engelleyen politikalar da aktif olabilir.
Enabling Content Trust
Bir proje için içerik güven sağlamak:
- Projeye "Configuration" projesine geçiş
- Enable "Enable content trust"
- Enable "Sunlanmamış görüntüler çektikten sonra"
Docker Content ile fotoğraf çekmek
# Enable Docker Content Trust
export DOCKER_CONTENT_TRUST=1
export DOCKER_CONTENT_TRUST_SERVER=https://harbor.yourdomain.com:4443
# Push and sign an image
docker push harbor.yourdomain.com/team-frontend/app:v1.0
# The first push will prompt you to create signing keys
# Follow the prompts to set passphrases for root and repository keys
Cosign ile oturum açın
Modern imza akışları için, Cosign kullanın:
# Install Cosign
curl -O -L "https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64"
sudo mv cosign-linux-amd64 /usr/local/bin/cosign
sudo chmod +x /usr/local/bin/cosign
# Generate key pair
cosign generate-key-pair
# Sign an image
cosign sign --key cosign.key harbor.yourdomain.com/team-frontend/app:v1.0
# Verify signature
cosign verify --key cosign.pub harbor.yourdomain.com/team-frontend/app:v1.0
Denetim Logging ve Uyum
Tüm işlemler depoya girişler yoluyla takip edilir. Harbor tüm kullanıcı faaliyetlerini takip eden kapsamlı denetim loglarını koruyor, uyumluluk gerekliliklerini karşılamak ve güvenlik olayları araştırmak daha kolay hale getiriyor.
Viewing Audit Logs
- "Yönetim" → "Logs"
- Filtre girişleri: [[0:0)Username
- Operasyon türü (push, çekme, silin, yaratır, vb.)
- Kaynak türü (proje, repository, artifact)
- Zaman aralığı
- Dış analiz veya arşiv için ihracat logları
SIEM Systems ile bütünleşme
İşletme uyum için, Harbor loglarını SIEM sisteminizle entegre edin:
# Configure Harbor to send logs to syslog
# Edit harbor.yml
log:
level: info
external_endpoint:
protocol: tcp
host: syslog.yourdomain.com
port: 514
# Restart Harbor to apply changes
docker compose down
docker compose up -d
Ağ Güvenliği ve Erişim Kontrolü
HTTPS'yi yapılandırın
Her zaman HTTPS'yi geçişte şifreli verileri şifrelemek için kullanın:
- Güvenilir bir CA'dan SSL/TLS sertifikalarını alın (Hareket, DigiCert, vs.)
- Sertifika yolları ile birlikte liman.y ml
- Yeniden Başlayın Harbor
Güvenlik Duvarı Yapılandırma
Duvara güvenlik duvarı kuralları kullanarak:
# Allow HTTPS traffic
sudo ufw allow 443/tcp
# Allow HTTP (if needed for redirect)
sudo ufw allow 80/tcp
# Allow Notary (if using Docker Content Trust)
sudo ufw allow 4443/tcp
# Restrict access to specific IP ranges (optional)
sudo ufw allow from 10.0.0.0/8 to any port 443 proto tcp
# Enable firewall
sudo ufw enable
Çok yerinde Deployments için Resim Replication
Görüntüler ve grafikler, yüklemeye yardımcı olmak için kullanılan bir çoğaltmayı otomatik olarak tekrarlayabilir ve çoklu bulut senaryolarında çoklu konum dağıtımları elde edebilir.
Set Up Replication Endpoints
Replication hedefleri diğer Harbor örneklerini içeriyor, Docker Hub, AWS ECR, Google GCR/GAR, Azure ACR ve herhangi bir OCI-compliant kayıt.
Bir replikasyon endpoint yapılandırmak için:
- "Yönetim" → "Yönetici"
- Click "NEW ENDPOINT"
- Configure endpoint details: [[Üyetim:0)] [Dönetici:2)[Dönetici: [Dönetici: 3) Kayıt türü (Harbor, Docker Hub, AWS ECR, vb.) seçin.
- [FONT:0) İsim:[Dönetici:)
- [[Dönemli URL:[Dönemli URL:) Kayıt URL
- [FONT=0) E-posta:[değiştir | kaynağı değiştir]
- Bağlantıyı test edin
- Click "OK"
Yenidenleme Kuralları Oluşturma Kuralları
Otomatik olarak senkronize edilen görüntüleri tanımlamak için yeniden uygulama politikaları tanımlayın:
- "Yönetim" → "Replications"
- "NEW REPLICATION RULE"
- Kuralı yapılandırın: [Üye:0] [DÜye:2)[Üye Olmayan Kural adı:[Dönetici:0)
- [0]Replication modu:[[Dönemli) veya Pull ( Uzaktan) veya Pull ( Uzaktan)
- [FONT=0) Kaynak kayıt:[[Dönem:0) Kaynak:[Dönem:
- [FONT:0)Destination kayıt:[DFLT:1) Hedef uç noktası seçin
- [FONT:0)Trigger modu:[Dönetici:[Dönetici: 1) Manual, Scheduled veya Event-based
- [FONT:0) Direktifler:[Dönler: 0,0)[[değiştir | kaynağı değiştir]
- Click "SAVE"
Yeniden çoğaltma için Vakaları Kullanın
- [FONT:0]Disaster Recovery:[[Dönetici:[Dönetici:0) Farklı bir bölgede ikincil bir Harbor örneğine kritik görüntüleri yeniden karmaşıklaştırın
- [FONT:0)Geografik Dağıtım:[Dönetici:[Dönetici:0)[Dografik Dağıtım:[DFLT:1) Daha hızlı zaman çekme için bölgesel kayıtlara doğru seslerinizi çeker
- [FONT=0)Hybrid Bulut:[Dönemler Harbor ve bulut kayıtları arasında yeniden karmaşıklaşmaktadır.
- [FONT/Ürün Ayrımı: [FONTT:0)) Geliştirme kayıtlarından gelen görüntüleri teşvik etmek
Harbor ile Çalışma: Pratik İş Akışları
Harbor çok fazla kişilik için yapılandırılırken, takımlar konteyner iş akışları için kullanmaya başlayabilir.
Ikincileri Harbor'a Bağlamak
Harbor'a bir görüntü itmek için:
# Log in to Harbor
docker login harbor.yourdomain.com
# Tag your image with Harbor registry path
docker tag myapp:latest harbor.yourdomain.com/team-frontend/myapp:v1.0
# Push the image
docker push harbor.yourdomain.com/team-frontend/myapp:v1.0
Harbor'dan Fotoğraflar
# Log in to Harbor (if pulling private images)
docker login harbor.yourdomain.com
# Pull the image
docker pull harbor.yourdomain.com/team-frontend/myapp:v1.0
# Run the container
docker run -d harbor.yourdomain.com/team-frontend/myapp:v1.0
Kubernetes ile Liman Kullanımı
Kubernetes'teki Harbor'dan görüntüler çekmek için, bir görüntü gizli:
# Create a Docker registry secret
kubectl create secret docker-registry harbor-registry
--docker-server=harbor.yourdomain.com
--docker-username=your-username
--docker-password=your-password
[email protected]
-n your-namespace
# Reference the secret in your pod spec
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: myapp
image: harbor.yourdomain.com/team-frontend/myapp:v1.0
imagePullSecrets:
- name: harbor-registry
Dış Kayıtlar için Proxy Cache
Harbor'un proxy özelliği, Harbor'un dış kayıt için bir caching proxy olarak hareket etmesine, bant genişliği kullanımını azaltma ve çekme performansı geliştirmesine olanak sağlar.
Bir proxy önbellek projesini yapılandırmak için:
- Yeni bir proje oluşturun
- Proje türü olarak "Proxy Cache" seçin
- Hedef kayıt (Docker Hub, Quay.io, vs.) seçin.
- Gerekirse, gerekli olan bilgi
- Proxy önbellek yolu kullanarak Harbor aracılığıyla resim
# Instead of pulling from Docker Hub directly
docker pull nginx:latest
# Pull through Harbor proxy cache
docker pull harbor.yourdomain.com/dockerhub-proxy/library/nginx:latest
Backup and Disaster Recovery
Harbor dağıtımını korumak ve verileri iş sürekliliği için kritik.
Backing Up Harbor Data
Harbor, verilerini depolamak için bir veritabanı kullanır ve varsayılan olarak, Docker tarafından yönetilen bir PostgreSQL veritabanı kullanır.
Liman'ı geri almak için:
# Stop Harbor
cd /opt/harbor
docker compose down
# Backup the data directory
sudo tar -czf harbor-backup-$(date +%Y%m%d).tar.gz /data
# Backup the configuration
sudo cp harbor.yml harbor.yml.backup
# Backup the database (if using external database)
docker exec harbor-db pg_dump -U postgres registry > harbor-db-backup-$(date +%Y%m%d).sql
# Restart Harbor
docker compose up -d
Otomatik Backup script
#!/bin/bash
# harbor-backup.sh
BACKUP_DIR="/backup/harbor"
DATE=$(date +%Y%m%d-%H%M%S)
HARBOR_DIR="/opt/harbor"
DATA_DIR="/data"
# Create backup directory
mkdir -p $BACKUP_DIR
# Stop Harbor
cd $HARBOR_DIR
docker compose down
# Backup data volume
tar -czf $BACKUP_DIR/harbor-data-$DATE.tar.gz $DATA_DIR
# Backup configuration
cp $HARBOR_DIR/harbor.yml $BACKUP_DIR/harbor-config-$DATE.yml
# Restart Harbor
docker compose up -d
# Remove backups older than 30 days
find $BACKUP_DIR -name "harbor-*" -mtime +30 -delete
echo "Backup completed: $BACKUP_DIR/harbor-data-$DATE.tar.gz"
Bu senaryoyu cron ile programlamak:
# Run backup daily at 2 AM
0 2 * * * /usr/local/bin/harbor-backup.sh >> /var/log/harbor-backup.log 2>&1
Backup'tan geri almak
# Stop Harbor
cd /opt/harbor
docker compose down
# Restore data directory
sudo rm -rf /data
sudo tar -xzf /backup/harbor/harbor-data-20260402.tar.gz -C /
# Restore configuration
sudo cp /backup/harbor/harbor-config-20260402.yml /opt/harbor/harbor.yml
# Restart Harbor
docker compose up -d
İzleme ve Performans Optimizasyonu
Harbor'ın sağlığını ve performansını izlemek, kullanıcıların etki yapmadan önce sorunları tanımlamaya yardımcı olur.
İzleme Harbor Health
Harbor sağlık kontrol uç noktaları ortaya çıkarır:
# Check Harbor health
curl -k https://harbor.yourdomain.com/api/v2.0/health
# Expected response
{
"status": "healthy",
"components": [
{"name": "core", "status": "healthy"},
{"name": "database", "status": "healthy"},
{"name": "redis", "status": "healthy"},
{"name": "registry", "status": "healthy"}
]
}
Prometheus Metriks
Harbor, izleme için Prometheus metrics ortaya çıkıyor:
# Enable metrics in harbor.yml
metric:
enabled: true
port: 9090
path: /metrics
# Scrape metrics with Prometheus
curl http://harbor.yourdomain.com:9090/metrics
Performans Optimizasyonu İpuçları
- [FONT:0) SSD depolamayı kullanın: Mağaza Harbor verileri daha iyi I/O performans için hızlı SSD sürücülere karşı daha iyi I/O performans için
- [FONT:0)Köpürücü Redis kalibrasyonu:) Redis'in yeterli hafızaya tahsis ettiği için
- [FONT=0)Database ayar:[Dönetici:[Dönetici:0) İş yükleriniz için PostagreSQL ayarlarını optimize edin
- [FONT:0)Enable çöp koleksiyonu:[Dönemli çöp koleksiyonu:).
- [FONT:0)Use proxy önbellek:[Dönetici:[Dönetici:0) Dış kayıttan yoksundur.
- [FONT:0)Implement replication:[Dönetici:[Dönem: 1 ) Dağcılıkta birden fazla liman örneği arasında yük
Garbage Collection
Garbage koleksiyonu, artık ihtiyaç duyulmayan blobs ve eserler ortadan kaldırmakla yeniden rezervasyon yapma alanıdır.
Çöp toplama:
- "Yönetim" → "Garbage Collection"
- Hemen koleksiyon için "GC Now"
- Veya düzenli çöp toplama (e.g., haftalık 2 AM)
Sorun Ortak Konuları Sorun Gidermek
Cannot Push Images
[FONT:0]Symptoms:[Dönem: Öyleme: talep edilen kaynağa erişim reddedilir” hata
[FONT=0) ⁇ ⁇
- Kullanıcının projedeki Geliştirici veya daha yüksek rolü olduğunu teyit edin
- Check project storage kotası aşılmamıştı
- Kullanıcının kimlik doğrulaması: [[DüzDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ
- Project name in image tag maçlarını mevcut projeyle karşılaştırın
SSL Sertifika Hataları
[FONT:0]Symptoms:[Dönem:[Dönemli yetkiyle imzalanmış sertifika” hatası
[FONT=0) ⁇ ⁇
- Docker'in güvenilir sertifikalarını Add Harbor's CA Sertifikası
- Kendi kendine imzalanmış sertifikalar için CA cert'ı [[Üyetim: 11) kopyalayın.
- Docker daemon: 03:27)
Slow Image Push /Pull
[FONT:0]Symptomlar: [Döntgen: [Dönem: 1) Görüntü operasyonları aşırı zaman alır
[FONT=0) ⁇ ⁇
- Ağ bant genişliği ve geçncy
- Depolama I/O performans
- Docker daemon'un max concurrent yüks / baskıları
- Harbor'ı coğrafi olarak dağıtılmış takımlar için yenidenplikasyon kullanmayı düşünün
- Sık sık dış görüntüler için enable önbellek
Veritabanı Bağlantı Sorunları
[FONT=0]Symptoms:[Dönem:[Döntgen:[Dönem:0] Harbor UI hataları gösterir veya yük yüklenemez
[FONT=0) ⁇ ⁇
- Check database konteyner durumu: [[ENFLT:28).
- Limanda veritabanı bilgilerini onaylayın.y ml
- Check database logları: [[ENFLT:29)
- Veri tabanının yeterli kaynakları vardır (CPU, memory, disk)
Gelişmiş Multi-tenancy Scenarios
Müşteri Hizmetleri
Harbor, konteynerli yazılımları dış müşterilere dağıtmak için kullanılabilir:
- Her müşteri için ayrı projeler oluşturun
- Müşteri erişimi için son tarihlerle robot hesaplarını kullanın
- Yeni sürümler mevcut olduğunda uygulama webhook bildirimleri
- Gerekirse müşteri özel kayıtlarına yeniden giriş yapın.
- Müşteri başına depolamayı yönetmek için proje kotalarını kullanın
Çok-Region Deployment
Küresel kuruluşlar için, Harbor'ı birden çok bölgede dağıtma:
- Her büyük bölgede (US, EU, APAC) iş birliği örnekleri
- Örnekler arasında iki yönlü replikasyonu yapılandırın
- DNS tabanlı yük dengelemelerini kullanıcıların en yakın örnek için kullanın
- Tüm örneklerde tutarlı LDAP/OIDC doğrulama
- Tüm örnekler için izleme ve giriş
Uyum ve Düzenleme Gereksinimleri
Düzenlenen endüstriler için (sağlık, finans, hükümet):
- Enable kapsamlı denetim logu
- Uygulama zorunlu kırılganlığı, politikaları engelleme ile tarama
- Tüm üretim görüntüleri için görüntü imzalaması gerekir
- Veri tutma gereksinimleri karşılamak için saklama politikaları
- LDAP/AD entegrasyonu merkezi erişim kontrolü için
- Uygulama ağ segmentasyonu ve güvenlik kuralları
- Düzenli yedekleme ve felaket kurtarma testleri
- Tüm güvenlik kontrolleri ve prosedürleri
Multi-tenant Harbor Deployments için en iyi uygulamalar
Güvenlik En İyi Uygulamaları
- [0]Always HTTPS:[Dönler: [Dönler: 1] Asla üretimde doğrudan HTTP'yi çalıştırmayın
- [0]Değişim varsayılan şifreler:[Dönem:[Dönemli şifreler:[Dönemli şifreler)
- [FONT:0)Enable kırılgan tarama:[Dönetici:[Dönetici:0) Configure otomatik tarama
- [FONT:0)Implement image imzası:[Dönem: 1) Üretim dağıtımları için imzalanmış görüntüler imzalamak
- [FONT:0) Robot hesaplarını kullanın:[Dönem: 0,3;0) CI/CD boru hatlarında kişisel kimlikleri asla kullanma
- [FONT:0)Yönerge güvenlik güncelleştirmeleri:[Dönem:[Dönemli güvenlik güncellemeleri:[Dönler:) Keep Harbor ve bileşenleri tarihe kadar
- [FONT:0)En az ayrıcalıktan vazgeçin:) Grant kullanıcılarının minimum gerekli izinler minimum gerekli izinler
- [FONT:0)Enable denetim Girişi:[Dönetici:[Dönetici:0)[Dönlenebilir denetim Girişi:[Dönlenebilir)
Operasyonel En İyi Uygulamalar
- [FONTNT=0)Implement backup strategy:[Dönetici:0)Test geri yükleme prosedürleri ile düzenli otomatik yedeklemeler
- [[Döntme kaynağı kullanımı:[Dönem: 0,0) Track depolama, CPU, hafıza ve ağ ölçümleri
- [FONT:0]Set depolama kotaları:[Dön depolama kotaları:[Döntme:0) Bireysel projeleri aşırı depolamak için ön depolamak
- [FONT:0)Konfigure keep policies:[Dönetici:[Dönetici:0)[değiştir | kaynağı değiştir]
- [FONT:0]Schedule çöp koleksiyonu: Düzenli depolama alanı alanı yeniden talep etmek için düzenli temizlenebilir
- [FONT:0)Belirli işlemler için belgeyi korumak ve sorun gidermeye devam etmek
- [FONT:0)Test felaket kurtarma:[Dönetici:0) Düzenli olarak yedek restorasyonu ve başarısız prosedürleri test edin
- [0]Kapşehir Planlaması:[[Dönetici:[Dönetici:)
Organizasyon En İyi Uygulamaları
- [FONT:0]Naming kongreleri:[Dönem:[Dönem: 1]Projeler, depolar ve etiketler için tutarlı bir isim oluşturun
- [FONT:0)Proje yapısı:[Dönetici: ekip, uygulama veya çevre tarafından yapılan projelerde düzenlenmektedir.
- [FONT:0) Access kontrol politikaları:[Dönetici:[Dönetici:0)[değiştirme politikaları:[Dönetici:[Dönetici:0)[[Dönetici kontrol politikaları:[Dönetici:[Dönetici:[Dönetici:0)))
- [FONT:0)Tagging stratejisi:[Döneticileri ve anlamlı etiketler kullanın
- [0] Eğitim ve Belgeler:[Dönetici:[Dönemli:0) Takımlar, Harbor'ı nasıl etkin bir şekilde kullanacaklarını anlamalarını sağlar
- [FONT:0)Değişim yönetimi:[Dönetici:[Dönetici:0) Değiştirilebilirlik yönetimi:[Dönemli değişiklikler için onay süreçleri uygulama.
- [FONT:0) İletişim:[Dönetici:[Dönetici:0)
DevOps Ekosystem ile bütünleşme
CI/CD Boru Entegrasyonu
Örnek GitLab CI boru hattı:
stages:
- build
- scan
- deploy
variables:
HARBOR_REGISTRY: harbor.yourdomain.com
HARBOR_PROJECT: team-frontend
IMAGE_NAME: myapp
build:
stage: build
script:
- docker login -u robot$ci-bot -p $HARBOR_TOKEN $HARBOR_REGISTRY
- docker build -t $HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$CI_COMMIT_SHA .
- docker push $HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$CI_COMMIT_SHA
scan:
stage: scan
script:
- |
# Wait for Harbor to scan the image
sleep 30
# Check scan results via Harbor API
SCAN_STATUS=$(curl -u robot$ci-bot:$HARBOR_TOKEN
"$HARBOR_REGISTRY/api/v2.0/projects/$HARBOR_PROJECT/repositories/$IMAGE_NAME/artifacts/$CI_COMMIT_SHA"
| jq -r '.scan_overview.scan_status')
if [ "$SCAN_STATUS" != "Success" ]; then
echo "Vulnerability scan failed"
exit 1
fi
deploy:
stage: deploy
script:
- kubectl set image deployment/myapp myapp=$HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$CI_COMMIT_SHA
only:
- main
Webhook Entegrasyon
Görüntüler itildiği zaman eylemleri tetikleyen webhooks:
- Projeye "Webhooks" projesine geçiş
- Click "NEW WEBHOOK"
- Webhook: [[Üye:0) [[Dönetici:0][Dönemli URL:[Dönetici: 3)[Üye Olmayan Kullanıcı URL:[Üye Olmayan URL:[Üye Olmayan URL:[Üye Olmayan URL:0)
- [FONT:0] Events:[[Dönem:[Dönem: · 1) Uyarıya olayları seçin (push, pull, delete, tarama tamamlandı)
- [FONT:0)Authentication:[Dönemli:[Döncüm:[Döncüm: 1)
- Webhook test et
- Click "CONTINUE"
Helm Chart Repository
Harbor ayrıca Helm grafik repository olarak hizmet edebilir:
# Add Harbor as Helm repository
helm repo add myteam https://harbor.yourdomain.com/chartrepo/team-frontend
--username your-username
--password your-password
# Push a Helm chart to Harbor
helm package ./mychart
helm push mychart-1.0.0.tgz myteam
# Install from Harbor
helm install myapp myteam/mychart
Future-Proofing Your Harbor Deployment
Güncellemelerle Şimdiki konum
v2.15.0 ile başlayın, Harbor serbest bırakılması eserler, Cosign'ı gerçek ve bütünleşmeyi sağlamak için kriptografik olarak imzalanmıştır.
# Download Harbor release and signature
wget https://github.com/goharbor/harbor/releases/download/v2.15.0/harbor-offline-installer-v2.15.0.tgz
wget https://github.com/goharbor/harbor/releases/download/v2.15.0/harbor-offline-installer-v2.15.0.tgz.sigstore.json
# Verify signature
cosign verify-blob
--bundle harbor-offline-installer-v2.15.0.tgz.sigstore.json
--certificate-oidc-issuer https://token.actions.githubusercontent.com
--certificate-identity-regexp '^https://github.com/goharbor/harbor/.github/workflows/publish_release.yml@refs/tags/v.*$'
harbor-offline-installer-v2.15.0.tgz
Scaling Thinkations
Organizasyonunuz büyüdükçe, düşünün:
- [FONT:0)Horizontal ölçekleme: Deploy multiple Harbor örneklerini dengelemek için dengelemek için
- [FONT=0)Dönetici:[Dönetici:[Dönetici:0)Dönetici:[Dönetici:[Dönetici:[Dönetici:0))
- [FONT=0)Dön Redis:[Dönetici:[Dönetici:0)
- [FONT:0)Object depolama:[Dönem:[Dönem:)[DüzgT:1) Yerel disk depolama yerine S3, Azure Blob veya GCS'yi yerel disk depolama için kullanın
- [FONT=0)CDN entegrasyonu:[Dönetici:[Dönetici:0) Küresel görüntü dağıtım için CDN kullanın
Gelişen Kullanım Vakaları
Harbor her zaman OCI-compliant olmuştur, yani OCI Dağıtımı'na uygun herhangi bir sanatifactı depolayabilir ve OCI şartnamesinin eskizibilitesi, AI modellerinin artık aynı güvenlik, yönetim ve operasyonel olgunluğa sahip olabileceği anlamına gelir.
- [FONT=0)AI/ML model kaydı: Storing ve dağıtım makineleri öğrenme modelleri OCI eserler olarak dağıtılıyor
- [FONT=0)WASM modülleri:[Dönetici modülleri Dağılış modüller)
- [FONT:0)Yazılı Malzeme Bill (SBOM): ), Videoların yanı sıra SBOM'leri yönetmek ve yönetmek
- [FONT:0)Policy paketler:[Dönetici:[Dönetici: 1) Dağcılık OPA politikaları ve diğer konfigürasyon eserleri
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Harbor ile çok katmanlı bir Docker kayıt inşa etmek, mevcut paradigma operasyonelleri yönetmek ve modern konteyner imajı yönetimi ihtiyaçlarını karşılamak için güçlü, güvenli ve ölçeklenebilir bir çözüm sunuyor. Harbor boşlukları açık kaynak olarak, işletme sınıfı konteyner resmi yönetimine getiren bir şirket-grad konteyner kaydı olarak, mevcut paradigma operasyonel yönetimle sorunsuz bir şekilde bütünleştirir.
Bu kılavuzda belirtilen uygulamaları uygulamak - uygun kurulum ve yapılandırmadan güvenlik zorlaştırmaya, çok katlı bir kuruluma ve operasyonel en iyi uygulamaları uygulamaya koymak - kuruluşunuzun ihtiyaçlarına hizmet eden bir üretim hazırla-okuy Harbor dağıtımını bugün yapabilirsiniz.
Başarılı Harbor için Key takeaways multi-tenancy:
- [FONT:0]Projeler temeldir:[Dönemli isim alanları farklı kiracılar için farklı kiracılar oluşturmak için projeler kullanın
- [FONT:0) Güvenlik çok önemlidir:[Dönetici:[Dönetici: · 1 )Enable kırılgan tarama, görüntü imzası ve kapsamlı denetim giriş giriş
- [[0)Automation önemlidir:[Dönem:[Dönem: 1) Robot hesaplarını, webhooksları ve CI /CD iş akışları için API entegrasyonu
- [FONT:0) ölçek için plan:[Dönetici:[Dönetici:0) Implement replikasyon, izleme ve başlangıç planlama
- [FONT:0]Stay meşgul:[Dönetici] Harbor topluluğuna katılın, güncel güncellemelerle kalın ve geri katkıda bulunun.
Küçük bir gelişim ekibi için konteynerleri yönetiyorsanız veya yüzlerce müşteriye hizmet eden geniş ölçekli bir çok katmanlı platform işletmek, Harbor, başarılı olmak için gereken özellikleri, esnekliği ve topluluk desteği sağlar.Temelleri ile başlayın, güvenlik en iyi uygulamaları uygulayın ve yavaş yavaş yavaş yavaş yavaş yavaş ihtiyaçlarınız geliştikçe gelişmiş özellikleri uygulayın.
Daha fazla bilgi ve kaynaklar için, 03. Sezonun resmi olarak yer alan "[Dönetici:0)" ⁇ .The Harbor web sitesi[Dönetici:2)GitHub repository) , Slack'deki topluluğuna katılmak ve kapsamlıFLT:4'a danışın.[DÜye Olmayanlar İçin Tıklayınız.