Upstream Kubernetes on Flatcar Linux using Rafay¶
This blog is Part 3 of our series on Flatcar Linux and Kubernetes
- In Part 1, we introduced Flatcar Linux and why it is a great fit for Kubernetes.
- In Part 2, we covered how to install a Flatcar instance locally.
- In this Part 3, we focus on deploying and managing Upstream Kubernetes on Flatcar Linux using Rafay MKS.
Our upcoming February release will introduce a number of new features and enhancements.We will write about these in separate blogs. This blog is focused on support for Upstream Kubernetes based on Rafay MKS on nodes running Flatcar Linux. The Rafay platform enables users to seamlessly provision new clusters and perform in-place upgrades of Kubernetes clusters, simplifying lifecycle management.
For more details on Flatcar Linux, visit the official Flatcar Linux website.
Provision Cluster¶
Rafay MKS based Upstream Kubernetes clusters can be configured and provisioned on Flatcar Linux using all the supported interfaces i.e.
- Web Console
- API
- CLI (declarative spec)
- GitOps
- Rafay Terraform/OpenTofu Provider
In this blog, we will demonstrate this using the web console and the Rafay RCTL CLI.
New Cluster Provisioning¶
Users of the Rafay platform can provision upstream Kubernetes clusters on Flatcar Linux-based nodes. Shown below is a screenshot.
Clicking on a node in the cluster dashboard will provide additional details about the Kubernetes version as well.
In-place Upgrade¶
Rafay's platform fully supports in-place upgrades of upstream Kubernetes clusters on Flatcar Linux. Users can initiate an upgrade via the Rafay console or API, enabling them to keep their clusters up to date with minimal disruption.
New Cluster Provisioning¶
Users can also provision upstream Kubernetes clusters on Flatcar Linux-based nodes using RCTL CLI. Below is a sample basic cluster configuration. Notice the reference to Flatcar Linux in the cluster spec below
apiVersion: infra.k8smgmt.io/v3
kind: Cluster
metadata:
name: mks-demo-cluster
project: demo
spec:
blueprint:
name: minimal
version: latest
config:
autoApproveNodes: true
installerTtl: 365
kubernetesVersion: v1.31.0
network:
cni:
name: Calico
version: 3.28.1
podSubnet: 10.244.0.0/16
serviceSubnet: 10.96.0.0/12
nodes:
- arch: x86_64
hostname: flatcar-demo-vm
operatingSystem: Flatcar Linux
privateip: <private node IP>
roles:
- Worker
- Master
- Storage
ssh:
ipAddress: <public IP of the node>
port: "22"
privateKeyPath:
username: <username>
type: mks
To provision the cluster using the declarative cluster spec and the RCTL CLI and for all Day-2 operations
RCTL Command to Apply the Configuration
./rctl apply -f <cluster.yaml>
In-place Upgrades¶
Users can initiate a Kubernetes upgrade by simply updating the kubernetesVersion
in the configuration and reapplying it using the same command as above.
./rctl apply -f <cluster.yaml>
Summary¶
In this blog series, we learnt how Flatcar Linux with its unique capabilities i.e. lightweight, immutable, and container-optimized OS is purpose built and designed for secure and efficient Kubernetes deployments. It simplifies cluster management with automated updates, enhanced security, and seamless integration with Kubernetes.
-
Free Org
Sign up for a free Org if you want to try this yourself with our Get Started guides.
-
Live Demo
Schedule time with us to watch a demo in action.