Skip to content

Commit 4cc44b1

Browse files
committed
Adding release 1.11 announcement
1 parent 4dab0f5 commit 4cc44b1

1 file changed

Lines changed: 168 additions & 0 deletions

File tree

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
---
2+
layout: post
3+
title: Kubernetes Pi Cluster relase v1.11
4+
date: 2025-08-28
5+
author: ricsanfre
6+
description: PiCluster News - announcing release v1.11
7+
---
8+
9+
10+
Today I am pleased to announce the eleventh release of Kubernetes Pi Cluster project (v1.11).
11+
12+
Main features/enhancements of this release are:
13+
14+
15+
## FluxCD Operator
16+
17+
Cluster bootstrapping process have been migrated from CLI to [FluxCD Operator](https://github.com/controlplaneio-fluxcd/flux-operator).
18+
19+
Flux Operator is a Kubernetes controller for managing the lifecycle of Flux CD. It uses Kubernetes Operator design pattern so, Flux deployment can be configured via customized CRDs.
20+
21+
The Flux Operator is an open-source project developed by ControlPlane that offers an alternative to the Flux Bootstrap procedure, it removes the operational burden of managing Flux across fleets of clusters by fully automating the installation, configuration, and upgrade of the Flux controllers based on a declarative API.
22+
23+
See details in [FluxCD- Bootstrap cluster using FluxCD Operator](docs/fluxcd/#fluxcd-operator).
24+
25+
## Enabling Spegel Mirroring
26+
27+
K3S's Embedded Registry Mirror (Spegel) has been activated, so images pulling process can be speed-up
28+
29+
[Spegel](https://spegel.dev/) is a stateless distributed OCI registry mirror that allows peer-to-peer sharing of container images between nodes in a Kubernetes cluster.
30+
31+
Spegel enables each node in a Kubernetes cluster to act as a local registry mirror, allowing nodes to share images between themselves. Any image already pulled by a node will be available for any other node in the cluster to pull. This has the benefit of reducing workload startup times and egress traffic as images will be stored locally within the cluster
32+
33+
See further details in [K3S Installation - Embedded Mirror Registry](/docs/k3s-installation/#enabling-embedded-registry-mirror).
34+
35+
## Prometheus refactoring
36+
37+
Cluster K3s monitoring with Prometheus has been refactored so automatic upgrade process of Prometheus dashboards and rules for K3s from Prometheus mixins is now in place.
38+
In order to solve duplicate metrics issue with K3s, dashboards and Prometheus rules, embedded into Kube-prom-stack helm char, had to be manually updated with every new release, to update jobs labels to match K3s configuration (kubelet component as unique process to be monitored). See details in [picluster- issue#67](https://github.com/ricsanfre/pi-cluster/issues/67)
39+
40+
The `kube-prometheus` project uses monitoring mixins to generate alerts and dashboards. Monitoring mixins are a collection of Jsonnet libraries that generate Grafana dashboards and Prometheus rules and alerts. The [`kubernetes-mixin`](https://github.com/kubernetes-monitoring/kubernetes-mixin) is a mixin that generates dashboards and alerts for Kubernetes. The `node-exporter`, `coredns`, `grafana`, `prometheus` and `prometheus-operator` mixins are also used to generate dashboards and alerts for the Kubernetes cluster.
41+
42+
To generate K3s-compliant Prometheus Monitoring Mixins, replicating building process of kube-prom-stack, a set of scripts have been created to automate the process of generating Prometheus rules and Grafana dashboards for K3s (automatically updating job label) from Prometheus mixins.
43+
44+
See further details in [K3S Installation - Prometheus Mixin](/docs/prometheus/#creating-grafana-and-prometheus-rules-from-available-mixins).
45+
46+
## Logs collection/distribution refactoring (Fluentbit and Fluentd)
47+
48+
Logs collection and distribution system has been refactored.
49+
50+
Fluent-bit configuration has been updated to use new YAML configuration, extracting configuration to external configMap and enabling hot-reloading. Also old configuration options, not in use have been removed (TZ management, Kubernetes merge fields), and documentation has been updated accordingly.
51+
52+
Also, Fluentd configuration has been extracted to use external configMap instead of embedded helm chart configuration and all records manipulation rules have been moved to Fluent-bit to optimize logs processing. Documentation has been also updated accordingly.
53+
54+
See further details in [Logs collection - Fluent-bit](/docs/fluent-bit) and [Logs aggregation and distribution - Fluentd](/docs/fluentd).
55+
56+
## Keycloak refactoring
57+
58+
Installation of Keycloak using Keycloak Operator instead of Bitnami's Helm Chart. Keycloak Operator simplifies the deployment and management of Keycloak instances on Kubernetes by automating tasks such as installation, configuration, scaling, and updates.
59+
60+
It allows deployment of Keycloak in High Availability mode using an external database (PostgreSQL) in a declarative way (Kubernetes Operator pattern).
61+
62+
Also, [keycloak-config-cli](https://github.com/adorsys/keycloak-config-cli) has been added to automatically configure Keycloak from config files. **keycloak-config-cli** is a Keycloak utility to ensure the desired configuration state for a realm based on a JSON/YAML file. It can be used to apply GitOps and IaC (Infrastructure as Code) concepts to Keycloak configuration.
63+
64+
See further details in [Keycloak Installation - Keycloak operator](/docs/sso/#keycloak-operator) and [Keycloak Configuration - keycloak-config-cli](/docs/sso/#automating-configuration-changes-with-keycloak-config-cli).
65+
66+
Also observability of Keycloak has been improved by adding Prometheus monitoring and Grafana dashboards. See details in [Keycloak Monitoring](/docs/sso/#keycloak-observability).
67+
68+
69+
## Improve cluster observability
70+
71+
Add monitoring of all External Services (services running out-side the Kubernetes Cluster) and Internal Services (services running in the Kubernetes Cluster) with Prometheus.
72+
73+
- Monitoring of cluster external services has been improved
74+
- OS level metrics and logs of external nodes (`node1`) using Prometheus NodeExporter integrated with Kube-Prometheus-stack and Fluent-bit agent for collecting logs integrated with Fluentd service running in the Kubernetes cluster. Further details in [External Service Node - Observability](/docs/external/#observability)
75+
- Monitoring of external services running in `node1`:
76+
- Kuberentes API load balancer (HAProxy). Further details in [K3s Monitoring - HA Proxy](/docs/prometheus/#haproxy-metrics)
77+
- Secret Management solution (Vault). Further details in [Vault - Observability](/docs/vault/#observability)
78+
- Bind9 DNS using Prometheus Bind Exporter. Further details in [DNS Homelab Architecture - Observability](/docs/dns/#observability)
79+
- Monitoring of external services running in Cloud: Minio backup service. Further details in [Minio - Observability](/docs/s3-backup/#observability)
80+
- Monitoring of cluster router based on OpenWrt. OpenWrt metrics are collected using Prometheus OpenWrt Exporter and syslogs are forwarded to syslog server running in Fluentd service. Further details in [OpenWrt - Observability](/docs/openwrt/#openwrt-observability)
81+
82+
- Monitoring of all Internal Services (services running in the Kubernetes Cluster) has been also improved.
83+
- Fix monitoring issues with some of the services: etcd, Grafana, ElasticSearch
84+
- Add monitoring of remaining services: Cert-Manager, External-Secrets, FluxCD.
85+
86+
87+
## Project Documentation review
88+
89+
Whole project documentation has been reviewed and updated.
90+
91+
- Deprecated technologies documentation has been updated, highlighting documentation as deprecated and without maintenance and reviewing references to deprecated technologies in all documentation.
92+
- Documentation has been reviewed and standardized with common layout of sections: Installation, Configuration, Obervability, etc.
93+
- Some of the main documents have been refactored splitting content into different pages to improve readability and maintenance:
94+
- Prometheus documentation
95+
- Grafana installation/configuration has been extracted to its own page. [Observability Visualization (Grafana)](/docs/grafana/)
96+
- Monitoring configuration of each service has been extracted to Observability section to corresponding service document
97+
- Fluentbit/Fluentd documentation
98+
- Fluent-bit and Fluentd documentation has been separated into two different documents. [Logs collection - Fluent-bit](/docs/fluent-bit) and [Logs aggregation and distribution - Fluentd](/docs/fluentd).
99+
- Cert-manager documentation
100+
- Cert-bot documentation has been extracted to a separate document: [TLS Certificates (Certbot)](/docs/certbot/)
101+
- Backup documentation
102+
- OS-file system backup (Restic) documentation has been extracted from Kubernetes backup document to a separate document: [OS Filesystem Backup (Restic)](/docs/restic/)
103+
104+
105+
## Release v1.11.0 Notes
106+
107+
Major update of project documentation, Prometheus/Fluent-bit/Fluentd refactoring, Spegel Mirroring, Keycloak Operator, Flux Operator
108+
109+
### Release Scope
110+
111+
- Flux Bootstrap process migration from CLI to FluxCD Operator]
112+
- Add Registry Mirror (Spegel)
113+
- Prometheus refactoring
114+
- Automate upgrade process of prometheus dashboards and rules for K3s from Prometheus mixins.
115+
- Use of ScrapeConfig CRD for external services monitoring
116+
- Logs collection/distribution refactoring (Fluentbit and Fluentd)
117+
- Fluentbit
118+
- Use new YAML configuration
119+
- Extract configuration to external configMap and enable hot-reloading
120+
- Remove old configuration options
121+
- TZ management
122+
- Kubernetes merge fields
123+
- Fluentd
124+
- Extract configuration to external configMap
125+
- Move records manipulation rules to Fluent-bit
126+
- Kafka Zookeeper deprecation and migration to KRAFT
127+
- Monitor with Prometheus all External Services (services running out-side the Kubernetes Cluster):
128+
- Metrics and logs at OS level (`node1`)
129+
- Metrics export using NodeExporter
130+
- Logs collection using Fluent-bit collector
131+
- Services running in `node1`
132+
- Logs and node-level metrics
133+
- HAProxy
134+
- Vault
135+
- Bind9
136+
- OpenWrt
137+
- Services running in Cloud
138+
- Minio external service
139+
- Monitor with Prometheus all Internal Services (services running in the Kubernetes Cluster).
140+
- Fix monitoring issues with some of the services:
141+
- etcd
142+
- Grafana
143+
- ElasticSearch
144+
- Add monitoring of remaining services
145+
- Cert-Manager
146+
- External-Secrets
147+
- FluxCD
148+
- MongoDB
149+
- Keycloak application refactoring
150+
- Installation in HA mode using Keycloak Operator instead of Bitnami's Helm Chart
151+
- keycloak-config-cli to automatically configure Keycloak from config files.
152+
153+
- Project documentation review
154+
- Update deprecated technologies documentation.
155+
- Highlight documentation as deprecated and without maintenance
156+
- Review references to deprecated technologies in all documentation
157+
- Standardize documentation
158+
- Common layout of sections: Installation, Configuration, Obervability, etc.
159+
- Refactor documentation
160+
- Prometheus doc
161+
- Extract Grafana installation/configuration to its own page
162+
- Extract monitoring configuration of each service to Observability section to corresponding service document
163+
- Fluentbit/Fluentd documentation
164+
- Extract Fluent-bit and Fluentd documentation to separate documents
165+
- Cert-manager doc
166+
- Extract cert-bot documentation to a separate document
167+
- Backup documentation
168+
- Extract OS-backup(Resti) to a separate document

0 commit comments

Comments
 (0)