K8s, des applications en mode local et les présenter via HomePage
HarborNFS -> via un service NFS sur cloud.googleesh26harbor-matricule.duckdns.org16 mai, 👉 fin de journéeK8s, des applications en mode cloud et les ajouter à HomePage
esh26.matricule.duckdns.org25 mai, 👉 fin de journéeve2cuy)
👉 remise le 16 maicloud.google
es-4204d4-h26
sudo ne reconnait plus le mot de passe, redémarrer la session ssh.Harbor avec certificats TLS
DNS sur DuckDNS -> harbor-matricule.duckdns.orgHarbor, créer un dépot (projet) nommé esh26
homepage:esh26 (à partir de ghcr.io/gethomepage/homepage:latest)
docker tag ghcr.io/gethomepage/homepage:latest 4204d4.duckdns.org/esh26/homepage:esh26docker push 4204d4.duckdns.org/esh26/homepage:esh26wordpress:esh26 (à partir de wordpress:latest)mariadb:esh26 (à partir de mariadb:latest)jenkins:esh26 (à partir de jenkins/jenkins:lts)node-red:esh26 (à partir de nodered/node-red:latest)mattermost:esh26 (à partir de mattermost/mattermost-preview)NFS sur le dossier /esh26
/esh26, /esh26/themes, /esh26/plugins et /esh26/node-redk8s local (soit via VMs ou Docker-Desktop)
metallbtraefik (http://dashbord.esh26)
docker-desktop il faut utiliser 127.0.0.1 dashboard.esh26 wordpress.esh26 ... dans hosts, sinon, il faut utiliser l’adress IP publique du service traefik.homepage
image: 4204d4.duckdns.org/esh26/homepage:esh26configMap, voir les notes de cours, pour les fichiers:
config.yamlservices.yamlwidgets.yamlbookmarks.yamlsettings.yamlhttps!homepage est http://tp02.esh26



configmap voir iciharbor via harbor.matricule.duckdns.org/esh26/harbor:esh26 NOTE: 🛑 Si harbor a été démarré avec le mot de passe par défaut, il faudra effacer la base de données et recommencer la configuration:
sudo docker-compose down -v
rm -r /data/database
rm -r /data/registry
sudo ./prepare
sudo docker-compose up -d
NFS /esh26/wordpress/themes voir ici

NFS /esh26/node-red


local-pathapiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 5Gi

# Générer le certificat
sudo certbot certonly --standalone -d 4204d4.duckdns.org
# Renseigner le fichier `harbor.yml`
nano harbor.yml
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /etc/letsencrypt/live/4204d4.duckdns.org/fullchain.pem
private_key: /etc/letsencrypt/live/4204d4.duckdns.org/privkey.pem
Voir ici
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs-node-red
spec:
...
storageClassName: nfs-node-red
nfs:
server: esh26-mon-matricule.duckdns.org
path: /esh26/node-red
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-nfs-node-red
spec:
storageClassName: nfs-node-red
...
# ============================================================
# ConfigMap — config.yaml de Homepage
# ============================================================
apiVersion: v1
kind: ConfigMap
metadata:
name: homepage-config
data:
config.yaml: |
title: Homepage
theme: dark
color: slate
allowedHosts: homepage.esh26
apiVersion: apps/v1
kind: Deployment
metadata:
name: homepage
spec:
replicas: 1
selector:
matchLabels:
app: homepage
template:
metadata:
labels:
app: homepage
spec:
containers:
- name: homepage
image: harbor.matricule.duckdns.org/esh26/homepage:esh26
### Lancer une application multi-fichiers YAML
# kustomization.yaml
# kubectl apply -k ./
resources:
- esh26.yaml
- traefik-ns.yaml
- jenkins.yaml
- node-red.yaml
- wordpress.yaml
Dans les notes de cours, il est indiqué qu’un PVC est toujours dépendant d’un PV.
Par contre, pour un volume local il est possible d’utiliser la classe storageClassName: local-path si le service local-path à été installé.
# Installation d'un `local-path-storage`
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.32/deploy/local-path-storage.yaml
$ kga
NAME READY STATUS RESTARTS AGE
pod/homepage-76fb784c47-gqspg 1/1 Running 0 24h
pod/jenkins-55b96dfc79-t9h4n 1/1 Running 0 23h
pod/mariadb-8544495789-4s4sv 1/1 Running 0 24h
pod/mattermost-69f568bcf9-rtk76 1/1 Running 0 24h
pod/node-red-68b55c5bfb-xhz65 1/1 Running 0 24h
pod/wordpress-5d9548759d-v7dh5 1/1 Running 0 24h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/homepage ClusterIP 10.109.226.194 <none> 80/TCP 24h
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 24h
service/mariadb-service ClusterIP 10.100.209.86 <none> 3306/TCP 24h
service/service-jenkins ClusterIP 10.103.139.150 <none> 80/TCP,50000/TCP 23h
service/service-mattermost ClusterIP 10.107.102.101 <none> 8065/TCP 24h
service/service-node-red ClusterIP 10.100.73.1 <none> 80/TCP 24h
service/wordpress-service ClusterIP 10.104.185.125 <none> 80/TCP 24h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/homepage 1/1 1 1 24h
deployment.apps/jenkins 1/1 1 1 23h
deployment.apps/mariadb 1/1 1 1 24h
deployment.apps/mattermost 1/1 1 1 24h
deployment.apps/node-red 1/1 1 1 24h
deployment.apps/wordpress 1/1 1 1 24h
NAME DESIRED CURRENT READY AGE
replicaset.apps/homepage-76fb784c47 1 1 1 24h
replicaset.apps/jenkins-55b96dfc79 1 1 1 23h
replicaset.apps/mariadb-8544495789 1 1 1 24h
replicaset.apps/mattermost-69f568bcf9 1 1 1 24h
replicaset.apps/node-red-68b55c5bfb 1 1 1 24h
replicaset.apps/wordpress-5d9548759d 1 1 1 24h
remise le 25 mai
k8s de type auto-pilote, sur google, nommé tu-parles-dun-projettraefik
| Matricule | Nom | Prénom | Liens |
|---|---|---|---|
| 1146373 | Charbonneau | Félix | harbor app-cloud |
| 1929205 | Moussette | David | harbor app-cloud |
| 2133738 | Boudreault | Charles | harbor app-cloud |
| 2135251 | Latreille | Léa | harbor app-cloud |
| 2176750 | Lamonde | Louis | harbor app-cloud |
| 2236171 | Papineau | Émy | 👍 harbor app-cloud |
| 2248071 | Bilodeau | Lilianne | harbor app-cloud |
| 2251141 | Bouchareb | Saad | harbor app-cloud |
| 2464026 | Ezzahiri | Adam | harbor app-cloud |
| 2467525 | Guertin | Ubert | harbor app-cloud |
| 2482651 | Korotkov | Maxim | harbor app-cloud |
| 2487266 | Goudreau | Gabriel | 👍 harbor app-cloud |
| 6226374 | Gosselin-Beaudoin | Xavier | harbor app-cloud |
| 6294775 | Paradis | Laury-Ann | harbor app-cloud |
| 6313976 | Lamirande | Xavier | harbor app-cloud |
| 1191869 | Bebnowski-Lavoie | Guillaume | harbor app-cloud |
| 1970541 | Asfaw | Marcus | harbor app-cloud |
| 2156548 | Mechmachi | Achraf | harbor app-cloud |
| 2241079 | Légaré | Christopher | harbor app-cloud |
| 2257181 | Rivet | Olivier | harbor app-cloud |
| 2357057 | Rimpel Morel | Chelsey | harbor app-cloud |
| 2383950 | Lalonde | Félix | harbor app-cloud |
| 2384502 | Guay | Raphaël | harbor app-cloud |
| 2482798 | Archambault | Derek | harbor app-cloud |
| 6220854 | Paradis | Louam | harbor app-cloud |
| 6235015 | Diallo | Abdoulaye | harbor app-cloud |
| 6289173 | Dubois | Zachary | harbor app-cloud |
| 6297476 | Forget | Antoine | harbor app-cloud |
| 6313680 | Nibimenya | Maëlys | harbor app-cloud |