Vlákno názorů k článku MicroK8s: tři roky zkušeností s Kubernetes v Ubuntu od Jan - Pro pochopení a správné fungování Kubernetes, je důležitá...

  • 9. 10. 2024 17:14

    Jan

    Pro pochopení a správné fungování Kubernetes, je důležitá příprava Vaší instance, aby jste měli naprostou kontrolu nad celým systémem. Bude k tomu zapotřebí funkce pro intel vt-d a vt-x a pro amd-v.
    Doporučení:
    1. Připravte si čistou Linuxovou distribuci nazvanou control-center, nejlépe formou virtualizace.
    Pro virtualizaci na Windows můžete použít WSL, Hyper-V a nebo jiný hypervizor. Doporučuji použít vmware.
    Pro virtualizaci na Linux doporučuji použít /dev/kvm s nástrojem virt.
    Nedoporučuji pro virtualizaci linux používat docker obrazy.
    2. V případě, že je Váš výchozí systém Windows a použili jste hypervizor vmware, tak ještě před vytvořením virtualizace deaktivujte features windows subsystem linux, hyper-v a machine virtualization. Tím docílíte toho, že můžete provádět vnořenou virtualizaci na linuxové distribuci.
    3. Jakmile máte připravenou čistou distribuci, proveďte zálohu pro okamžité a rychlé obnovení v případě failu.
    4. Po nasazení control-center, vytvořte vnořenou virtualizaci na linuxové distribuci pomocí KVM, tím docílíte izolace vrstvy kubernetes clusteru.
    Toto řešení je vhodné pro izolaci síťového rozhraní Vašeho uzlu.
    Pokud máte dostatek jader a ram pamětí, tak doporučuji vytvořit DEV,TEST,PROD. Tím získáte více uzlů a můžete testovat vývoj až do produkčního prostředí.
    5. Nainstalujte nástroj ansible a vytvořte ansible playbooky pro instalaci kubernetes clusteru a pro nasazování projektů.

    Na github existuje mnoho hotových playbooků a případnou úpravu nebo konfiguraci můžete přízpůsobit vlastním potřebám.

    Proč doporučuji toto komplikované řešení pro vývoj v kubernetes ?
    Lépe porozumíte fungování kubernetes a rovnou při nasazování Vašich projektů získáte přehled o tom, jak složitá je produkce.
    Použít řešení docker, docker-compose je sice fajn a tisíckrát jednodušší, ale je to strašně na hony vzdálené od produkčního prostředí a pro produkci to nedoporučuji.
    Pokud chcete, aby Váš produkt běžel v moderním produkčním prostředí, je nutné mít představu o detailním fungování kubernetes.

    Pro nasazování nedoporučuji používat HELM.
    Helm Vám to zjednoduší, ale zase Vám úplně zkreslí možnosti konfigurace kubernetes deploymentů.
    V HELM jsem se setkal s nestabilitou a při častém nasazování nedokázal zničit běžící pody. Pak vyžadoval ruční zásah a ta automatizace pro mě ztratila potenciál. Raději čisté deployments aplikované pomocí kubectl 100% stabilita, funkčnost a možnost vlastní automatizace konfigurace.

    Pokud máte případné dotazy, jsem Vám k dispozici.

  • 17. 10. 2024 8:37

    Jan

    Aktuálně se zaměřuji hlavně na produkční nasazení infrastruktury do vnořené virtualizace.
    Argo CD pro testování pravděpodobně nasadím na vrstvu 3.
    Aktuálně testuji pro produkci toto vrstvení.

    Vrstva 1 - Baremetal (Windows)
    Fyzická infrastruktura s deaktivovanými features - WSL, Hyper-V a Virtual machine platform.

    Vrstva 2 - Fyzická síťová infrastruktura a routování

    Vrstva 3 - VMware - Hypervizor (Linux)

    Vrstva 4 - Virtuální síťová infrastruktura a routování.

    Vrstva 5 - Vnořená virtualizace libvirt a vSphere

    Vrstva 6 - Vnořená virtuální síťová infrastruktura a routování.

    Vrstva 7 - Kubernetes nad úrovní vnořené virtualizace.

    Vrstva 8 - Izolovaná virtuální síťová infrastruktura kubernetes a routování.

    Vrstva 9 - Aplikační vrstva