[Kubernetes (K8S) Kubespray] Use Kubespray to deploy a Production Ready Kubernetes (K8S) Cluster on AlmaLinux 8 with Containerd Container Runtime
Kubernetes (K8S) Cluster on AlmaLinux 8 with Containerd Container Runtime
This article show how to install Kubernetes (K8S) cluster on AlmaLinux 8 with Containerd Container Runtime.
Prerequisites
AlmaLinux 8 - Free Linux OS for the community, by the community
AlmaLinux 8 is an Open Source, community-governed and forever-free enterprise Linux distribution, focused on long-term stability, providing a robust production-grade platform. AlmaLinux OS is 1:1 binary compatible with RHEL® and pre-Stream CentOS.
AlmaLinux OS - Forever-Free Enterprise-Grade Operating System - https://almalinux.org/
Containerd - An industry-standard container runtime with an emphasis on simplicity, robustness, and portability.
containerd is available as a daemon for Linux and Windows. It manages the complete container lifecycle of its host system, from image transfer and storage to container execution and supervision to low-level storage to network attachments and beyond.
Kubespray
Kubespray allows you to deploy a production-ready Kubernetes cluster (using Ansible or Vagrant) and since v2.3 can work together with Kubernetes kubeadm.
Deploy a Production Ready Kubernetes Cluster | Readme - https://kubespray.io/
Ansible
Ansible is the simplest way to automate apps and IT infrastructure. Application Deployment + Configuration Management + Continuous Delivery.
Configuration
CentOS 8 / Oracle Linux 8 / AlmaLinux 8 and derivatives
CentOS 8 / Oracle Linux 8 / AlmaLinux 8 ship only with iptables-nft (ie without iptables-legacy similar to RHEL8) The only tested configuration for now is using Calico CNI You need to add calico_iptables_backend: "NFT"
or calico_iptables_backend: "Auto"
to your configuration.
1 | # inventory/cloudolife-example/group_vars/k8s_cluster/k8s-net-calico.yml |
If you have containers that are using iptables in the host network namespace (hostNetwork=true
), you need to ensure they are using iptables-nft
. An example how k8s do the autodetection can be found in this PR update images to Debian buster, detect iptables mode by danwinship · Pull Request #82966 · kubernetes/kubernetes - https://kubespray.io/#:~:text=can%20be%20found-,in%20this%20PR
See CentOS/OracleLinux/AlmaLinux - https://kubespray.io/#/docs/centos8 to learn more.
Containerd
Containerd is an industry-standard container runtime with an emphasis on simplicity, robustness and portability Kubespray supports basic functionality for using containerd as the default container runtime in a cluster.
To use the containerd container runtime set the following variables:
k8s-cluster.yml
1 | # inventory/cloudolife-example/group_vars/k8s_cluster/k8s-cluster.yml |
etcd.yml
1 | # inventory/cloudolife-example/group_vars/etcd.yml |
See Containerd - https://kubespray.io/#/docs/containerd to learn more.
Usages
You have two ways to run Kubespray.
Shell Mode
1 | Download kubespray |
FAQs
References
[2] Deploy a Production Ready Kubernetes Cluster | Readme - https://kubespray.io/
[3] AlmaLinux OS - Forever-Free Enterprise-Grade Operating System - https://almalinux.org/
[5] CentOS/OracleLinux/AlmaLinux - https://kubespray.io/#/docs/centos8
[6] Configuring calico/node - https://docs.projectcalico.org/reference/node/configuration
[7] Containerd - https://kubespray.io/#/docs/containerd
[8] Ansible is Simple IT Automation - https://www.ansible.com/