scale-php-fpm-on-kubernetes-with-keda

Scale PHP-FPM on Kubernetes with Keda

If you are running PHP-FPM applications in Kubernetes, you have likely hit by the following warning: WARNING: [pool www] server reached pm.max_children setting, consider raising it. When this happens, applications load very slowly. So what you need to do is configure the pm.max_children accordingly. We can adjust the FPM configuration and add more pods horizontally in order to deal with the max_children issue. Prerequisite: Make sure you have the Prometheus/VictoriaMetrics stack with Grafana installed....

July 7, 2023 · Kamrul

Setup Kubernetes cluster on Oracle always free ARM machine

In this tutorial we will see how to setup K3s cluster on oracle cloud. We also configure load balancer and ingress controller which is a bit tricky to setup on bare-metal cluster. Oracle gives free ARM compute resources (24GB RAM & 4 vCPUs) which is enough for running Kubernetes cluster on cloud without any penny. You can launch two ARM VMs (dividing the resources between two, like 12+12GB ram and 2+2 vCPUs) for making one node as master and another for worker....

August 18, 2022 · Kamrul

Aggregate multiple Internet with OpenMPTCProuter

OpenMPTCProuter is an open source project which aimed to aggregate multiple internet connections into a single one which results higher bandwidth, failover, security and latency optimization. It uses MPTCP under the hood. So if you have multiple internet connections (Fiber, ADSL, VDSL, 3G, 4G, 5G…) which you are currently using only for load balancing or failover purpose, you can now bond those connections and get maximum throughput. You can setup OpenMPTCProuter in various devices....

February 13, 2022 · Kamrul

Setup NAT on site to site software VPN in AWS

Site to Site VPN creates a private tunnel with a remote destination for transferring data securely. AWS provides managed VPN solution but if you want to configure NAT on top of it, you need to provision additional instance and make it NAT compatible. AWS provides a documentation on how to configure NAT for managed VPN However, if the VPN solution is not managed then you can follow this tutorial to setup NAT traversing on your custom VPN CIDR....

August 23, 2021 · Kamrul

Deploy EFK stack with Helm 3 in Kubernetes

Centralized logging is one of the essential part in Kubernetes environment. In this tutorial, we will deploy Elasticsearch, Fluend and Kibana with Helm chart for logging. Elasticsearch is a scalable search engine which is mainly used to index and search within the vast volumes of log data. Fluentd collects the data from pods and nodes (deployed in each nodes via daemonsets) and transform and ship the logs to the Elasticsearch....

June 5, 2021 · Kamrul

Monitor OpenVPN server with Docker

If you have OpenVPN server with multiple clients, you might need to monitor the clients location, bandwidth usage or other informations. There are many OpenVPN monitoring tools out there but today I will show you my favorite one, furlongm/openvpn-monitor; which is easy to configure, open source web based monitoring tool. Though making it working in Docker is challenging. I had to spend several hours in order to make it work with Docker compose....

May 29, 2021 · Kamrul

Kubernetes Persistent volume with GlusterFS

GlusterFS is a network attached distributed storage solution that connects multiple storage pool from different machines and act as a simple unified storage. It’s a high available, durable storage solution that can scale out and able to store petabyte of data. In this tutorial, we will see how to setup GlusterFS volume for Kubernetes cluster. Prerequisite First, you need a working multi-node Kubernetes cluster. You can follow my other tutorial on Deploy multi-node Kubernetes Cluster locally with Rancher....

May 1, 2021 · Kamrul

Deploy multi-node Kubernetes Cluster locally with Rancher

Rancher is a complete Kubernetes management tool which simplifies the Kubernetes cluster management. It is an open-source multi-cluster orchestration platform which addresses operational and security challenges. In this tutorial, we will use Rancher to deploy our Kubernetes cluster locally. Prerequisite: Before starting, we need to setup a static private IP to our host machine. In my case it is 192.168.1.185. It might be different on your side. So grab your private IP address from the network interface....

May 1, 2021 · Kamrul

Dynamically add GitHub Actions IP to AWS security group

In this tutorial we will see how to add GitHub actions IP dynamically to AWS security group. Whenever a workflow runs, Github actions IP will be added to the security group and removed when the jobs are done. If you use AWS security group to protect your infrastructure from any external access and you also use Github Action for CI/CD, you might need to allow Github Actions IP in AWS security group so that the workflow can execute the tasks in your instance....

April 25, 2021 · Kamrul

Monitor Kubernetes cluster using Prometheus and Grafana

Kubernetes is a very dynamic environment. In order to monitor this, we need a tool like Prometheus which can monitor such dynamic environment. In this tutorial, we will setup Prometheus which will collect the data from Kubernetes cluster and visualize it in Grafana. We will use Helm chart to setup Prometheus and Grafana easily 😎 Prerequisite A dynamic persistent provisioner. You can check my other guide on Setting up dynamic NFS provisioning in Kubernetes with Helm 3....

September 22, 2020 · Kamrul