-
Rahtin tietokantoihin pääsy CSC-supertietokoneista
Edistynyt taso
Tämä ohje käyttää OpenShiftin komentorivityökalua oc ja Helm Sinun tulee ymmärtää, että OpenShiftin Routes altistaa internetiin vain HTTP/HTTPS-portin
Tietokantojen käyttäminen Rahdissa CSC:n supertietokoneilta
Monet HPC-työvuot vaativat tietokannan, ja useimmissa tapauksissa Pukki on todennäköisesti ensisijainen ratkaisu. Rahdin käyttö tietokantojen käyttöönottoon ja julkaisemiseen on kuitenkin myös mahdollista (esimerkiksi jos tietokantaasi ei ole saatavilla Pukissa). Tässä ohjeessa selitetään, miten Rahdissa olevaa tietokantaasi käytetään CSC:n supertietokoneilta.
Esivaatimukset
- Kirjautunut Rahtiin oc CLI:llä.
- Asenna Helm CLI.
Vaihe 1: MariaDB:n käyttöönotto Rahdissa
Käytämme Bitnamin MariaDB Helm chartia. Tämä Helm chart ei ole tarkoitettu tuotantokäyttöön, mutta se riittää demonstrointitarkoituksiin.
Suorita yksinkertaisesti tämä komento:
Vaihe 2: LoadBalancer-palvelutyypin määrittäminen Rahdissa
Määritämme Rahdissa LoadBalancerin. Toisin kuin Routes, LoadBalancer-palvelu mahdollistaa palveluiden altistamisen internetiin ilman rajoittumista HTTP/HTTPS-yhteyksiin. Katso lisätietoja yllä linkitetystä dokumentaatiosta.
Ensin sinun täytyy lähettää pyyntö asiakastukeen (servicedesk@csc.fi). Pyynnön tulee sisältää seuraavat tiedot:
- Projektin nimi: Anna sen Rahti-projektin tarkka nimi, jossa haluat ottaa LoadBalancer-palvelut käyttöön.
- CSC-projektinumero: `csc_project`-numero, jota käytetään Rahti-projektissa.
- Käyttötapaus: Kuvaa käyttötapaus selkeästi, mukaan lukien:
- Että ajat MariaDB-tietokantoja ja että muodostat yhteyden CSC:n supertietokoneelta.
- Mahdolliset erityisvaatimukset tai huomioitavat asiat (esim. kuinka monta IP-osoitetta tarvitaan).
Kun Rahti-ylläpitäjät ovat hyväksyneet pyyntösi, saat julkisen LoadBalancer-IP-osoitteen, jota voidaan käyttää palveluusi tai palveluihisi pääsyyn.
Lopuksi sinun täytyy luoda Service, joka altistaa MariaDB:si ulkoiseen verkkoon. Luo service.yaml-tiedosto:
kind: Service
apiVersion: v1
metadata:
name: mysqllb
namespace: my-namespace
spec:
ports:
- protocol: TCP
port: 33306
targetPort: 3306
allocateLoadBalancerNodePorts: false
type: LoadBalancer
selector:
app.kubernetes.io/name: mariadb
ja suorita sitten oc luodaksesi Servicen:
Tietokantasi on nyt altistettu saamassasi LoadBalancer IP -osoitteessa portissa 33306.
Vaihe 3: Yhdistä MariaDB:hen CSC:n supertietokoneilta
MariaDB ja LoadBalancer on nyt määritetty Rahdissa, ja sinulla pitäisi olla seuraavat tiedot: MariaDB:n käyttäjänimi, salasana, tietokannan nimi sekä LoadBalancer IP ja portti. Näitä tarvitaan tietokantaan yhdistettäessä.
Info
Jotta tämä esimerkki toimisi, sinun täytyy asentaa mariadb-pythonmoduuli. Tätä kirjoitettaessa käytettävä komento on:
pip3 install mariadb=1.0.11
Tämä johtuu siitä, että moduulin nykyinen uusin versio on rikki niillä alustoilla, joilla testasimme tätä. Katso lisätietoja upstream-dokumentaatiosta: https://mariadb.com/docs/connectors/mariadb-connector-python/install
# Module Imports
import mariadb
import sys
# Connect to MariaDB Platform
try:
conn = mariadb.connect(
user="<username>",
password="<password>",
host="<LoadBalancer IP>",
port=<port>,
database="<database name>"
)
except mariadb.Error as e:
print(f"Error connecting to MariaDB Platform: {e}")
sys.exit(1)
# Get Cursor
cur = conn.cursor()
Huom: Tietokanta kuuntelee vain IPv4:ää.