Top Related Projects
Lightweight Kubernetes
Production-Grade Container Scheduling and Management
Deploy a Production Ready Kubernetes Cluster
The self-managing, auto-upgrading, Kubernetes distribution for everyone
MicroK8s is a small, fast, single-package Kubernetes for datacenters and the edge.
Quick Overview
RKE2, also known as RKE Government, is a Kubernetes distribution that focuses on security and compliance within the FIPS 140-2 guidelines. It is designed to be a fully conformant Kubernetes distribution, with a focus on security and compliance, that solves the common challenges of installing and running Kubernetes in both datacenter and cloud environments.
Pros
- Enhanced security features, including FIPS 140-2 compliance
- Simplified installation and management process
- Regular updates and active maintenance by Rancher
- Seamless integration with other Rancher products
Cons
- Steeper learning curve compared to some other Kubernetes distributions
- May have higher resource requirements due to additional security features
- Limited customization options compared to vanilla Kubernetes
- Potential compatibility issues with some third-party tools or plugins
Getting Started
To install RKE2 on a Linux system, you can use the following commands:
# Download the RKE2 install script
curl -sfL https://get.rke2.io | sh -
# Enable and start the RKE2 server service
systemctl enable rke2-server.service
systemctl start rke2-server.service
# Set up the kubectl configuration
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
PATH=$PATH:/var/lib/rancher/rke2/bin
# Verify the installation
kubectl get nodes
This will install RKE2 as a server node. For more detailed instructions, including setting up agent nodes and configuring additional options, refer to the official RKE2 documentation.
Competitor Comparisons
Lightweight Kubernetes
Pros of k3s
- Lighter weight and more resource-efficient, ideal for edge computing and IoT devices
- Simpler installation and setup process, with a single binary distribution
- Faster startup time and lower memory footprint
Cons of k3s
- Less suitable for large-scale enterprise deployments
- Limited customization options compared to RKE2
- May lack some advanced features and security measures present in RKE2
Code Comparison
k3s installation:
curl -sfL https://get.k3s.io | sh -
RKE2 installation:
curl -sfL https://get.rke2.io | sh -
Both projects use similar installation methods, but their internal architectures and components differ significantly. k3s focuses on simplicity and minimal resource usage, while RKE2 prioritizes enterprise-grade features and security.
k3s is better suited for smaller deployments, edge computing, and resource-constrained environments. RKE2 is more appropriate for larger, production-grade clusters with stringent security requirements and the need for advanced features.
Production-Grade Container Scheduling and Management
Pros of Kubernetes
- Larger community and ecosystem, with more extensive documentation and resources
- Greater flexibility and customization options for advanced users
- Wider range of supported platforms and deployment scenarios
Cons of Kubernetes
- More complex setup and configuration process
- Higher resource requirements for management components
- Steeper learning curve for new users and administrators
Code Comparison
RKE2:
rke2_version: v1.21.5+rke2r2
system_default_registry: ""
write_kubeconfig_mode: "0644"
Kubernetes:
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
kubernetesVersion: v1.21.0
networking:
podSubnet: 10.244.0.0/16
RKE2 configuration is typically simpler and more concise, while Kubernetes often requires more detailed configuration files. RKE2 aims to provide a more streamlined experience with sensible defaults, whereas Kubernetes offers more granular control over cluster settings.
Both projects use YAML for configuration, but RKE2 tends to have a flatter structure and fewer required fields. Kubernetes configurations often involve multiple YAML documents and more complex hierarchies to define various cluster components and settings.
Deploy a Production Ready Kubernetes Cluster
Pros of kubespray
- Supports multiple operating systems and cloud providers
- Highly customizable with extensive configuration options
- Can deploy and manage multi-node clusters
Cons of kubespray
- More complex setup and learning curve
- Requires manual intervention for upgrades
- Slower deployment process compared to RKE2
Code Comparison
kubespray:
all:
vars:
ansible_user: ubuntu
ansible_become: true
kubernetes_version: v1.21.0
kube_network_plugin: calico
RKE2:
token: my-shared-secret
tls-san:
- my-kubernetes-domain.com
disable:
- rke2-ingress-nginx
Key Differences
- kubespray uses Ansible for deployment, while RKE2 is a standalone binary
- RKE2 focuses on simplicity and ease of use, while kubespray offers more flexibility
- kubespray supports a wider range of configurations, but RKE2 provides a more streamlined experience
- RKE2 includes built-in components like etcd and containerd, while kubespray allows for more customization of these components
Both tools are actively maintained and have strong community support, but they cater to different use cases and preferences in the Kubernetes ecosystem.
The self-managing, auto-upgrading, Kubernetes distribution for everyone
Pros of OKD
- Offers a complete OpenShift distribution with enterprise-grade features
- Provides a web console for easier cluster management
- Includes integrated CI/CD pipelines and developer tools
Cons of OKD
- Higher resource requirements and complexity compared to RKE2
- Steeper learning curve for administrators and developers
- Less flexibility in terms of customization and lightweight deployments
Code Comparison
OKD (OpenShift):
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
name: example-app
spec:
replicas: 3
template:
spec:
containers:
- name: example-container
image: example-image:latest
RKE2:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-app
spec:
replicas: 3
template:
spec:
containers:
- name: example-container
image: example-image:latest
The code comparison shows that OKD uses OpenShift-specific resources like DeploymentConfig, while RKE2 uses standard Kubernetes resources. This highlights OKD's tighter integration with OpenShift features, whereas RKE2 maintains closer alignment with vanilla Kubernetes.
MicroK8s is a small, fast, single-package Kubernetes for datacenters and the edge.
Pros of MicroK8s
- Lightweight and fast to install, ideal for edge computing and IoT devices
- Snap-based installation provides automatic updates and easy management
- Includes add-ons for common services like DNS, dashboard, and storage
Cons of MicroK8s
- Limited to Ubuntu and other snap-supported Linux distributions
- Single-node focused, requiring additional setup for multi-node clusters
- Less suitable for large-scale production environments compared to RKE2
Code Comparison
MicroK8s installation:
sudo snap install microk8s --classic
microk8s status --wait-ready
microk8s kubectl get nodes
RKE2 installation:
curl -sfL https://get.rke2.io | sh -
systemctl enable rke2-server.service
systemctl start rke2-server.service
Both projects aim to simplify Kubernetes deployment, but they target different use cases. MicroK8s focuses on simplicity and ease of use for small-scale deployments, while RKE2 is designed for production-grade clusters with enhanced security features. The choice between them depends on the specific requirements of your project, such as scale, supported platforms, and desired features.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
RKE2
RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution.
It is a fully conformant Kubernetes distribution that focuses on security and compliance within the U.S. Federal Government sector.
To meet these goals, RKE2 does the following:
- Provides defaults and configuration options that allow clusters to pass the CIS Kubernetes Benchmark with minimal operator intervention
- Enables FIPS 140-2 compliance
- Supports SELinux policy and Multi-Category Security (MCS) label enforcement
- Regularly scans components for CVEs using trivy in our build pipeline
For more information and detailed installation and operation instructions, please visit our docs.
Quick Start
Here's the extremely quick start:
curl -sfL https://get.rke2.io | sh -
systemctl enable rke2-server.service
systemctl start rke2-server.service
# Wait a bit
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml PATH=$PATH:/var/lib/rancher/rke2/bin
kubectl get nodes
For a bit more, check out our full quick start guide.
Installation
A full breakdown of installation methods and information can be found here.
Configuration File
The primary way to configure RKE2 is through its config file. Command line arguments and environment variables are also available, but RKE2 is installed as a systemd service and thus these are not as easy to leverage.
By default, RKE2 will launch with the values present in the YAML file located at /etc/rancher/rke2/config.yaml
.
An example of a basic server
config file is below:
# /etc/rancher/rke2/config.yaml
write-kubeconfig-mode: "0644"
tls-san:
- "foo.local"
node-label:
- "foo=bar"
- "something=amazing"
In general, cli arguments map to their respective yaml key, with repeatable cli args being represented as yaml lists. So, an identical configuration using solely cli arguments is shown below to demonstrate this:
rke2 server \
--write-kubeconfig-mode "0644" \
--tls-san "foo.local" \
--node-label "foo=bar" \
--node-label "something=amazing"
It is also possible to use both a configuration file and cli arguments. In these situations, values will be loaded from both sources, but cli arguments will take precedence. For repeatable arguments such as --node-label
, the cli arguments will overwrite all values in the list.
Finally, the location of the config file can be changed either through the cli argument --config FILE, -c FILE
, or the environment variable $RKE2_CONFIG_FILE
.
FAQ
Security
Security issues in RKE2 can be reported by sending an email to security@rancher.com. Please do not open security issues here.
Top Related Projects
Lightweight Kubernetes
Production-Grade Container Scheduling and Management
Deploy a Production Ready Kubernetes Cluster
The self-managing, auto-upgrading, Kubernetes distribution for everyone
MicroK8s is a small, fast, single-package Kubernetes for datacenters and the edge.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot