Prototype de k8s

Bonjour

La DIO a mis en place un prototype de cluster openshift/OKD (OKD est la version gratuite de openshift) qui est une parmi d’autre d’un cluster Kubernetes.

À noter très important qu’il s’agit d’un prototype et qu’il ne faut en aucun cas mettre des services en production sur le cluster.

Actuellement le stockage est un système ceph en hyperconvergé (le ceph tourne dans le cluster lui même qui le ré-expose à lui même). Ce n’est pas la solution à terme (qui sera un CEPH externe).

Cependant pour ceux qui ont envie de tester vous étés libre de faire «ce que vous voulez».

L’URL est https://picard.paas.obspm.fr
Les applications seront exposés sur *.apps.paas.obspm.fr
L’authentification se fait via OIDC (notre CAS).

Pour le test il faut installer le client oc il est critique d’installer la version qui vient de https://github.com/okd-project/okd/releases/tag/ et me surtout pas installer la version openshift. Cela se voit en tapant la commande

oc version

Dans la chaine de retour il faut impérativement

Client Version: 4.12.0-0.okd-2023-03-05-022504

la chaine “okd”

N’hésitez à pas échanger ici en rajoutant l’étiquette k8s

Bonjour,

Je reçois un timeout lors de la connexion à l’api via oc

oc version
Client Version: 4.15.0-0.okd-2024-03-10-010116

oc login --token=sha256~mon jeton --server=https://api.paas.obspm.fr:6443
error: dial tcp 145.238.186.11:6443: i/o timeout - verify you have provided the correct host and port and that the server is currently running.

Mon jeton est issu de ma connexion sur l’interface web.
Je me connecte en passant par OpenVPN (je suis chez moi)

Le port 6443 semble filtré

nmap -p6443 api.paas.obspm.fr
Starting Nmap 7.70 ( https://nmap.org ) at 2024-06-20 22:26 CEST
Nmap scan report for api.paas.obspm.fr (145.238.186.11)
Host is up (0.0055s latency).

PORT     STATE    SERVICE
6443/tcp filtered sun-sr-https

Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds

Bonjour,

Tu as quoi comme config dans ton vpn ?

Il faut qu’il route aussi la machine api. Un

ip route show

donne quoi ?

Merci Albert,
Je n’ai rien changé de particulier et la connexion depuis le client oc fonctionne bien maintenant, et je peux exécuter des commandes.
Je continue de tester différentes configurations.

Bonjour,
J’ai l’impression qu’il n’y a pas de Load Balancer installé sur le cluster. Mon service LoadBalancer reste en pending et je n’ai pas les droits d’installation.

~/okd$ k get services
NAME        TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
egress-lb   LoadBalancer   172.30.19.158   <pending>     80:30694/TCP   3m57s
hello-svc   NodePort       172.30.174.67   <none>        80:30690/TCP   17h

Serait-il possible d’installer par exemple celui-ci:

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.8/config/manifests/metallb-native.yaml
kubectl -n metallb-system get all

Je vois pas de raison particulière pourquoi on aurait besoin d’un loadbalancer sur un openshift.
Il y a déjà les ha proxy qui vont bien pour accéder au cluster depuis l’extérieur.
C’est quoi le but ?
Rappel : C’est un openshift pas tout à fait un kubernetes…

Oui, les 2 solutions sont surement possibles. Disons que, ce que j’ai compris en tant que novice, c’est que dans la philosophie d’un cluster Kubernetes offrant un service PAAS, l’intégration du Load Balancer dans le cluster est généralement conseillée, c’est d’ailleurs la raison d’être du type d’objet de base de Kubernetes : service LoadBalancer.

Dans mon cas, c’est juste pour des tests, donc si le load balancer MetalLB ne s’installe pas du premier coup (vu qu’il est, à la base, prévu pour Kubernetes et pas pour Openshift) inutile d’insister et de perdre du temps la dessus.

Ce que je veux dire c’est que c’est natif dans openshift, on n’a pas besoin d’en installer un en plus. Si tu veux plus d’instance (de part exemple ton apache) il suffit d’augmenter le nombre d’instance. Via l’utilisation du dns interne ça devrait «le faire».
En ce qui concerne l’accès, il y a dans la configuration du dns de obspm.fr déjà un *.paas.obspm.fr qui renvoit sur le ha-proxy du cluster openshift.
Par défaut si tu déploie une application (par exemple dans le «market») ça sera nom_projet.paas.obspm.fr qui sera pris (ou quelques choses dans le genre).

Surtout que je ne pense pas que cela soit utile…

À noter très important : j’ai des compétences aussi très limiter en k8s ou openshift, donc si ça se trouve je raconte des conneries… :wink:

ok, en effet, ce n’est surement pas très utile.

Un autre point, j’ai l’impression que je n’ai pas les droits pour créer un namespace ?

$oc project dpawg2
Already on project "dpawg2" on server "https://api.paas.obspm.fr:6443".
$ oc create namespace argo
Error from server (Forbidden): namespaces is forbidden: User "grolleau" cannot create resource "namespaces" in API group "" at the cluster scope

Je teste l’installation de Worflow Argo

ARGO_WORKFLOWS_VERSION="vX.Y.Z"
kubectl create namespace argo
kubectl apply -n argo -f "https://github.com/argoproj/argo-workflows/releases/download/${ARGO_WORKFLOWS_VERSION}/quick-start-minimal.yaml"