Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

Edistynyt taso

Sinun tulee tutustua OpenShiftin ImageStreams- ja BuildConfig-rajapintoihin
Tässä oppaassa käytämme OpenShiftin komentorivikäyttöliittymätyökalua oc

Johdanto

Nykyään ketteriä ohjelmistokehitysmenetelmiä käytetään vastaamaan tietyn ohjelmiston jatkuvasti muuttuviin vaatimuksiin. Ketterän ohjelmistokehityksen päätavoitteena on toimittaa jatkuvasti ja nopeasti uusia ohjelmistoversioita sekä parantaa asiakastyytyväisyyttä. Jatkuva integraatio ja jatkuva toimitus (CI/CD) tarjoavat kehittäjille tarvittavat työkalut suoraviivaistaa ja nopeuttaa uutta koodia sisältävien versioiden käyttöönottoa ja tehdä kehityksestä ketterämpää.

Tässä oppaassa otamme käyttöön yksinkertaisen CI/CD-putken käyttäen Kubernetesin käsitteitä, kuten ImageStream, BuildConfig ja Deployment``. Katso lisätietoja näistä Kubernetesin käsitteistä sivulta Kubernetesin ja OpenShiftin käsitteet.

Info

Käytännössä monimutkaisten sovellusten CI/CD-putket edellyttävät erillisten resurssien ja työkalujen, kuten Tektonin ja Jenkinsin, käyttöä. Yksinkertaisia sovelluksia voidaan kuitenkin ottaa käyttöön tässä oppaassa kuvatulla tavalla. Tämän oppaan ensisijainen tavoite on opettaa Kubernetesin ydinkäsitteet CI/CD:n näkökulmasta.

Valmistelut

Varmista, että oc-komentorivityökalu on asennettu ja että olet kirjautunut sisään. Katso tarvittaessa ohjeet komentorivityökalun asennukseen.

Pika-aloitus

Olemme kirjoittaneet hello world -verkkosovelluksen ja määritelleet tarvittavat Kubernetes-objektit sen rakentamiseksi ja käyttöönottamiseksi Rahtiin. Seuraavilla vaiheilla pääset nopeasti alkuun:

Kloonaa esimerkkisovelluksen lähdekoodirepositorio.

git clone https://github.com/CSCfi/rahti-bc-example.git
cd rahti-bc-example/

Kirjaudu Rahtiin, jos et ole vielä tehnyt niin. Voit kopioida kirjautumiskomentosi Rahti-käyttöliittymästä.

 oc login https://api.2.rahti.csc.fi:6443 --token=<your_token>

Varmista komennolla oc project, että olet oikeassa projektissa. Jos et ole, voit luoda uuden komennolla oc new-project <your-new-project-name>.

Meillä on kaikki tarvittavat objektimäärittelyt rahti-bc-example-projektissa tiedostossa k8s-api-objs.yaml. Katso sivulta Kubernetesin ja OpenShiftin käsitteet lisätietoja tiedostossa k8s-api-objs.yaml määritellyistä objekteista. Voit helposti luoda nämä CI/CD-putkeemme tarvittavat objektit oc create -komennolla seuraavasti:

$ oc create -f k8s-api-objs.yaml
imagestream.image.openshift.io/dockerfile-example created
buildconfig.build.openshift.io/dockerfile-example created
deployment.apps/dockerfile-example created
service/dockerfile-example created
route.route.openshift.io/dockerfile-example created

Tässä vaiheessa olet luonut yksinkertaisen CI\CD-putken. Seuraava vaihe on käynnistää koonti ja antaa putken hoitaa koonti ja käyttöönotto. Voit käynnistää tämän toiminnon oc build -komennolla seuraavasti:

oc start-build dockerfile-example --from-dir=./ -F

Kun putki on suorittanut työnsä loppuun, voit avata sovelluksesi käyttöönoton seuraamalla reittiä, jonka pitäisi näyttää tältä: http://dockerfile-example-<your_project_name>.2.rahtiapp.fi/. Tämä putki voidaan käynnistää uudelleen minkä tahansa sovellukseesi tehdyn päivityksen jälkeen (esim. muutos tiedostoon index.html), ja muutokset näkyvät lähes välittömästi. Myös webhookit voidaan määrittää käynnistämään putki.

Siivoaminen

Kun olemme tyytyväisiä sovellukseen, emme jätä sitä käyntiin klusteriin, vaan poistamme sen komennolla oc delete:

oc delete all --selector app=dockerfile-example

Tämä poistaa kaikki objektit, joilla on tunniste app: dockerfile-example.

Yhteenveto

Tässä oppaassa luotiin yksinkertainen CI/CD-putki staattisen verkkosivun rakentamiseen ja käyttöönottoon pääasiassa Kubernetes-objekteilla ImageStream, BuildConfig ja Deployment. Putkea voidaan laajentaa edelleen käyttämällä erillisiä työkaluja ja resursseja, kuten Jenkins, Tekton ja webhookit.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta