From d6c00fb6cbf8a7eeee515617a3bd36f70396ff6f Mon Sep 17 00:00:00 2001 From: julien Date: Wed, 18 Feb 2026 17:46:23 +0100 Subject: [PATCH] "Updates" --- TuringPi/k3sup.md | 131 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 98 insertions(+), 33 deletions(-) diff --git a/TuringPi/k3sup.md b/TuringPi/k3sup.md index 6de874b..1c1e050 100644 --- a/TuringPi/k3sup.md +++ b/TuringPi/k3sup.md @@ -50,7 +50,7 @@ k3sup join --ip 192.168.1.16 --server-ip 192.168.1.14 --user pleb --ssh-key $HOM ```bash # Export du kubeconfig -export KUBECONFIG=/home/julien/kubernetes/kubeconfig +export KUBECONFIG=/local/path/to/kubeconfig # Vérification des nœuds kubectl get nodes -o wide @@ -172,6 +172,56 @@ spec: sudo k3s kubectl -n longhorn-system apply -f longhorn-ingress.yml ``` +#### metallb + +```bash +# Add MetalLB repository to Helm +helm repo add metallb https://metallb.github.io/metallb + +# Check the added repository +helm search repo metallb + +helm upgrade --install metallb metallb/metallb --create-namespace \ +--namespace metallb-system --wait +``` +```bash +Release "metallb" does not exist. Installing it now. +NAME: metallb +LAST DEPLOYED: Wed Feb 18 11:46:03 2026 +NAMESPACE: metallb-system +STATUS: deployed +REVISION: 1 +TEST SUITE: None +NOTES: +MetalLB is now running in the cluster. + +Now you can configure it via its CRs. Please refer to the metallb official docs +on how to use the CRs. +``` +```bash +vim metallb-config.yaml + +--- +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: default-pool + namespace: metallb-system +spec: + addresses: + - 192.168.1.21-192.168.1.40 + +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: default + namespace: metallb-system +spec: + ipAddressPools: + - default-pool +``` + #### traefik ```bash @@ -209,9 +259,41 @@ metadata: spec.ingressClassName: traefik traefik.ingress.kubernetes.io/router.middlewares: kube-system-traefik-basic-auth-middleware@kubernetescrd spec: - rules: - - host: trfk.delmar.bzh - http: + serviceAccountName: traefik-ingress + env: + name: OVH_ENDPOINT + value: ovh-eu + name: OVH_APPLICATION_KEY + value: 3f8bdfed17f848d8 + name: OVH_APPLICATION_SECRET + value: 6946758d7515ecef108aeb286bf3c7d0 + name: OVH_CONSUMER_KEY + value: 94b2ddf482d36421a33aa6b3aa51595 + args: + - --configFile=/config/traefik.toml + volumeMounts: + - name: traefik-config + mountPath: /config/ + - name: traefik-custom + mountPath: /custom/ + - name: traefik-certs + mountPath: /certs/ + ports: + name: http + containerPort: 80 + name: https + containerPort: 443 + name: dashboard + containerPort: 8080 + volumes: + - name: traefik-config + configMap: + - name: traefik-config + - name: traefik-custom + - name: traefik-certs + persistentVolumeClaim: + claimName: traefik-certsrules: + - http: paths: - pathType: Prefix path: "/" @@ -219,39 +301,22 @@ spec: service: name: traefik-dashboard port: - number: 9000 + number: 8080 --- - - ---- -apiVersion: traefik.io/v1alpha1 -kind: IngressRoute +apiVersion: v1 +kind: Service metadata: - name: dashboard + name: traefik-dashboard spec: - entryPoints: - - web - - websecure - routes: - - match: Host(`trfk.delmar.bzh`) - kind: Rule - services: - - name: api@internal - kind: TraefikService - middlewares: - - name: traefik-basic-auth-middleware - tls: - secretName: traefik-tls -certificatesResolvers: - caServer: "https://acme-staging-v02.api.letsencrypt.org/directory" - myresolver: - acme: - email: admin@delmar.bzh - storage: "/letsencrypt/acme.json" - dnsChallenge: - provider: ovh - delayBeforeCheck: 0 + ports: + - name: http + port: 8080 + targetPort: 8080 + selector: + app: traefik-dashboard + type: LoadBalancer + ``` ```bash