当前位置:网站首页>Cloud Native (36) | Introduction et installation de Harbor à kubernets
Cloud Native (36) | Introduction et installation de Harbor à kubernets
2022-07-20 13:34:00 【Lansonli】
Catalogue des articles
HarborDémarrer et installer
Un.、Introduction
1、Introduction
HarborIl est utilisé pour le stockage et la distributionDockerMiroir de classe entrepriseRegistryServeur.
En tant qu'entreprise privée Registry Serveur,Harbor Amélioration des performances et de la sécurité.Améliorer l'utilisation par les utilisateurs Registry Efficacité de la construction et de l'exécution du miroir de transfert d'environnement.Harbor Prise en charge de l'installation sur plusieurs Registry Copie de l'actif miroir du noeud,Le miroir est entièrement privé Registry Moyenne, Veiller à ce que les données et la propriété intellectuelle soient contrôlées sur le réseau interne de l'entreprise.En plus,Harbor Fournit également des caractéristiques de sécurité avancées,Comme la gestion des utilisateurs,Contrôle d'accès et vérification des activités, etc..
- Contrôle d'accès fondé sur les rôles - Utilisateurs et Docker L'entrepôt miroir passe par“Projets”Gérer l'Organisation,Un utilisateur peut avoir plusieurs entrepôts miroirs dans le même espace de noms(project)Il y a différentes permissions.
- Copie miroir - Les miroirs peuvent être Registry Copie dans l'Instance(Synchroniser).Idéal pour l'équilibrage des charges,Haute disponibilité,Mélange de nuages et de scènes nuageuses.
- Interface utilisateur graphique - Les utilisateurs peuvent naviguer à travers le Navigateur,Récupérer le courant Docker Entrepôt miroir,Gérer les projets et les espaces de noms.
- AD/LDAP Soutien - Harbor Peut intégrer ce qui existe déjà au sein de l'entreprise AD/LDAP,Pour la gestion de l'authentification.
- Gestion des audits - Toutes les opérations sur l'entrepôt miroir peuvent être enregistrées et retracées,Pour la gestion des audits.
- Internationalisation - J'ai déjà l'anglais、En chinois、Devon.、Versions localisées en japonais et en russe.Plus de langues seront ajoutées.
- RESTful API - RESTful API Fourni à l'Administrateur pour Harbor Plus de contrôle, Faciliter l'intégration avec d'autres logiciels de gestion.
- Déploiement simple - Deux outils d'installation sont disponibles en ligne et hors ligne, Peut également être installé sur vSphere Plate - forme(OVA Comment)Appareils virtuels.
2、Composants de base
Nginx(Proxy):Pour agentHarborDeregistry,UI, tokenAutres services
db:Responsable du stockage des permissions de l'utilisateur、Journal de vérification、DockerimageDonnées telles que les informations de regroupement.
UI:Fournir une interface graphique,Aide à la gestion des utilisateursregistryMiroir sur, Et d'autoriser les utilisateurs
jobsevice: Responsable de la copie miroir ,Lui etregistryCommunications,D'unregistry pullMiroir etpushVers l'autreregistry,Et enregistrerjob_log
Adminserver:Est le Centre de gestion de la configuration du système avec contrôle de la quantité de stockage,uiEtjobserverLe retour doit être chargé au démarrageadminserverConfiguration de.
Registry:OriginaldockerEntrepôt miroir,Responsable du stockage des fichiers miroirs.
Log:Pour aider à surveillerHarborExécution,Responsable de la collecte des autres composantslog,EnregistrésyslogMoyenne
3、Installation
3.1、helmTéléchargercharts
helm repo add harbor https://helm.goharbor.io
helm pull harbor/harbor
3.2、Configuration personnalisée
3.2.1、TLSCertificat
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ${KEY_FILE:tls.key} -out ${CERT_FILE:tls.cert} -subj "/CN=${HOST:lanson.com}/O=${HOST:lanson.com}"
kubectl create secret tls ${CERT_NAME:lanson-tls} --key ${KEY_FILE:tls.key} --cert ${CERT_FILE:tls.cert}
## Voici un exemple de commande
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=*.lanson.com/O=*.lanson.com"
kubectl create secret tls harbor.lanson.com --key tls.key --cert tls.crt -n devops
Le certificat original était lanson.com Nom de domaine
Maintenant, c'estharbor.lanson.com Nom de domaine.
Créer un seul
3.2.2、values-overrides.yamlConfiguration
Configuration des anciennes versions;Utilisez votre propre certificat. Votre propre certificat doit être compatible avec harbor Les composants sont gênants
expose:
type: ingress
tls:
certSource: "secret"
secret:
secretName: "harbor.lanson.com"
notarySecretName: "harbor.lanson.com"
ingress:
hosts:
core: harbor.lanson.com
notary: notary-harbor.lanson.com
externalURL: https://harbor.lanson.com
internalTLS:
enabled: true
certSource: "secret" #
core:
secretName: "harbor.lanson.com"
jobservice:
secretName: "harbor.lanson.com"
registry:
secretName: "harbor.lanson.com"
portal:
secretName: "harbor.lanson.com"
chartmuseum:
secretName: "harbor.lanson.com"
trivy:
secretName: "harbor.lanson.com"
persistence:
enabled: true
resourcePolicy: "keep"
persistentVolumeClaim:
registry: # Le miroir
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 5Gi
chartmuseum: #DépôthelmDechart
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 5Gi
jobservice: #
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 1Gi
database: #Base de données pgsql
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 1Gi
redis: #
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 1Gi
trivy: # Analyse de vulnérabilité
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 5Gi
metrics:
enabled: true
Nouvelle configuration de version,harbor Certificat par défaut pour les composants internes .ingress Vous devez utiliser votre propre certificat
Vos propres informations de certificat pour chaque namespaceConfigurer le même
expose: #web Certificat pour l'accès au navigateur
type: ingress
tls:
certSource: "secret"
secret:
secretName: "harbor.lanson.com"
notarySecretName: "harbor.lanson.com"
ingress:
hosts:
core: harbor.lanson.com
notary: notary-harbor.lanson.com
externalURL: https://harbor.lanson.com
internalTLS: #harbor Certificats pour les composants internes
enabled: true
certSource: "auto"
persistence:
enabled: true
resourcePolicy: "keep"
persistentVolumeClaim:
registry: # Le miroir
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 5Gi
chartmuseum: #DépôthelmDechart
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 5Gi
jobservice: #
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 1Gi
database: #Base de données pgsql
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 1Gi
redis: #
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 1Gi
trivy: # Analyse de vulnérabilité
storageClass: "rook-ceph-block"
accessMode: ReadWriteOnce
size: 5Gi
metrics:
enabled: true
3.2.3、Installation
#Attention!, Parce que le profil utilise secret, Alors créez - le à l'avance dans cet espace de noms
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.cert -subj "/CN=*.lanson.com/O=*.lanson.com"
kubectl create secret tls lanson.com --key tls.key --cert tls.cert -n devops
helm install itharbor ./ -f values.yaml -f override.yaml -n devops
3.2.4、Désinstaller
#Désinstaller
helm uninstall itharbor -n devops
2.、dockerUtiliser
1、Configuration de base
1.1、UtiliserhttpsMode d'accès
Parce queharborUtiliséhttps.Besoindocker Fais confiance à ça https;
# Prends ça.xx.certDocumentation Copier vers /etc/docker/certs.d/harbor.lanson.com/tls.crt
Dans les nuages
Nom de domaine personnalisé
Comme suit::1、 Configurer pour chaque hôte /etc/hostsDocumentation. L'adresse du nom de domaine peut être spécifiée comme
Réseau publicip
Ouingress Où se trouve le noeud ip
2、In
3、Configuration recommandée ingress Où se trouve le noeud ip . De cette façon, nous utilisons des noms de domaine pour ingressNoeud.ingressNodenginx J'ai écouté ce nom de domaine , Est transmis au service désigné/etc/docker/certs.d/
Préparez le dossier des noms de domaine ci - dessous ( Contient un numéro de port non par défaut ), Et mettre le nom de domainecert/crt
Copier le fichier dans. Et modifier le nom du fichierxxx.crt
,Je ne peux pas.certDocumentation
1.2、Non utiliséhttpsAccès à
#ModifierdockerProfil
{"insecure-registries":["https://test.com","192.168.1.13","Plus...."]}
2、Agent miroir
# Tirez!dockerMiroir officiel.Et les mettre en cache.harbor.lanson.com/ Nom de l'entrepôt / + /library + /Nom du miroir:Version
docker pull harbor.lanson.com/harbor-hub/library/busybox:latest
# Tiers. En utilisant le nom complet du tiers harbor.lanson.com/objs + Tiers
docker pull harbor.lanson.com/objs/redislabs/redis
- Page d'accueil du blog:https://lansonli.blog.csdn.net
- Bienvenue à la fête Collection Laissez un message Veuillez corriger toute erreur!
- Cet article est rédigé par Lansonli Original,Premier départ CSDNBlogs
- N'oubliez pas que les autres courent encore,J'espère que tout le monde prendra le temps d'étudier,Pour une vie meilleure
边栏推荐
- CNN结构设计技巧:兼顾速度精度与工程实现
- Fixed footer
- c# LeetCode刷题笔记5- 一维数组的动态和
- 什么是更适合中国企业的CRM选型标准?
- h5实现一个刮刮卡的动画效果
- Experiment 1 static comprehensive experiment
- Experiment 2 rip comprehensive experiment
- Dotnet reading WPF source code notes how to trigger rendering collection
- OSPF of hcip
- Automatic Metallic Surface Defect Detection and Recognition with Convolutional NeuralNetworks-论文阅读笔记
猜你喜欢
Get started with vite
Reading notes - shopping mall
Is it really possible to make reports with zero coding?
Experiment 1 static comprehensive experiment
strcpy()
Panda3D drawing cube
Server check fail, please check server 192.168.11.13 ,port 9848 is available , error ={}
[ManageEngine]ITSM在零售业的应用
NVIDIA开源了基于PyTorch的3D深度学习的综合库
Go language constants and operators
随机推荐
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(7)-Fiddler状态面板-QuickExec命令行
c# LeetCode刷题笔记5- 一维数组的动态和
早期肺结核检测
SQL SERVER alwayson ,可以从从库做CDC么?
[Kingbase] data type formatting function
Mitsubishi FX PLC Fuzzy PID membership function (FB)
【ManageEngine】SIEM为企业带来的价值
MongoDB启动报错 ERROR: child process failed, exited with 1
How to carry out "small step reconstruction"?
0055 PHP language introduction and HelloWorld
RK3399平台开发系列讲解(中断篇)13.16、request_irq的实现
Reading notes - shopping mall
实验2 RIP综合实验
vulnhub Me-and-My-Girlfriend-1
C leetcode notes 5-dynamic sum of one-dimensional array
实验3 MGRE 综合实验
Upgrading thinking from engineer to technical leader
降噪效果提升6倍以上!将麦克风设计在耳机内部,这款无线降噪耳机不一般!
Server check fail, please check server 192.168.11.13 ,port 9848 is available , error ={}
鉴源论坛 · 观模丨测试的充分性问题