-
Sometimes you need to create a lot of CronJobs in k8s. In particular, in my last project I need to create a lot of stupid “web hooks” to fire complex job execution. K8s is well suited for this task because it take care of launching a single job instance, and relaunch them in case of error.
Read More -
In the last projects, I get used to use K8s CronJob(s) to schedule tasks.
The most effective way of doing it, is to create a super-tiny cronjob, which the sole purpose is to call a REST webbook(s) of a specific microservice, to fire some action in a predictable way.
Read More -
Context: Spring microservice application to be deployed on K8s via helm + boring Friday
In this scenario, you end up writing the SAME configuration string in a lot of places:
- On at least 2 application.properties (main and test)
- On the final, helm-generated application properties (or in the relevant environment variable if you use them in place (1))
- On the default K8s values.yaml used by helm. Possibly on other yaml file too, all documented a bit to be kindly with the K8s SRE.
- On the relevant Java code, as a @Value annotation to finally use that damn config.
Read More -
K8s and limits
On K8s, for every pod you can define how much memory and CPU the pod needs. To make things "simpler", K8s define two set of values: requests and limits, both for CPU and memory. After some trouble on GCP, I was forced to dig a bit in the subject.
Read More -
My true personal opinion based on what customers asks and what co-worker uses:
- docker , docker-compose is still the dev winner
- Podman is rising but it has no extra feature, because docker support the rootless mode too.
- Ignite – Use Firecracker VMs with Docker images (github.com/weaveworks) Super-fast VM based on container are gaining traction. Driving force are cloud providers, but this idea can eventually be helpful for some service providers.
- K8s + Helm keep going K8s is "the" abstraction layer for Cloud providers, to some extent. K8s offers tons of extension points, for automation tools and for cloud providers. The only downside is its heavy lifting: for very simple deploy (less than 3 physicals nodes) it is still an overkill in pricing and management overhead. Also it needs at least a speedy 2-Core CPU to work. Cost rising due to inflation can have a negative impact on "Fat"-K8s solution.
- Jenkins pipeline sucks It is sad to say, but GitHub actions & similia (like GitLab pipelines, Bitbucket pipelines and Cloud provider similar services like AWS CodePipeline) are a winner. Jenkins declarative pipeline are elegant, but its declarative language depends on Jenkins plugins, so you must keep track of them. Also, it is frequent to build groovy library on top of it And when you need to upgrade Jenkins from time to time, you face a lot of refactoring on pipeline syntax, and it is increasing difficult to estimate.
- docker , docker-compose is still the dev winner
-
How to reboot a k8s pod/deployment
kubectl rollout restart deployment <deployment_name> -n <namespace>
How to show helm history
helm history -n <namespace> <deployment>
-
In this second article, I suggest to explore further two simple helm chart for getting a bit more inside K8s.
Grafana
Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream.
To install Grafana+Loki follow the instruction depicted here: the install will teach you how to use helm charts dependency too, so please take time to download the loki chart and study itThe Loki project was started at Grafana Labs in 2018, and announced at KubeCon Seattle. Loki is released under the AGPLv3 license
Read More -
K8s is a very complex beast. But it give you a very good set of security defaults, and it is also a very well done implementation of a microservice application.
After installing Docker Swarm on some Customer, we are giving up on Swarm because the Enterprise version was acquired by Mirantis and now is marketed like “K8s” engine, so Swarm seems K8s right now.
Read More -
In my personal top ten on open source software initiative with some original sin inside them. Note: this is not a negative review, is only a snapshot of the world I see, I could be wrong, but please explain to me my mistakes, if any.
Read More -
Abbiamo già trattato il Cloud di Oracle, codename OCI, e lo riprendiamo con questo articolo.
Oracle sta cercando di rincorrere la triade Amazon, Google e Azure, e lo sta facendo in modo creativo: vediamo pro e contro.
Read More -
Docker was born for the cloud. It is the easiest way to run different software in a tiny box, installing it in a rapid way and with a nice way to wipe it in a snap. But when docker shines are the little docker compose files, which realize the Infrastructure as Code, a configuration file which declare in an easy and simple way how services are connected.
Read More -
In 1985, all my work started with a VIC-20 with 5Kb of RAM, and only 3583 bytes free for the BASIC. With 3 more kilobytes, VIC-20 would be able to unveil its more versatile graphic capabilities, but we have no luck. In 1995 I got a 8 MegaBytes computer with 512MB hard disk as workstation for my University Exams. I was a lucky boy, and that PC helped me to graduate up to 2000.
Read More -
Abbiamo provato Prometheus in congiunzione con Grafana.
Prometheus è un tool di monitoraggio e alerting, scritto in Go e caratterizzato da un database orientato all’archiviazione in time series.
Entrambi sono molto curati, open source e caratterizzati da una offerta commerciale per chi ha bisogno di un supporto a pagamento.
Read More -
Assembly: the only way
In principle there was only one: assembly machine language. Hardware and software engineer was a one-role.The guy who was able to project a chip, was the one who was able to program it.
Then Fortan (1957), the first high level language compiler was created.
Read More