Il DevOps è diventato parte integrante dei processi di sviluppo di tantissime realtà e piattaforme come Kubernetes e Docker hanno contribuito a realizzare software, Web Application, API e SaaS in maniera rapida, scalabile e gestibile.
Kubernetes abilita la distribuzione flessibile di risorse e workload contando, tra le funzionalità native, zero-downtime deployment, service discovery, automatic rollout e rollback oltre alla già citata scalabilità che vuol dire abbattere i costi ed aumentare le performance in base alla domanda computazionale. Contattaci subito e senza impegno per ottenere la soluzione Kubernetes per il tuo progetto.
Kubernetes, seppur sembrando a prima vista semplice, è complesso in quanto ricchissimo di funzionalità che necessitano di priorità ed esperienza per poter trarne il massimo beneficio altrimenti guiderai un’auto da corsa come un’utilitaria. Per iniziare a migliore l’ambiente di produzione di Kubernetes ti indichiamo 12 Best Practices da utilizzare subito.
Gestire sistemi grandi e distribuiti è complicato soprattuto se c’è qualcosa che non va. E’ pertanto importante utilizzare health check attagliati ai tuoi servizi ed al tuo ambiente, per farlo puoi utilizzare probe di Readiness che ti indicano che l’applicazione è pronta a fornire servizi e di Liveness che ti indicano se l’applicazione è “morta” e quindi rimuove il pod con uno nuovo.
Specifica le richieste di risorse ed i limiti per ogni container; è anche una best practices dividere l’ambiente in parti più piccole. Mantieni alta l’attenzione verso la quantità di risorse che ogni pod usa perchè maggiore è l’utilizzo maggiori sono i costi. Avere questa visione aiuta anche a portare avanti un miglioramento continuo delle performance e delle ottimizzazioni.
Il RBAC è un approccio per restringere gli accessi e le autorizzazioni sia ad utenti sia ad applicazioni sui sistemi e sulla rete. Grazie all’API rbac.authorization.k8s.io puoi creare policy autorizzative.
Un cluster Kubernetes, generalmente, deve mettere in campo high availability, fault tolerance, multi-etcd, ecc.. Kubernetes, da solo, non è sufficiente per garantire tutti questi aspetti ed è necessario integrare il suo Ingress Controller con altri tool Cloud Based o meno per avere maggiore affidabilità in ambienti critici.
Puoi utilizzare pod anti affinity per assicurarti che più repliche di un pod sono distribuite sui nodi e pod disruption budgets per avere un minimo di repliche ad ogni costo.
Utilizza le label per identificare gli attributi degli oggetti che sono importanti, tali etichette permettono di operare “in bluk” con tutti gli oggetti che hanno la stessa etichetta e di essere richiamate per specifiche query.
Le policy di rete permettono di abilitare esplicitamente quale traffico può passare e quale no. In questa maniera sarai in grado di bloccare il traffico che non si conforma alle tue policy ottenendo una migliore sicurezza e performance.
Più che una best practices è un must per qualsiasi ambiente di produzione. Devi monitorare e loggare gli eventi, il traffico, le configurazioni e quanto necessario, non solo per compliance a specifiche norma, ma anche per applicare il miglioramento continuo che si traduce in minori costi.
Se stai iniziando ad usare Kubernetes ti consigliamo di di partire con le applicazioni Stateless in quanto è possibile sviluppare sempre con zero-downtime ed essere certi che nulla è rimasto appeso. Mantenere lo stato in maniera congruente nei Cluster è complesso ed i casi di applicazioni che mostrano dati di altri utenti ed informazioni sbagliate sono tipici errori di scarsa progettazione della gestione dello stato.
Usa gli Auto Scale nativi di Kubernes per rendere scalabile il tuo cluster. Kubernet supporta:
Le sorgenti delle immagini potrebbe essere pubbliche, in questo caso non sai cosa realmente sta girando nel tuo ambiente. Utilizza invece un registro qualificato al fine di applicare policy.
Utilizza Pod priority per differenziare e prioritizzare i tuoi servizi al fine di garantire maggiore stabilità applicativa e mantenere attivi servizi critici.
In un servizio Business critical devi sempre avere un piano di disaster recovery. Non averlo per quanto tu ti possa affidare a Cloud, Data Center evoluti, ti espone sempre a rischi.
Lo utilizziamo dalla sua nascita e ti forniamo formazione avanzata e assistenza e supporto per qualsiasi progetto Kubernetes grazie all’esperienza maturata con numerosi Clienti e la forza del nostro Gruppo Aziendale.
Contattaci subito e senza impegno per maggiori informazioni.