home.social

#rke2 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #rke2, aggregated by home.social.

  1. Updated #Orked, my collection of scripts to help set up a production-ready #RKE2 #Kubernetes cluster in your #homelab. This update brings general improvements to the scripts, improved documentation, #HAProxy load balancer support for load balancing multiple Master nodes, and upgraded all components including RKE2, #Longhorn, #Nginx Ingress, #Cert-manager, #MetalLB, #Rancher, etc. to their latest versions.

    I still hope someday to support more Kubernetes
    distributions like #k3s, but haven't gotten around to it. I've also been planning to support more #Linux distros as the base too, instead of only #RockyLinux/#RHEL, but that'll have to wait as well for now. Regardless, I am quite happy with how mature and stable these scripts have turned out to be. If you'd like to set up a cluster of your own, maybe check it out!

    🔗 https://github.com/irfanhakim-as/orked

    🔗 https://github.com/irfanhakim-as/orked/pull/41

  2. Updated #Orked, my collection of scripts to help set up a production-ready #RKE2 #Kubernetes cluster in your #homelab. This update brings general improvements to the scripts, improved documentation, #HAProxy load balancer support for load balancing multiple Master nodes, and upgraded all components including RKE2, #Longhorn, #Nginx Ingress, #Cert-manager, #MetalLB, #Rancher, etc. to their latest versions.

    I still hope someday to support more Kubernetes
    distributions like #k3s, but haven't gotten around to it. I've also been planning to support more #Linux distros as the base too, instead of only #RockyLinux/#RHEL, but that'll have to wait as well for now. Regardless, I am quite happy with how mature and stable these scripts have turned out to be. If you'd like to set up a cluster of your own, maybe check it out!

    🔗 https://github.com/irfanhakim-as/orked

    🔗 https://github.com/irfanhakim-as/orked/pull/41

  3. I've just merged a huge PR to my #Orked (O-tomated RKE Distribution - GREAT NAME I KNOW) that makes it easier than ever for anyone to set up a production-ready #RKE2 #Kubernetes cluster in their #homelab.

    With this collection of scripts, all you need to do is just provision the nodes required, including a login/management node, and run the scripts right from the login node to configure all of the other nodes to make up the cluster. This setup includes:

    - Configuring the Login node with any required or essential dependencies (such as
    #Helm, #Docker, #k9s, #kubens, #kubectx, etc.)

    - Setup passwordless
    #SSH access from the Login node to the rest of the Kubernetes nodes

    - Update the
    hosts file for strictly necessary name resolution on the Login node and between the Kubernetes nodes

    - Necessary, best practice configurations for all of the Kubernetes nodes including networking configuration, disabling unnecessary services, disabling swap, loading required modules, etc.

    - Installation and configuration of RKE2 on all the Kubernetes nodes and joining them together as a cluster

    - Installation and configuration of
    #Longhorn storage, including formatting/configuring their virtual disks on the Worker nodes

    - Deployment and configuration of
    #MetalLB as the cluster's load-balancer

    - Deployment and configuration of
    #Ingress #NGINX as the ingress controller and reverse proxy for the cluster - this helps manage external access to the services in the cluster

    - Setup and configuration of
    #cert-manager to obtain and renew #LetsEncrypt certs automatically - supports both #DNS and HTTP validation with #Cloudflare

    - Installation and configuration of
    #csi-driver-smb which adds support for integrating your external SMB storage to the Kubernetes cluster

    Besides these, there are also some other
    helper scripts to make certain related tasks easy such as a script to set a unique static IP address and hostname, and another to toggle #SELinux enforcement to on or off - should you need to turn it off (temporarily).

    If you already have an existing RKE2 cluster, there's a step-by-step guide on how you could use it to easily configure and join additional nodes to your cluster if you're planning on expanding.

    Orked currently expects and supports
    #RockyLinux 8+ (should also support any other #RHEL distros such as #AlmaLinux), but I am planning to improve the project over time by adding more #Linux distros, #IPv6 support, and possibly even #K3s for a more lightweight #RaspberryPi cluster for example.

    I've used this exact setup to deploy and manage vital services to hundreds of unique clients/organisations that I've become
    obsessed with sharing it to everyone and making it easier to get started. If this is something that interests you, feel free to check it out!

    If you're wondering what to deploy on a Kubernetes cluster - feel free to also check out my
    #mika helm chart repo 🥳

    🔗 https://github.com/irfanhakim-as/orked

    🔗 https://github.com/irfanhakim-as/charts

  4. I've just merged a huge PR to my #Orked (O-tomated RKE Distribution - GREAT NAME I KNOW) that makes it easier than ever for anyone to set up a production-ready #RKE2 #Kubernetes cluster in their #homelab.

    With this collection of scripts, all you need to do is just provision the nodes required, including a login/management node, and run the scripts right from the login node to configure all of the other nodes to make up the cluster. This setup includes:

    - Configuring the Login node with any required or essential dependencies (such as
    #Helm, #Docker, #k9s, #kubens, #kubectx, etc.)

    - Setup passwordless
    #SSH access from the Login node to the rest of the Kubernetes nodes

    - Update the
    hosts file for strictly necessary name resolution on the Login node and between the Kubernetes nodes

    - Necessary, best practice configurations for all of the Kubernetes nodes including networking configuration, disabling unnecessary services, disabling swap, loading required modules, etc.

    - Installation and configuration of RKE2 on all the Kubernetes nodes and joining them together as a cluster

    - Installation and configuration of
    #Longhorn storage, including formatting/configuring their virtual disks on the Worker nodes

    - Deployment and configuration of
    #MetalLB as the cluster's load-balancer

    - Deployment and configuration of
    #Ingress #NGINX as the ingress controller and reverse proxy for the cluster - this helps manage external access to the services in the cluster

    - Setup and configuration of
    #cert-manager to obtain and renew #LetsEncrypt certs automatically - supports both #DNS and HTTP validation with #Cloudflare

    - Installation and configuration of
    #csi-driver-smb which adds support for integrating your external SMB storage to the Kubernetes cluster

    Besides these, there are also some other
    helper scripts to make certain related tasks easy such as a script to set a unique static IP address and hostname, and another to toggle #SELinux enforcement to on or off - should you need to turn it off (temporarily).

    If you already have an existing RKE2 cluster, there's a step-by-step guide on how you could use it to easily configure and join additional nodes to your cluster if you're planning on expanding.

    Orked currently expects and supports
    #RockyLinux 8+ (should also support any other #RHEL distros such as #AlmaLinux), but I am planning to improve the project over time by adding more #Linux distros, #IPv6 support, and possibly even #K3s for a more lightweight #RaspberryPi cluster for example.

    I've used this exact setup to deploy and manage vital services to hundreds of unique clients/organisations that I've become
    obsessed with sharing it to everyone and making it easier to get started. If this is something that interests you, feel free to check it out!

    If you're wondering what to deploy on a Kubernetes cluster - feel free to also check out my
    #mika helm chart repo 🥳

    🔗 https://github.com/irfanhakim-as/orked

    🔗 https://github.com/irfanhakim-as/charts

  5. I've #MetalLB + #NGINX #Ingress controller setup on my #RKE2 #Kubernetes cluster. How it should/would work is for me to:

    1. Register a domain name on my DNS server i.e.
    #Cloudflare pointing towards my public IP (router)

    2. Set up port forwarding on my router for
    HTTP (wan port: 80, virtual host port: 80, lan host IP: my loadbalancer IP) and HTTPS (wan port: 443, virtual host port: 443, lan host IP: my loadbalancer IP)

    3. Deploy an ingress for my service

    ^ this setup works. but right now, I'm in a situation where i want to avoid using WAN ports;
    80 and 443 - and possibly switch them with 8080 and 8443. What should I do to be able to do this, because as it is if I do just that, going to the address/domain specified in my service's ingress would return me a 404 NGINX error.

    Why I want to do this is because that 80-443 port forwarding rule I've already used for my Cluster 1's loadbalancer IP. I'm now setting things up for my second cluster, Cluster 2, and I can't port forward the same 80-443 pair to Cluster 2's loadbalancer IP.

    Please help ;(

  6. Asking this again to #Kubernetes/#networking experts cos I still am not able to figure this out. I've 1 #RKE2 cluster previously, with #MetalLB and #NGINX Ingress configured. In this "Cluster 1" setup, I have 2 port forwarding rules on my router that looks something like this:

    name: cluster1-http
    wan start/end port: 80
    lan host address: 192.168.0.88
    virtual host port: 80
    name: cluster1-https
    wan start/end port: 443
    lan host address: 192.168.0.88
    virtual host port: 443

    The MetalLB IPv4 address range (
    IPAddressPool) I had set up for Cluster 1 was 192.168.0.88-192.168.0.89.

    Now I had deployed a second cluster (i.e. Cluster 2), in the same network, with the exact same set of configurations, besides a different IP range of
    192.168.0.86-192.168.0.87 for the load balancer. I thought all I need now is to setup a similar pair of port forwarding rules, but with updated LAN Host Address according to its IP range (i.e. 192.168.0.86) but that's not possible since my router gave out an error complaining that the WAN Start/End ports were conflicting.

    I updated the WAN ports to
    8080 and 8443 respectively (just for the sake of it really cos idk what else to do for now), but when I tested deploying a service with Ingress and while it successfully received a cert from #LetsEncrypt/#Cloudflare, actually going to the domain would give me an NGINX 404 error. What should I do?

  7. #metallb #rke2 #homelab #kubernetes #k8s fixed! Misunderstanding on my part in there metallb docs around the kubelet config options.

  8. #metallb #rke2 #homelab #kubernetes #k8s I feel like I’m hitting some edge case due to just starting with rke2. Anyone have a working bare metal load balancer with rke2?