diff --git a/content/posts/10-build-your-kubernetes-cluster-part-i/index.md b/content/posts/10-build-your-kubernetes-cluster-part-i/index.md new file mode 100644 index 0000000..5b370ea --- /dev/null +++ b/content/posts/10-build-your-kubernetes-cluster-part-i/index.md @@ -0,0 +1,39 @@ +--- +title: "Setup a HA Kubernetes cluster for less than $50 / month" +date: 2022-09-02 +description: "Follow this opinionated guide as starter-kit for your own Kubernetes platform..." +tags: ["kubernetes"] +draft: true +--- + +{{< lead >}} +Build your self-hosted Kubernetes cluster and be free from any SaaS solutions by following this opinionated guide πŸŽ‰ +{{< /lead >}} + +## For who is this guide intended ? + +[Docker Swarm]({{< ref "/posts/02-build-your-own-docker-swarm-cluster" >}}). + +## Final goal 🎯 + +TODO + +### 1. Cluster & routing 🌍 + +Cluster + Traefik + +### 3. Databases & testing with some apps πŸ’Ύ + +### 5. Monitoring πŸ“ˆ + +### 6. CI/CD setup πŸ’» + +Concourse / FluxCD + +## Cluster Architecture 🏘️ + +## Cheap solution with Hetzner VPS πŸ–₯️ + +## Let’s party πŸŽ‰ + +Enough talk, [let's go Charles !]({{< ref "/posts/11-build-your-kubernetes-cluster-part-ii" >}}). diff --git a/content/posts/11-build-your-kubernetes-cluster-part-ii/index.md b/content/posts/11-build-your-kubernetes-cluster-part-ii/index.md new file mode 100644 index 0000000..99b2c9e --- /dev/null +++ b/content/posts/11-build-your-kubernetes-cluster-part-ii/index.md @@ -0,0 +1,18 @@ +--- +title: "Setup a HA Kubernetes cluster Part II - Hetzner with Terraform & K0S" +date: 2022-09-02 +description: "Follow this opinionated guide as starter-kit for your own Kubernetes platform..." +tags: ["kubernetes"] +draft: true +--- + +{{< lead >}} +Build your self-hosted Kubernetes cluster and be free from any SaaS solutions by following this opinionated guide πŸŽ‰ +{{< /lead >}} + +1. Terraform +2. K0S install + +## 1st check βœ… + +We now have a working cluster, let's install [a load balanced ingress controller for external access through SSL]({{< ref "/posts/12-build-your-kubernetes-cluster-part-iii" >}}). diff --git a/content/posts/12-build-your-kubernetes-cluster-part-iii/index.md b/content/posts/12-build-your-kubernetes-cluster-part-iii/index.md new file mode 100644 index 0000000..dd95d95 --- /dev/null +++ b/content/posts/12-build-your-kubernetes-cluster-part-iii/index.md @@ -0,0 +1,20 @@ +--- +title: "Setup a HA Kubernetes cluster Part III - Traefik & persistence storages (NFS & S3)" +date: 2022-09-02 +description: "Follow this opinionated guide as starter-kit for your own Kubernetes platform..." +tags: ["kubernetes"] +draft: true +--- + +{{< lead >}} +Build your self-hosted Kubernetes cluster and be free from any SaaS solutions by following this opinionated guide πŸŽ‰ +{{< /lead >}} + +1. Traefik & cert-manager +2. NFS subdirectory provisioner +3. Portainer +4. Minio + +## 2nd check βœ… + +Our cluster is now perfectly securely accessible from outside with minimal setup needed for any new apps. Persistence is insured by NFS provisioner and S3 app. The next important part is now to have a [working database for real world apps]({{< ref "/posts/13-build-your-kubernetes-cluster-part-iv" >}}). diff --git a/content/posts/13-build-your-kubernetes-cluster-part-iv/index.md b/content/posts/13-build-your-kubernetes-cluster-part-iv/index.md new file mode 100644 index 0000000..0624ecf --- /dev/null +++ b/content/posts/13-build-your-kubernetes-cluster-part-iv/index.md @@ -0,0 +1,21 @@ +--- +title: "Setup a HA Kubernetes cluster Part IV - Databases & backups" +date: 2022-09-02 +description: "Follow this opinionated guide as starter-kit for your own Kubernetes platform..." +tags: ["kubernetes"] +draft: true +--- + +{{< lead >}} +Build your self-hosted Kubernetes cluster and be free from any SaaS solutions by following this opinionated guide πŸŽ‰ +{{< /lead >}} + +1. MySQL and PostgreSQL +2. Web management apps with PMA & PGA +3. Job backups +4. Clustering with additional data-02 and postgreSQL cluster +5. Additional DB apps (Matomo / Redmine) + +## 3rd check βœ… + +Databases are ready to be consumed by any apps. In real world situation, we should have a full monitoring suite, see [next part]({{< ref "/posts/14-build-your-kubernetes-cluster-part-v" >}}) for complete monitoring and logging stack. diff --git a/content/posts/14-build-your-kubernetes-cluster-part-v/index.md b/content/posts/14-build-your-kubernetes-cluster-part-v/index.md new file mode 100644 index 0000000..8bc2ef3 --- /dev/null +++ b/content/posts/14-build-your-kubernetes-cluster-part-v/index.md @@ -0,0 +1,20 @@ +--- +title: "Setup a HA Kubernetes cluster Part V - Monitoring Stack" +date: 2022-09-02 +description: "Follow this opinionated guide as starter-kit for your own Kubernetes platform..." +tags: ["kubernetes"] +draft: true +--- + +{{< lead >}} +Build your self-hosted Kubernetes cluster and be free from any SaaS solutions by following this opinionated guide πŸŽ‰ +{{< /lead >}} + +1. Add monitor-01 +2. Prometheus Stack +3. Grafana +4. Loki / Promtail + +## 4th check βœ… + +We now have a full monitoring suite ! Go [next part]({{< ref "/posts/15-build-your-kubernetes-cluster-part-vi" >}}) if you want a complete CI suite for apps building. diff --git a/content/posts/15-build-your-kubernetes-cluster-part-vi/index.md b/content/posts/15-build-your-kubernetes-cluster-part-vi/index.md new file mode 100644 index 0000000..9205bd0 --- /dev/null +++ b/content/posts/15-build-your-kubernetes-cluster-part-vi/index.md @@ -0,0 +1,21 @@ +--- +title: "Setup a HA Kubernetes cluster Part VI - VCS & CI" +date: 2022-09-02 +description: "Follow this opinionated guide as starter-kit for your own Kubernetes platform..." +tags: ["kubernetes"] +draft: true +--- + +{{< lead >}} +Build your self-hosted Kubernetes cluster and be free from any SaaS solutions by following this opinionated guide πŸŽ‰ +{{< /lead >}} + +1. Add runner-01 +2. Gitea +3. Docker registry +4. Concourse +5. Testing with app push + +## 5th check βœ… + +We have everything we need for app building, it's now time to deploy them automatically (Continuous Delivery) with GitOps way on [next part]({{< ref "/posts/16-build-your-kubernetes-cluster-part-vii" >}}). diff --git a/content/posts/16-build-your-kubernetes-cluster-part-vii/index.md b/content/posts/16-build-your-kubernetes-cluster-part-vii/index.md new file mode 100644 index 0000000..47b4619 --- /dev/null +++ b/content/posts/16-build-your-kubernetes-cluster-part-vii/index.md @@ -0,0 +1,19 @@ +--- +title: "Setup a HA Kubernetes cluster Part VII - CD embracing GitOps" +date: 2022-09-02 +description: "Follow this opinionated guide as starter-kit for your own Kubernetes platform..." +tags: ["kubernetes"] +draft: true +--- + +{{< lead >}} +Build your self-hosted Kubernetes cluster and be free from any SaaS solutions by following this opinionated guide πŸŽ‰ +{{< /lead >}} + +1. FluxCD +2. Kubeseal +3. Testing with previous app + +## 6th check βœ… + +You now have a GitOps ready cluster for any apps deployment, let's go further with load testing and tracing on [next part]({{< ref "/posts/17-build-your-kubernetes-cluster-part-viii" >}}). diff --git a/content/posts/17-build-your-kubernetes-cluster-part-viii/index.md b/content/posts/17-build-your-kubernetes-cluster-part-viii/index.md new file mode 100644 index 0000000..4ab21ee --- /dev/null +++ b/content/posts/17-build-your-kubernetes-cluster-part-viii/index.md @@ -0,0 +1,22 @@ +--- +title: "Setup a HA Kubernetes cluster Part VIII - Load testing & tracing" +date: 2022-09-02 +description: "Follow this opinionated guide as starter-kit for your own Kubernetes platform..." +tags: ["kubernetes"] +draft: true +--- + +{{< lead >}} +Build your self-hosted Kubernetes cluster and be free from any SaaS solutions by following this opinionated guide πŸŽ‰ +{{< /lead >}} + +1. K6 +2. Load balancing sample app (database clustering case) +3. Jaeger & Elasticsearch (traefik sample) +4. Tracing test inside app + +## Final check 🎊🏁🎊 + +Congratulation if you're getting that far !!! + +You have a complete CI/CD flexible solution, HA ready and not that expensive.