Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning
titleVanhentunutta tietoa!

QB:n dokumentaatio löytyy nykyään Con2:n Outlinestä.


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


Panel
titleAlusta

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

  • 4 VCPU
  • 8 GB RAM

Container orchestration
K3s (tick)

Konfiguraationhallinta
Ansible, julkinen git-repo (tick)



Panel
titleVerkko

Julkinen ja sisäinen aliverkko

Kubernetes-verkkoratkaisu:
Flannel (K3s default) (tick)

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

Ulos kaikki auki (tick)

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

Konekohtainen palomuuri:
Ei konekohtaista palomuumia. Kubernetes tekee paljon iptables-magiaa (warning)

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

Palvelut osoitetaan tällä hetkellä vain yhteen Kyyppä-nodeen (default qb3), joka on niille SPOF.



Panel
titleTallennus

Kolme SAN-osiota per node:

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

Levyt (tick)

Rook + Ceph (tick)

Rookin upstream-ominaisuuksia joita odottelemme:

  • CephFS:n dynaaminen provisiointi PVC:n välityksellä. Nyt käytetään flexVolumeja.
  • Useampi storage class. Nyt on konffattu vain fastbigiä odotellessa.



Panel
titleTietokannat

Erillinen tietokantapalvelin Siilo (tick)

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

MySQL:
MariaDB (warning). Varmuuskopiointi (question)

Ks. Tietokannat



Panel
titleMonitorointi ja lokitus

Valvonta- ja hallintapalvelin Monokkeli (tick)

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

Lokienhallinta:

Prometheus Loki (warning)



Panel
titleVarmuuskopiointi

Levysnapshotit ja tiedostotason varmuuskopiointi (question)

Ks. Varmuuskopiointi


Panel
titleCI/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)