Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Vraag


  • ghost616
  • Registratie: Augustus 2012
  • Laatst online: 24-11 15:00
Ik ben aan het kijken om een heel aantal services van mij in docker te zetten. (Gitlab, Gitlab runner, Owncloud, Apache, ...).

Momenteel run ik een groot aantal services in XCP-ng (Xenserver) en ik kan niet alles over zetten, zoals bijvoorbeel mijn domaincontroller,...

Ik heb eerst even met coreos liggen testen, maar ik was nu aan het kijken richting kubernetes. Mits dit ook een interface heeft waarop je aanpassingen kan doen. Coreos heeft dit helaas niet.

Wat denken jullie hiervan? En run ik dan kubernetes in een vm op XCP-ng of hoe zet ik dit het beste op?

Beste antwoord (via ghost616 op 31-08-2018 09:53)


  • The Van
  • Registratie: Maart 2006
  • Laatst online: 09-02-2023
Coreos heeft een interface... ssh bijvoorbeeld. Wat bedoel je anders, dan? Een web-based interface?
Zet K8s bovenop je coreos, en begin een clsuter te bouwen. Genoeg voorbeelden te vinden, oogle is your friend

Alle reacties


Acties:
  • Beste antwoord

  • The Van
  • Registratie: Maart 2006
  • Laatst online: 09-02-2023
Coreos heeft een interface... ssh bijvoorbeeld. Wat bedoel je anders, dan? Een web-based interface?
Zet K8s bovenop je coreos, en begin een clsuter te bouwen. Genoeg voorbeelden te vinden, oogle is your friend

  • Bastiaan V
  • Registratie: Juni 2005
  • Niet online

Bastiaan V

Tux's lil' helper

ghost616 schreef op woensdag 29 augustus 2018 @ 17:57:
Ik ben aan het kijken om een heel aantal services van mij in docker te zetten. (Gitlab, Gitlab runner, Owncloud, Apache, ...).
Waarom? Wat denk je te winnen wanneer je dergelijke services in containers gaat stoppen ten opzichte van VM's?

  • ghost616
  • Registratie: Augustus 2012
  • Laatst online: 24-11 15:00
Bastiaan V schreef op donderdag 30 augustus 2018 @ 17:00:
[...]


Waarom? Wat denk je te winnen wanneer je dergelijke services in containers gaat stoppen ten opzichte van VM's?
De flexibiltiet van updates enzovoort?

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 18-11 22:50

Apache

amateur software devver

Ik denk dat rancher 2 potentieel wel een goeie fit is voor wat jij wil doen, heeft een webui en kan je redelijk makkelijk mee starten.

Op een bepaald moment zal je wel met helm in contact komen om zaken zoals gitlab te installeren.

Helm is een package manager voor kubernetes zoals apt of yum is voor respectievelijk debian / redhat based distro's.

If it ain't broken it doesn't have enough features


  • Bastiaan V
  • Registratie: Juni 2005
  • Niet online

Bastiaan V

Tux's lil' helper

ghost616 schreef op vrijdag 31 augustus 2018 @ 09:46:
[...]


De flexibiltiet van updates enzovoort?
Waar is een container dan flexibeler dan een vm wanneer je gaat updaten?

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 18-11 22:50

Apache

amateur software devver

Bastiaan V schreef op dinsdag 4 september 2018 @ 15:56:
[...]


Waar is een container dan flexibeler dan een vm wanneer je gaat updaten?
Meer lightweight, je kan verschillende versies binnentrekken en parallel opspinnen binnen een beperktere footprint. Meestal worden ze ook gewoon aangeboden voor kant en klaar gebruik op docker hub, er zijn wel appliances die aangeboden worden, maar toch niet in een aanbod dat zo ruim is als containers?

Er werd vooral nagedacht over contracten naar usage toe, zoals env variables om bvb bij een database meteen een username/password/schema te configureren bij het opspinnen enz.

Zeker als je via een compose file of een kubernetes/helm deployment verschillende containers gaat composeren om zo een geintegreerde oplossing uit te werken. Ik denk dan aan bvb een wordpress en een mysqldb, eventueel nog met een nginx ervoor. Dat doe je niet met 3 vm appliances.

[ Voor 17% gewijzigd door Apache op 05-09-2018 14:03 ]

If it ain't broken it doesn't have enough features


  • Bastiaan V
  • Registratie: Juni 2005
  • Niet online

Bastiaan V

Tux's lil' helper

Apache schreef op woensdag 5 september 2018 @ 14:02:
[...]


Meer lightweight, je kan verschillende versies binnentrekken en parallel opspinnen binnen een beperktere footprint. Meestal worden ze ook gewoon aangeboden voor kant en klaar gebruik op docker hub, er zijn wel appliances die aangeboden worden, maar toch niet in een aanbod dat zo ruim is als containers?

Er werd vooral nagedacht over contracten naar usage toe, zoals env variables om bvb bij een database meteen een username/password/schema te configureren bij het opspinnen enz.

Zeker als je via een compose file of een kubernetes/helm deployment verschillende containers gaat composeren om zo een geintegreerde oplossing uit te werken. Ik denk dan aan bvb een wordpress en een mysqldb, eventueel nog met een nginx ervoor. Dat doe je niet met 3 vm appliances.
Inderdaad, dat doe je met een tool als ansible ;-)

Ik ben een voorstander van containers, maar het is op dit moment zo'n hype geworden, dat alles nu in containers wordt gegoten, waarbij het basis princiepe van een container overboord wordt gegooid. De genoemde domaincontroller is hiervan een goed voorbeeld. Een container hoort 1 proces te draaien, wanneer er meer processen nodig zijn, spawn je meer containers.

Wat ik veel zie is dat containers worden gebruikt als verijdelde VM's, ik heb zelfs voorbeelden gezien waarbij er configuratiemanagement IN een container wordt gebruikt. Dit kan natuurlijk prima werken, maar je mist dan zoveel van de potentie van containers.

Wanneer we het bij de genoemde applicaties van TS houden, (Gitlab, Owncloud en Apache), dan worden deze allemaal als VM appliance aangeboden:
https://bitnami.com/stack/gitlab/virtual-machine
https://github.com/ownCloud/vm
https://www.turnkeylinux.org/lamp

Hierbij heb je 0 ondersteunende VM's nodig om de infra draaiende te houden.

Wanneer we het op de juiste manier in containers gaan gieten, dan kom ik met een beetje turven uit op 10 - 15 containers. (losse databases, statefull disks, applicaties en webservers containers). Daarnaast is er potentieel nog de nodige containers om de infra zelf in de lucht te houden. (wat doe je bijvoorbeeld met logging?)

Wanneer je dit voor elkaar hebt, heb je natuurlijk de bekende voordelen; je kan 1 container vervangen door bijvoorbeeld een nieuwere versie van apache, en de rest ongemoeid laten. Je kan relatief eenvoudig een (semi!)-redundant omgeving opbouwen. In ruil daarvoor zal je in plaats van 3 vm's nu 20 containers moeten "beheren", welke allemaal resources nodig hebben.

Netto bespaar je nu dus de 'overhead' van twee VM's, waar je buiten het nodige extra netwerkverkeer (wellicht binnen 1 host), vooral complexiteit voor terug krijgt.


Containers zijn ideaal in grotere omgevingen, waarbij je altijd redundant gaat (moet?) uitrollen, of bij een (grotere) OTAP omgeving, waar je dezelfde container door alle fasen van de otap straat kan laten lopen.
Het afhankelijk van de load per proces een container kunnen spawnen is ook een mooi principe. (al kan XEN / XCP dat ook op VM niveau ;-) ).


Dit alles betekend natuurlijk niet dat TS niet met containers aan de gang moet gaan, het is een fantastische techniek om mee te spelen en om kennis over op te doen.
Containers worden mijn inziens echter wel te veel als "het gouden ei" gezien.

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 18-11 22:50

Apache

amateur software devver

Het klopt dat je meer containers gaat hebben als je het juist doet, maar anders zijn dit host processen. Er komt niet iets bij omdat je het containerized doet.

Owncloud als voorbeeld nemende: https://github.com/helm/c...stable/owncloud/templates
daar zien we exact wat er wordt opgespinned via de officieele helm chart en dat er mogelijkheid bestaat tot een koppeling met een externe db, wat weer een andere helm chart kan zijn, daarom is mariadb ook een dependency: https://github.com/helm/c...wncloud/requirements.yaml

Anyway, complexiteit verschuift van de consumer naar de producer. Het zijn de mensen die owncloud bouwen die snel een helm chart in mekaar kunnen zetten. Die weten hoe zoiets goed gedeployed moet worden. Dan pas je 1 file aan met values of geeft ze commandline op, maar dan komt het neer op:

code:
1
helm install stable/owncloud


Dit is niet anders dan aan apt install owncloud, alleen is het losgekoppeld van eender welke release cycle van een distro.

Verder is volume management, dynamic provisioning ook enorm eenvoudig op te zetten, dus basic storage is triviaal geworden op een kubernetes cluster, voor meer geavanceerdere zaken is er rook.io of longhorn.

En logging is ook enorm makkelijk te fixen, alle containers streamen naar logfiles die door een "DeamonSet" (gegarandeerd 1 container per host) makkelijk naar 1 syslog endpoint, fluentd of logstash doorgestuurd kunnen worden om ze dan in 1 file/elasticsearch/syslog te krijgen met alle metadata die je maar kan wensen.

Je brengt met containerisatie de verantwoordelijkheid voor veel van die zaken meer naar de juiste partij, en de overhead van vm's mag zeker niet overschat worden. Ik heb ooit iemand geweten die overcommitment daar als tegenoplossing voor zag ... dat is niet hetzelfde, en ik wens die persoon daar veel succes mee als hij dat ooit gaat toepassen :P

If it ain't broken it doesn't have enough features


  • Bastiaan V
  • Registratie: Juni 2005
  • Niet online

Bastiaan V

Tux's lil' helper

Apache schreef op donderdag 13 september 2018 @ 09:24:

Verder is volume management, dynamic provisioning ook enorm eenvoudig op te zetten, dus basic storage is triviaal geworden op een kubernetes cluster, voor meer geavanceerdere zaken is er rook.io of longhorn.

En logging is ook enorm makkelijk te fixen, alle containers streamen naar logfiles die door een "DeamonSet" (gegarandeerd 1 container per host) makkelijk naar 1 syslog endpoint, fluentd of logstash doorgestuurd kunnen worden om ze dan in 1 file/elasticsearch/syslog te krijgen met alle metadata die je maar kan wensen.
Een kubernetes cluster is al een stukje lastiger om op te zetten en te beheren dan een XCP-ng omgeving.
en wie gaat de rook.io omgeving beheren? (Ik kan je uit ervaring vertellen dat dit niet zomaar draait... (nog niet ;-) ) ). Of het optuigen van de logging omgeving?

Ik het echt waardevol om je logs te centraliseren, wanneer je ook de vier diensten die je aanbied op 4 vm's kan plaatsen? (Je hebt de logs dan al netjes per dienst 'gecentraliseerd' in /var/log :+
Je brengt met containerisatie de verantwoordelijkheid voor veel van die zaken meer naar de juiste partij, en de overhead van vm's mag zeker niet overschat worden.
In de praktijk ben je als beheerder toch de sjaak wanneer bijvoorbeeld owncloud niet zou werken, en dan zal je de door een ander opgebouwde (in verhouding over-complexe) omgeving moeten gaan uitpluizen.

De klant / eindgebruiker neemt "het is de schuld van de vendor" namelijk niet als antwoord..

De overhead hoeft bij een diverse omgeving zoals TS beschrijft ook niet heel groot te zijn, en is daarnaast in de praktijk vaan een non-issue. Uren zijn over het algemeen vele malen duurder dan ijzer.

overcommitment is interesant in de storage en netwerk wereld. In de compute wereld zou ik er ver vandaan blijven :-)

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 18-11 22:50

Apache

amateur software devver

Een on-premise cluster met rancher en integratie met bvb de vmware omgeving is tegenwoordig echt geen werk.

Rancher bied ook catalog apps aan om de logging meteen te centraliseren en biedt daarbij meteen een bruikbaar kibana dashboard aan. Bereikbaar via een xip/nip.io hostname.

Longhorn is daar ook gewoon een catalog app.

Sterker nog, ik heb presentaties gegeven waarbij ik het meeste hiervan live doe, terwijl dit slechts een noodzakelijke dependency was om de autodevops van gitlab te demonstreren waarbij de focus ligt om een java applicaties met dynamische omgevingen per branch op te spinnen op kubernetes.

Misschien zal het ook voor een deel gewoonte zijn, maar een kubernetes cluster opzetten en beheren zit nu op hetzelfde niveau als docker installeren en gebruiken wat mij betreft. Al vele cluster install/upgrades achter de rug ondertussen.

Ik zou zelfs durven beweren dat met tools als heptio/ark disaster recovery veel eenvoudiger is geworden dan vroeger vm's. Omdat er nu een formele manier is om state van applicaties te omschrijven en kubernetes zorgt dat je cluster in die state terecht komt (tenzij hij verhinderd wordt), terwijl ze vroeger gewoon de state van vm's gingen capturen.

Uitproberen om te zien hoe eenvoudig het is? 5-10min: https://www.katacoda.com/courses/kubernetes/heptio-ark

If it ain't broken it doesn't have enough features

Pagina: 1