OpenShift termistöä kehittäjille

Last modified by tykkala@helsinki_fi on 2024/02/07 06:33

On useita OpenShiftiin liittyviä termejä, ja tässä on kuvattu osa niistä.

Pod, Route ja Service on määritelty tarkemmin täällä.


ProjectsProjekti on yläkäsite jonka tarkoitus on helpottaa deploymenttien organisoinnissa. Openshift projekti tarjoaa yhdelle kehittäjälle tai tiimille kehittäjiä tavan organisoida ja hallinnoida sisältöjään erillään muista kehittäjistä. Jokaisella projektilla on omat resurssit, käyttöoikeudet ja rajoitteet (kuinka paljon ramia/levytilaa/prosessorin ytimiä jne., lisätietoa). Projekti toimii laatikkona, jonka sisällä kaikki tiimisi sovellukset ja päätepisteet toimivat


Containers (kontit)Perusyksikkö OpenShift sovelluksissa on kontti (joskus Linux kontti). Linux kontit ovat kevyt mekanismi eristää käynnissä olevia prosesseja, näin voidaan varmistaa että ne voivat käyttää vain niille rajattuja resursseja.

Vaikka et joudu suoraan toimimaan Docker CLI:n tai servicen kanssa käyttäessä OpenShift konttialustaa, on silti tärkeää ymmärtää mihin ne kykenevät ja tietää Docker terminologiaa. Tämä auttaa ymmärtämään niiden roolin OpenShift konttialustassa ja kuinka ohjelmasi toimivat konttien sisällä.


Pods OpenShift konttialusta käyttää hyväkseen Kuberneteksen käsitettä pod, joka on yksi tai useampi kontti pyörimässä yhdellä 'serverillä'. Pod on pienin yksittäinen laskennallinen yksikkö jonka voi määritellä, käynnistää ja jota voi hallinnoida.

Karkeasti ajatellen jokainen pod toimii kone-esiintymänä('oikea' tai virtuaalinen kone) kontin suhteen. Jokaisella podilla on oma sisäinen IP-osoite, joten se omistaa kaikki porttinsa, ja kaikki kontit podin sisällä voivat jakaa paikallisen tallennustilan ja verkkotoiminnan.


ImagesOpenShiftissä kontit pohjautuvat Dockerilla määriteltyihin kontti-'imageihin'. Image on binääri, joka sisältää kaikki tarvittavat yksittäisen kontin ajamiseen, sekä metadataa joka kertoo mitä kontti vaatii ja mihin se pystyy.

Voit ajatella imagea paketointitekniikkana. Konteilla on pääsy vain imagessa määriteltyihin resursseihin ellet sitä luodessa määrittele lisää resursseja. Käynnistämällä saman imagen useissa konteissa useilla eri palvelimilla ja käyttämällä liikenteen tasaajaa, OpenShift konttialusta tarjoaa vikasietoisuutta ja horisontaalista skaalausta palvelulle joka on paketoitu imageen.


Image Streams (Image virrat)Image virta ja siihen liittyvät tagit tarjoavat abstraktio kerroksen jolla voidaan viitata Imagehin OpenShiftissä. Image virta ja sen tagit sinua näkemään käytettävissä olevat Imaget ja varmistamaan että käytät juuria oikeaa Imagea vaikka repositoriossa oleva Image muuttuisi.


BuildsBuild on prosessi jossa lähtöparametreista saadaan lopullinen objekti. Useimmiten, tässä prosessissa muutetaan lähtöparametrit tai lähtökoodi Imageksi joka voidaan ajaa. BuildConfig on tämän prosessin määritelmä. Se voi buildata eri lähteistä, mukaan lukien Dockerfile, lähtekoodin repositorio kuten Git tai Jenkins Pipeline määritelmä.


Pipelines Pipelinet antavat kehittäjien määritellä Jenkins pipelinen suoritukseen Jenkins pipeline pluginilla. Buildin voi aloittaa, sitä voi tarkkailla ja ohjata samoin tavoin kuin mitä muuta tahansa buildia.

Pipelinen työjärjestys on määritelty Jenkinsfile nimisessä tiedostossa, joko upotettuna suoraan buildin konfiguraation tai tarjottuna Git repossa johon viitataan build konfiguraatiossa.


DeploymentsOpenShift Deployment kuvaa kuinka Image saadaan podin käyttöön, ja kuinka podit saadaan käyttöön allaolevassa kontti alustassa (container runtime platform). OpenShift. Deploymentit tarjoavat myös tavan siirtyä olemassaolevasta Imagesta uuteen, ja myös määrittää hookkeja jotka ajetaan ennen tai jälkeen replication controllerin luomisen. Replication controllerin tehtävä on varmistaa että haluttu määrä podin kopioita on käynnissä jokaisella hetkellä.


ServicesKubernetes Service palvelee sisäisenä liikenteen tasaajana. Se identifioi joukon replikoituja podeja toimiakseen proxy serverinä niille. Serviceen liittyviä podeja voidaan lisätä ja poistaa vapaasti koska Service pysyy saatavilla kokoajan, joten sitä kaipaavat resurssit voivat viitata siihen pysyvänä osoitteena.


RoutesService toimii sisäisenä abstraktiona ja liikenteen tasaajana OpenShiftin sisällä, mutta joskus asiakkaat (käyttäjät, systeemit, laitteet jne) OpenShiftin ulkopuolella tarvitsevat pääsyn sovellukseen. Ulkoiset asiakkaat saavat yhteyden OpenShiftissä pyöriviin sovelluksiin OpenShift reititys kerroksen (routing layer) kautta. Ja olio tämän kerroksen takana on Route.

Oletuksen OpenShiftin reititin (HAProxy) käyttää sisääntulevien pyyntöjen HTTP otsakkeita siirtääkseen pyynnöt oikeaan podiin. Voit vaihtoehtoisesti määritellä salauksen, kuten TLS, Routelle. Jos haluat että Servicesi  ja sitä kautta Podisi olevan saatavilla projektin ulkopuolelle, sinun pitää luoda Route.


Templates (sapluunat)Templatet sisältävät kokoelman olion määrityksiä (BuildConfig, DeploymentConfig, Service, Route, jne.) jotka muodostavat kokonaisen toimivan projektin. Ne ovat hyödyllisiä ajonaikaisten objektien yhteen keräämiseen , ja tekevät valmiista ohjelmasta jotenkuten siirreltävän kokonaisuden. Template sisältää myös elementtien konfiguraatiot.


PVC

Podista riippumatonta levytilaa, jota kontit voivat käyttää. OpenShift provisioi PersistentVolume-nimiseen objektiin, joka viittaa alla olevaan levytilaan. PersistentVolumeClaim pyytää tallennustilaa PersistentVolumelta.

Voidaan ajatella karkeasti yksinkertaistettuna pöytäkoneen näkökulmasta:

  • PV linkittää OpenShiftin kiintolevyyn.
  • PVC on resurssipyyntö kiintolevystä.
  • Sen voi mieltää samaksi kuin podin CPU ja RAM pyynnöt.


Yhteystietoja

Suositeltu yhteydenottotapa kysymyksiin on:

https://helsinkifi.slack.com #kontit 

Resurssien lisäys/muutospyynnöt kannattaa lähettää sähköpostilla.

grp-openshift-owner@helsinki.fi (alustan ylläpito ja kehitys)

tike-ohjelmistotuotanto@helsinki.fi (sovelluskehitys)