diff --git a/docs/images/Architecture OpenShift 4.drawio.svg b/docs/images/Architecture OpenShift 4.drawio.svg new file mode 100644 index 0000000..3cff4d1 --- /dev/null +++ b/docs/images/Architecture OpenShift 4.drawio.svg @@ -0,0 +1,4 @@ + + + +mgmtiamfsdcamptocampsi-quay.epfl.chcloud....Text is not SVG - cannot display \ No newline at end of file diff --git a/docs/images/monitoring.png b/docs/images/monitoring.png new file mode 100644 index 0000000..a3cf256 Binary files /dev/null and b/docs/images/monitoring.png differ diff --git "a/docs/visite-guid\303\251e.css" "b/docs/visite-guid\303\251e.css" new file mode 100644 index 0000000..047ac01 --- /dev/null +++ "b/docs/visite-guid\303\251e.css" @@ -0,0 +1,26 @@ +.reveal ul { + display: inherit; +} + +section { + border-radius: 20px; +} + +section.slide-text-gray { + background-color: #6f6f6fa3; + pre { + color: white; + } +} + +code { + color: lightblue; +} + +section#sec-title-slide a { + color: var(--r-link-color-hover); +} + +section.slide-code-boxed pre { + background-color: white; +} diff --git "a/docs/visite-guid\303\251e.html" "b/docs/visite-guid\303\251e.html" new file mode 100644 index 0000000..4f16790 --- /dev/null +++ "b/docs/visite-guid\303\251e.html" @@ -0,0 +1,347 @@ + + + + +OpenShift Next — Tour du propriétaire + + + + + + + + + + + + + + +
+
+

OpenShift Next — Tour du propriétaire

https://go.epfl.ch/visite-guidee-openshift-next

+

10.06.2023

+
+ + + +
+
+

Architecture

+ +
+

Architecture OpenShift 4.drawio.svg +

+
+ + +
+
+

Réseau

+
    +
  • L2-L3 = réseau «normal» (VMware VLAN legacy) +
      +
    • 10.x.y.0/24
    • +
    • … /22 ? 🙏😫
    • + +
  • +
  • Réseau overlay +
      +
    • OpenVSwitch / OVN
    • +
    • Encapsulation Geneve (RFC8926)
    • + +
  • + +
+ + +
+
+

Réseau : layer 7

+
    +
  1. (Optionnel) AVI + certificat wildcard EPFL
  2. +
  3. HAProxy +
      +
    • Dispose de son propre certificat (auto-signé pour l'instant)
    • +
    • Accès direct (pas via l'AVI) aux points d'entrée infrastructurels
    • + +
  4. + +
+ + +
+
+
+
+

Points d'entrée

+
    +
  • Web +
      +
    • Cloud RedHat
    • +
    • Consoles des clusters
    • + +
  • +
  • CLI +
      +
    • kubectl / oc
    • +
    • xaasible , xaasctl
    • + +
  • +
  • … Et même : client lourd (OpenLens)
  • + +
+ + +
+
+

Accès : CLI

+
+ +
./xaasible -t all.xaasctl
+./xaasctl list-clusters
+./xaasctl login-cluster mgmt.ocp-t.epfl.ch
+
+
+ +
+ +
kubectl get all --all-namespaces
+
+
+ + +
+
+

Accès : GUI

+

+Il faut trouver le mot de passe de kubeadmin +

+ +
+sh -x ./xaasctl login-cluster mgmt.ocp-t.epfl.ch
+
+ + +
+
+

Comprendre

+

+OAuth bearer tokens +

+ +
    +
  • oauth-openshift.apps.mgmt.ocp-test.epfl.ch les délivre
  • +
  • L'API server les vérifie à chaque requête
  • +
  • Tout le monde (GUI Web, CLI, kubelets…) parle à l'API server
  • + +
+ + + + +
+
+

Comprendre : le contrôle d'accès dans OpenShift

+
    +
  • Credentials → OAuth token +
      +
    • Objets Kubernetes OAuth
    • + +
  • +
  • OAuth token → nom d'utilisateur +
      +
    • 💡 Convention : un nom d'utilisateur qui n'a pas de deux-points au milieu est un «vrai»
    • + +
  • + +
+ + +
+
+

Comprendre : le contrôle d'accès dans OpenShift

+
    +
  • Nom d'utilisateur → rôle(s) +
      +
    • RoleBinding, ClusterRoleBinding
    • + +
  • +
  • Rôle(s) → permissions +
      +
    • Role, ClusterRole
    • + +
  • +
  • Permissions → décision d'accès +
  • + +
+ + +
+
+
+
+

Day 2

+
    +
  • Mettre à jour
  • +
  • Observer
  • +
  • Aggrandir
  • + +
+ + +
+
+

Day 2 : mettre à jour

+ + +
+
+

Day 2 : observer

+ +
+

monitoring.png +

+
+ + +
+
+

Day 2 : aggrandir

+ +
+
+
+
+

Prêts pour la prod ?

+
    +
  • Certificats 🔒 +
      +
    • API server
    • +
    • GUI Web, applications hébergées
    • + +
  • +
  • Stratégie de DRP +
      +
    • Sauvegarde / restauration de la registry
    • +
    • Reconnexion des clusters
    • +
    • Le reste : … à la charge des usagers
    • + +
  • + +
+ + +
+
+

Prêts pour la prod ?

+
    +
  • Droits et rôles dans le cluster de mgmt
  • +
  • Infrastructure nodes 💰
  • +
  • Alertes
  • +
  • Auditabilité (ISGOV-ITSEC) +
      +
    • Quay
    • +
    • Network policies
    • + +
  • + +
+ + +
+
+

🔎 Definition of done

+
    +
  1. Je sais le faire
  2. +
  3. Mon collègue sait le faire aussi
  4. +
  5. C'est documenté
  6. +
  7. Il y a un tag pour ça dans xaasible
  8. + +
+
+
+
+
+ + + + + diff --git "a/docs/visite-guid\303\251e.org" "b/docs/visite-guid\303\251e.org" new file mode 100644 index 0000000..aa3e362 --- /dev/null +++ "b/docs/visite-guid\303\251e.org" @@ -0,0 +1,242 @@ +#+TITLE: OpenShift Next — Tour du propriétaire +#+SUBTITLE: https://go.epfl.ch/visite-guidee-openshift-next +#+DATE: 10.06.2023 +#+AUTHOR: Dominique Quatravaux +#+EMAIL: dominique@quatravaux.org +#+LANGUAGE: fr +#+OPTIONS: timestamp:nil +#+OPTIONS: toc:nil +#+OPTIONS: num:nil +#+OPTIONS: author:nil + +#+REVEAL_EXTRA_CSS: visite-guidée.css + +#+MACRO: spanfrag @@html:@@ +#+MACRO: endspan @@html:@@ +#+MACRO: openshiftlogo @@html:@@ +#+REVEAL_ROOT: https://cdn.jsdelivr.net/npm/reveal.js@4.6.1/ +#+REVEAL_HLEVEL: 1 +#+REVEAL_TITLE_SLIDE_BACKGROUND: https://farmhouseliving.com/wp-content/uploads/2021/04/NewBuildModernFarmhouseHomeTour-HomeExterior2.jpg +#+REVEAL_TITLE_SLIDE_BACKGROUND_OPACITY: 0.4 + +#+COMMENTÇAMARCHE: (use-package ox-reveal :quelpa) +#+COMMENTÇAMARCHE: 2. C-c C-e R B + +#+BEGIN_NOTES + +Attentes : + +- NH : «du classique». + - Formation générale à OpenShift, + - coucou RedHat + - licences + - comptes cloud + - lifecycle + - composants + - logs + - troubleshoot + - ajouter une appli + - comment ouvrir un ticket +- QV : comprendre XaaSible + - Parti de ? Arrivé à ? + - Il y a 1001 manières de gérer de l'OpenShift + - Qu'est-ce qui est important pour DQ ? + - Qu'est-ce qui est important de garder dans la livraison ? Que pouvons-nous changer ? + +Pour une autre fois : + +- NH : Prometheus + - Remontée discrétionnaire / mandatory d'infos depuis les clusters administrés + - Data flow, architecture (WAL) + +#+END_NOTES + + +* Architecture + :PROPERTIES: + :reveal_background: #55aac0 + :END: + +[[./images/Architecture OpenShift 4.drawio.svg]] + + +** Réseau + +#+ATTR_REVEAL: :frag (t t) +- L2-L3 = réseau «normal» (VMware VLAN legacy) + #+ATTR_REVEAL: :frag (t t) + - 10.x.y.0/24 + - ... /22 ? 🙏😫 +- Réseau overlay + #+ATTR_REVEAL: :frag (t t) + - OpenVSwitch / OVN + - Encapsulation Geneve (RFC8926) + + +** Réseau : layer 7 + +#+ATTR_REVEAL: :frag (t t) +1. (Optionnel) AVI + certificat wildcard EPFL +2. HAProxy + #+ATTR_REVEAL: :frag (t t) + - Dispose de son propre certificat (auto-signé pour l'instant) + - Accès direct (pas via l'AVI) aux points d'entrée infrastructurels + + +* Points d'entrée + +#+ATTR_REVEAL: :frag (t t t) +- Web + #+ATTR_REVEAL: :frag (t t) + - Cloud RedHat + - Consoles des clusters +- CLI + #+ATTR_REVEAL: :frag (t t) + - ~kubectl~ / ~oc~ + - ~xaasible~ {{{spanfrag}}}, ~xaasctl~ {{{endspan}}} +- ... Et même : client lourd ([[https://github.com/MuhammedKalkan/OpenLens][OpenLens]]) + + +** Accès : CLI + +#+begin_src bash +./xaasible -t all.xaasctl +./xaasctl list-clusters +./xaasctl login-cluster mgmt.ocp-t.epfl.ch +#+end_src + +#+ATTR_REVEAL: :frag t +#+begin_src bash +kubectl get all --all-namespaces +#+end_src + + +** Accès : GUI + :PROPERTIES: + :reveal_background: https://reverseshot.org/uploads/entries/images/lastcrusade1-590x308.jpg + :reveal_background_opacity: 0.7 + :html_container_class: slide-text-gray + :END: + + +Il faut trouver le mot de passe de kubeadmin + +#+ATTR_REVEAL: :frag t +#+begin_src +bash -x ./xaasctl login-cluster mgmt.ocp-t.epfl.ch +#+end_src + + +** Comprendre + :PROPERTIES: + :reveal_background: https://qph.cf2.quoracdn.net/main-qimg-788516ececb34c3a036289264c9c6790-lq + :reveal_background_opacity: 0.7 + :html_container_class: slide-text-gray + :END: + +*OAuth bearer tokens* + +#+ATTR_REVEAL: :frag (t t t) +- ~oauth-openshift.apps.mgmt.ocp-test.epfl.ch~ les délivre +- L'API server les vérifie à chaque requête +- *Tout le monde* (GUI Web, CLI, kubelets...) parle à l'API server + +#+BEGIN_NOTES +Pas trop sûr de comment se passe le point 2... Cf. [[https://docs.openshift.com/container-platform/4.13/authentication/understanding-authentication.html][la doc officielle]] +#+END_NOTES + + +** Comprendre : le contrôle d'accès dans OpenShift + +#+ATTR_REVEAL: :frag (t t) +- Credentials → OAuth token + #+ATTR_REVEAL: :frag t + - {{{openshiftlogo}}} Objets Kubernetes ~OAuth~ +- OAuth token → nom d'utilisateur + #+ATTR_REVEAL: :frag t + - 💡 Convention : un nom d'utilisateur qui n'a pas de deux-points au milieu est un «vrai» + + +** Comprendre : le contrôle d'accès dans OpenShift + +#+ATTR_REVEAL: :frag (t t t) +- Nom d'utilisateur → rôle(s) + #+ATTR_REVEAL: :frag t + - ~RoleBinding~, ~ClusterRoleBinding~ +- Rôle(s) → permissions + - ~Role~, ~ClusterRole~ +- Permissions → décision d'accès + #+ATTR_REVEAL: :frag t + - [[https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/][Admission controllers]] + + +* Day 2 + +#+ATTR_REVEAL: :frag (t t t) +- Mettre à jour +- Observer +- Aggrandir + + +** Day 2 : mettre à jour + :PROPERTIES: + :reveal_background: https://www.dictionary.com/e/wp-content/uploads/2018/03/easy-peasy-lemon-squeezy.jpg + :reveal_background_opacity: 0.3 + :END: + + +** Day 2 : observer + +[[./images/monitoring.png]] + + +** Day 2 : aggrandir + +* Prêts pour la prod ? + :PROPERTIES: + :reveal_background: https://media.istockphoto.com/id/1015452442/photo/rural-road-work-ahead-warning-sign.jpg?s=612x612&w=0&k=20&c=Jaz2uH-07Csx_LHfTzytNFx_tGSRzc0XifwAV5Ku4Jo= + :reveal_background_opacity: 0.4 + :html_container_class: slide-text-gray + :END: + +#+ATTR_REVEAL: :frag (t t) +- Certificats 🔒 + #+ATTR_REVEAL: :frag (t t) + - API server + - GUI Web{{{spanfrag}}}, applications hébergées {{{endspan}}} +- Stratégie de DRP + #+ATTR_REVEAL: :frag (t t t) + - Sauvegarde / restauration de la registry + - Reconnexion des clusters + - Le reste : ... à la charge des usagers + + +** Prêts pour la prod ? + :PROPERTIES: + :reveal_background: https://media.istockphoto.com/id/1015452442/photo/rural-road-work-ahead-warning-sign.jpg?s=612x612&w=0&k=20&c=Jaz2uH-07Csx_LHfTzytNFx_tGSRzc0XifwAV5Ku4Jo= + :reveal_background_opacity: 0.4 + :html_container_class: slide-text-gray + :END: + +#+ATTR_REVEAL: :frag (t t t) +- Droits et rôles dans le cluster de mgmt +- [[https://docs.openshift.com/container-platform/4.13/nodes/nodes/nodes-nodes-creating-infrastructure-nodes.html][Infrastructure nodes]] {{{spanfrag}}} 💰 {{{endspan}}} +- Alertes +- Auditabilité (ISGOV-ITSEC) + #+ATTR_REVEAL: :frag (t t) + - Quay + - Network policies +- Contrôle des ressources + +** 🔎 Definition of done + :PROPERTIES: + :reveal_background: https://media.istockphoto.com/id/1015452442/photo/rural-road-work-ahead-warning-sign.jpg?s=612x612&w=0&k=20&c=Jaz2uH-07Csx_LHfTzytNFx_tGSRzc0XifwAV5Ku4Jo= + :reveal_background_opacity: 0.4 + :html_container_class: slide-text-gray + :END: + +#+ATTR_REVEAL: :frag (t t t t) +1. Je sais le faire +2. Mon collègue sait le faire aussi +3. C'est documenté +4. Il y a un tag pour ça dans ~xaasible~