mirror of
https://pagure.io/fedora-docs/quick-docs.git
synced 2024-11-24 21:35:17 +00:00
165 lines
5.8 KiB
Text
165 lines
5.8 KiB
Text
|
= Non-versioned Kubernetes RPMS on Fedora
|
||
|
Bradley G Smith,
|
||
|
:revnumber: F39,F40,F41
|
||
|
:revdate: 2024-07-30
|
||
|
:category: Installation
|
||
|
:tags: How-to, kubernetes, dnf, rpm, containers
|
||
|
|
||
|
// Optional free form useful additional information as comment
|
||
|
|
||
|
//include::{partialsdir}/3rdparty-message.adoc[]
|
||
|
include::partial$3rdparty-message.adoc[]
|
||
|
|
||
|
[[sect-overview]]
|
||
|
== Overview
|
||
|
|
||
|
Non-versioned Kubernetes RPMS are the standard rpm format for Kubernetes through Fedora 40. Fedora 41 (currently rawhide) contains both versioned and non-versioned rpms.
|
||
|
|
||
|
[[sect-kubernetes-rpms]]
|
||
|
== Non-versioned Kubernetes rpms in Fedora
|
||
|
|
||
|
The number, name, and organization of content in Fedora Kubernetes rpms depends on the Fedora release.
|
||
|
Fedora 40 and newer releases (starting with Kubernetes v1.29) have one set of rpms.
|
||
|
Fedora 39 and older releases have the legacy set of rpms.
|
||
|
|
||
|
[[sect-fedora-39-and-older]]
|
||
|
=== Fedora 39 and older releases
|
||
|
|
||
|
The table below lists the available Kubernetes rpms in Fedora 39 and older releases, what the rpm contains, and notes on purpose and any restrictions or cautions.
|
||
|
|
||
|
.Kubernetes rpms in Fedora 39 (and older)
|
||
|
[cols="1,1,1", options="header"]
|
||
|
|===
|
||
|
|RPM Name |Contents |Notes
|
||
|
|kubernetes
|
||
|
|Empty
|
||
|
|Also installs kubernetes-node and kubernetes-master.
|
||
|
|
||
|
|kubernetes-client
|
||
|
|kubectl
|
||
|
|Kubernetes command line client.
|
||
|
Recommended on any node configured as a control plane as it allows the cluster administrator control over the cluster from an ssh session on the control plane.
|
||
|
Install on a machine that can connect to the cluster over the network.
|
||
|
|
||
|
|kubernetes-kubeadm
|
||
|
|kubeadm
|
||
|
|Kubeadm initializes a cluster and joins new nodes to a cluster.
|
||
|
This rpm is optional but recommended by the Kubernetes team.
|
||
|
Install on every node if used.
|
||
|
|
||
|
|kubernetes-master
|
||
|
|kube-apiserver, kube-controller-manager, kube-proxy, kube-scheduler
|
||
|
|Systemd services for a kubernetes node.
|
||
|
Not needed for most installations as kubeadm will install these components as static pods.
|
||
|
If used, then install on each node.
|
||
|
Also installs kubernetes-client.
|
||
|
|
||
|
|kubernetes-node
|
||
|
|kubelet
|
||
|
|Kubernetes runtime on a node.
|
||
|
Required on each node.
|
||
|
|===
|
||
|
|
||
|
[[sect-fedora-39-recommendations]]
|
||
|
==== Fedora 39 (and older) Installation recommendations
|
||
|
|
||
|
For most modern kubernetes clusters install kubernetes-node, kubernetes-kubeadm, and kubernetes-client on each machine in the cluster.
|
||
|
If disk space is a constraint only install kubernetes-client on control-plane machines.
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
sudo dnf install kubernetes-kubeadm kubernetes-node kubernetes-client
|
||
|
----
|
||
|
|
||
|
If conducting a manual installation of Kubernetes (see link:https://github.com/kelseyhightower/kubernetes-the-hard-way[Kubernetes The Hard Way]) then install kubernetes-master and kubernetes-kubeadm.
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
sudo dnf install kubernetes-master kubernetes-kubeadm kubernetes-node kubernetes-client
|
||
|
----
|
||
|
|
||
|
[[sect-fedora40-and-41]]
|
||
|
=== Fedora 40 and 41 non-versioned rpms
|
||
|
|
||
|
Kubernetes rpms have been reorganized starting with Kubernetes version 1.29 in Fedora 40.
|
||
|
The table below lists the available Kubernetes rpms, what the rpm contains, and notes on purpose and any cautions or restrictions.
|
||
|
|
||
|
.Kubernetes rpms in Fedora 40 and 41
|
||
|
[cols="1,1,1", options="header"]
|
||
|
|===
|
||
|
|RPM Name|Contents|Notes
|
||
|
|kubernetes
|
||
|
|kubelet
|
||
|
|Kubelet is the Kubernetes runtime on a node.
|
||
|
|
||
|
|kubernetes-kubeadm
|
||
|
|kubeadm
|
||
|
|Kubeadm initializes a cluster and joins new nodes to a cluster.
|
||
|
This rpm is optional but recommended by the Kubernetes team.
|
||
|
Install on every node if used.
|
||
|
|
||
|
|kubernetes-client
|
||
|
|kubectl
|
||
|
|Kubernetes command line client.
|
||
|
Recommended on any node configured as a control plane as it allows the cluster administrator control over the cluster from an ssh session on the control plane.
|
||
|
Install on a machine that can connect to the cluster over the network.
|
||
|
|
||
|
|kubernetes-systemd
|
||
|
|kube-apiserver, kube-controller-manager, kube-proxy, kube-scheduler
|
||
|
|Systemd services for a kubernetes control-plane and/or node.
|
||
|
Not needed for most installations as kubeadm will install these components as static pods.
|
||
|
If used, then install on all nodes.
|
||
|
Use systemctl to enable kube-proxy on all nodes. Enable kube-apiserver, kube-controller-manager, and kube-scheduler on control plane nodes.
|
||
|
|
||
|
|===
|
||
|
|
||
|
[[sect-fedora-40-recommendations]]
|
||
|
==== Fedora 40 (and newer) installation recommendations
|
||
|
|
||
|
For most modern kubernetes clusters install kubernetes, kubernetes-kubeadm, and kubernetes-client on each machine in the cluster.
|
||
|
If disk space is a constraint only install kubernetes-client on control-plane machines.
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
sudo dnf install kubernetes kubernetes-kubeadm kubernetes-client
|
||
|
----
|
||
|
|
||
|
If conducting a manual installation of Kubernetes (see link:https://github.com/kelseyhightower/kubernetes-the-hard-way[Kubernetes The Hard Way]) then install all kubernetes rpms except kubernetes-kubeadm.
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
sudo dnf install kubernetes kubernetes-client kubernetes-systemd
|
||
|
----
|
||
|
|
||
|
[[sect-kubernetes-fedora-crosswalk]]
|
||
|
== Kubernetes and Fedora version crosswalk
|
||
|
|
||
|
Each Fedora release has a corresponding version of Kubernetes available as listed below.
|
||
|
The goal is to provide the most current Kubernetes release available when a Fedora release reaches General Availability (GA).
|
||
|
This is not always possible resulting in skipped Kubernetes releases.
|
||
|
Skipping a release causes problems for Kubernetes cluster administrators given the Kubernetes cluster upgrade process.
|
||
|
Alternative ways to package Kubernetes for Fedora are being explored.
|
||
|
|
||
|
The version of the Go programming language supported for a given Fedora release can also limit the version of Kubernetes available if Kubernetes requires a newer version of Go.
|
||
|
|
||
|
.Kubernetes versions and the corresponding Fedora release
|
||
|
[cols="1,1,1,1", options="header"]
|
||
|
|===
|
||
|
|Kubernetes Version |Target Fedora Release | Kubernetes End-of-Life | Kubernetes Golang 'Built-With' Version
|
||
|
|1.29
|
||
|
|F40/F41
|
||
|
|2025.02.28
|
||
|
|1.21
|
||
|
|
||
|
|1.28
|
||
|
|COPR^1^
|
||
|
|2024.10.28
|
||
|
|1.21 (was 1.20)
|
||
|
|
||
|
|1.27
|
||
|
|F39
|
||
|
|2024.06.28
|
||
|
|1.21 (was 1.20)
|
||
|
|===
|
||
|
|