Je pravda, že doma provozuji vlastní server s Kubernetes, ale jak to vlastně vypadá, a co si na tom testuji? Tak zpočátku jsem si postavil “enterprise” řešení, které je na úrovni velkých korporátů, alespoň na oko, mám vlastní repozitář pro OCI obrazy, vlastní pipeliny v GitHubu na vytváření OCI image i i třeba vlastní instalaci ArgoCD.

Přesto, když chci něco nasadit na Kubernetes, mi to dneska netrvá většinou déle než hodinu, i s tím, že si udělám vlastní image. Jak vlastně postupuji. Úplně nejdříve je potřeba postavit Dockerfile pro aplikaci, to většinou není raketová věda, prostě je třeba udělat Dockerfile.

Vytváření Dockerfile zpravidla nechávám na AI Perplexity, kterou jsem na rok získal zdarma jako zákazník T-Mobile v jedné akci. Perplexity provede kompletní research, prohledá web a něco vytvoří. Výsledek zpravidla není na první dobrou slušný, je tak na 80-90 procent, takže je potřeba poladit dotaz i většinou zadat nejaktuálnější verze produktů, protože z webu si to většinou načte staré verze.

ArgoCD

Jakmile mám Dockerfile, postupuji dále. Už mám v mém privátním repozitáři nějaká existující GitHub workflows (což je vlastně CI/CD pipelina), tak je jenom zkopíruji a upravím, záležitost minuty. Pak už jen stačí vše syncnout do GitHub a vše se hodí přes webhooks na můj lokální GitHub runner, a tam zkompiluje a nahraje do repozitáře.

OCI (nebo taky Docker) image je tak vlastně hotový, a jde se nasazovat na ArgoCD. Na ArgoCD již mám několik projektů, takže si nějaký vykopíruji jako šablonu a poupravím. Většinou už je vyřešeno vše, od ukládání secretů v HashiCorp Vault přes Kubernetes Secret Operator, až po ingress s vlastním SSL certifikátem (který mám nasazený v prohlížeči) přes deployment, opět otázka pár minut.

Pak jen stačí zase vše pushnout do GitHubu, v Argo dát sync, v Mikrotiku přenastavit DNS a najednou mám vlastní nasazenou aplikaci. Vlastně takový korporátní systém, u mě doma, kde si vše testuji.

Ani se neptejte, jak dlouho mi trvalo vše dostat do tohoto stavu. Ano, kdybych to měl dělat znovu, bylo by to jednoduché, ale já před lety začínal jako Kubernetes nepolíbený, a doma jsem se vše učil a procházel slepými uličkami a problémy.