Skip to end of metadata
Go to start of metadata

QB eli Kyyppä on Con2-projektin yhteinen Kubernetes-alusta.

Alusta

Virtuaalikoneet
4 kpl virtuaalikoneita Hyper-V-alustalla: (qb1–3 (tick), qb4 (warning))

  • 4 VCPU
  • 8 GB RAM

Container orchestration
Kubespraylla asennettu Kubernetes (tick)

Konfiguraationhallinta
Ansible, Kubespraysta forkattu julkinen git-repo (tick)

Verkko

Koneet samassa aliverkossa, julkiset IP-osoitteet

Kubernetes-verkkoratkaisu:
Flannel, VXLAN (tick)

Nekalan palomuuri:
HTTP, HTTPS sisään auki (tick)

Ulos kaikki auki (tick)

SSH-yhteys sisään Monokkelin kautta (tick)

Konekohtainen palomuuri:
Kuberneteksen vaatimat + HTTP, HTTPS, SSH auki (warning)

Sisään tuleva HTTPS-liikenne:
nginx ingress controller (tick), virtual IP + keepalived (question)

Tallennus

Kolme SAN-osiota per node:

  • system – juuritiedostojärjestelmä, 40 GB SSD
  • fast – GlusterFS, storageclass fast, 100 GB SSD
  • slow – GlusterFS, storageclass slow, 500 GB pyörivä media

Levyt (tick)

Heketi & GlusterFS (tick)

Storageclassit (warning)

  • fast (tick) – nimellä glusterfs, mites tän sais toisinnimettyä
  • slow (warning)
Tietokannat

Erillinen tietokantapalvelin Siilo (tick)

PostgreSQL:
Point in time recovery -varmuuskopiointi Piilolle (Barman). (tick)

MySQL:
MariaDB (warning). Varmuuskopiointi (question)

Ks. Tietokannat

Monitorointi ja lokitus

Valvonta- ja hallintapalvelin Monokkeli (tick)

Monitorointi:
prometheus.tracon.fi (node-exporter) (tick)
grafana.tracon.fi (dashboard QB) (tick)

Lokienhallinta:

EFK (warning)

Varmuuskopiointi

Levysnapshotit ja tiedostotason varmuuskopiointi (question)

Ks. Varmuuskopiointi

CI/CD

jenkins.tracon.fi (Monokkelilla) (tick)

Joku moderni Kubernetes-natiivi vaihtoehto (question)

Selite: (tick) Tehty, (warning) odottaa, (error) särki, (question) vaatii pohdintaa

 

 

TODO

Tietoliikenne

  • Testataan, että podien välinen kommunikaatio tekee mitä pitää.
  • Sisäverkko nodejen välille
    • Sisäverkon interfacet IP-osoitteineen
    • Kuberneteksen osien välinen sisäinen kommunikaatio käyttämään sisäverkon osoitteita
  • nginx-ingress-controller
    • asennus (kubespray ansible)
    • paljastaminen internettiin
      • DNS
      • Palomuuri
    • virtual IP, keepalived
    • node selector kuntoon: nyt vain mastereilla
  • cert-manager
    • asennus (kubespray ansible)
    • konfigurointi

Storage

  • Viritetään GlusterFS

Turvallisuus

  • Varmistutaan siitä, että (ulko)verkkoon ei ole auki sellaisia palveluita, joilla voisi korkata nodet ja/tai Kuberneteksen.
  • Konekohtainen palomuuri

Ylläpito

  • Miten järkätään pääsy Kuberneteksen master apiin? Ts. kubectl adminien omilta työasemilta?
    • Verkko: Mihin master api on auki?
    • Käyttäjätunnukset: Miten ja mistä käsin provisioidaan säätäjien käyttäjätunnukset / käytetäänkö jotain jaettua?

CI/CD

  • Esimerkki jenkins.tracon.fi -> QB deploymentistä, esim. dev.kompassi.eu
    • emrichen toimimaan (asennettu: python 3.5, vaatii: python 3.6)
    • kubectl:lle salaisuudet kuntoon
      • service account
      • role binding
      • token secretiksi jenksuun
    • palomuuriavaus, SSH-putki tmv. jolla kubectl pääsee tökkimään master apia monokkelilta käsin

Valvonta ja lokienhallinta

  • QB nodet Monokkelin Prometheuksen valvontaan (ainakin node-exporter)
  • EFK stack Monokkelille

 

Sovellukset

  • dev.kompassi.eu
  • conikuvat.fi (Edegal)
  • con2.fi (Tracontent)

 

  • No labels