#691 Update Kubernetes Quick Doc
Merged 2 months ago by pbokoc. Opened 3 months ago by buckaroogeek.
fedora-docs/ buckaroogeek/quick-docs p3  into  main

@@ -1,5 +1,5 @@ 

  = Using Kubernetes on Fedora

- Bradley G Smith, 

+ Bradley G Smith,

  :revnumber: F37,F38,F39,rawhide

  :revdate: 2023-12-23

  :category: Installation
@@ -37,19 +37,20 @@ 

  [horizontal]

  cluster:: a set of one or more nodes managed as an entity.

  A cluster has at least one node and one control plane (these can be on the same or separate machines).

- control plane:: the container orchestration layer in a cluster which manages the pods in the cluster.

+ control plane:: the node or nodes in the cluster hosting the management services for the cluster.

  At least one node in a cluster has a control plane.

+ A control plane machine can also function as a worker node.

  node:: a worker machine (either a virtual machine or physical machine) in a Kubernetes cluster that has the services required to run pods.

  These services include the `kubelet` container runtime and `kube-proxy`.

  pods:: containerized applications are deployed and managed in Kubernetes as pods.

  A pod is the base object managed by Kubernetes in a cluster.

- A pod typically has a single primary container but may include more capabilities.

+ A pod typically has a single primary container but may include more capabilities including multiple containers.

  

  [[sect-kubernetes-rpms]]

  == 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 will have one set of rpms (link:https://fedoraproject.org/wiki/Changes/RestructureKubernetesPackages[pending change proposal for Fedora 40]).

+ 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]]
@@ -104,13 +105,14 @@ 

  

  [source,bash]

  ----

- sudo dnf install kubernetes-master kubernetes-kubeadm

+ sudo dnf install kubernetes-master kubernetes-kubeadm kubernetes-node kubernetes-client

  ----

- ////

+ 

  [[sect-fedora40-and-newer]]

  === Fedora 40 and newer releases

  

- Kubernetes rpms have been reorganized starting with Fedora 40 (rawhide in Sept 2023).

+ Kubernetes rpms have been reorganized starting with Kubernetes version 1.29 in Fedora 40.

+ Rawhide for Fedora 40 initially started with Kubernetes v1.28 and the legacy package organization but these have been superseded by Kubernetes v1.29 starting in late January 2024.

  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 newer)
@@ -129,7 +131,7 @@ 

  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-legacy-systemd

+ |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.
@@ -153,15 +155,16 @@ 

  

  [source,bash]

  ----

- sudo dnf install kubernetes kubernetes-kubeadm kubernetes-control-plane-services kubernetes-node-services kubernetes-client

+ 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.

+ 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.
@@ -171,12 +174,12 @@ 

  |===

  |Kubernetes Version |Target Fedora Release | Kubernetes End-of-Life | Kubernetes Golang 'Built-With' Version

  |1.29

- |TBD

+ |F40

  |2025.02.28

  |1.21

  

  |1.28

- |F40

+ |COPR^1^

  |2024.10.28

  |1.20

  
@@ -191,7 +194,7 @@ 

  |1.20 (was 1.19)

  |===

  

- ^1^ F37 provides Go version 1.19. When Kubernetes switched to Go 1.20 (1.25.12) a link:https://copr.fedorainfracloud.org/coprs/buckaroogeek/copr-k8s-1.25/[COPR project] was created for more recent versions of Kubernetes 1.25.

+ ^1^ Rawhide for Fedora 40 was initialized with Kubernetes v1.28. Kubernetes v1.29 went live while Fedora 40 was still in rawhide and superseded v1.28. Since Fedora 39 has Kubernetes v1.27 and changing to v1.28 would be problematic for existing clusters, Kubernetes v1.28 was moved to a link:https://copr.fedorainfracloud.org/coprs/buckaroogeek/copr-k8s-1.28/[COPR project].

  

  [cluster-creation]

  == Creating a Kubernetes cluster with kubeadm using Fedora rpms
@@ -308,24 +311,19 @@ 

  sudo dnf install cri-o containernetworking-plugins

  ----

  

- . Install Kubernetes. This installs the three necessary Kubernetes applications (`kubectl`, `kubelet`, and `kubeadm`) that need to be on each machine in the cluster.

+ . Install Kubernetes.

+ In this example, all three Kubernetes applications (`kubectl`, `kubelet`, and `kubeadm`) are installed on this single node machine.

+ Please see the notes above on recommended packages for control plane or worker nodes if the cluster will have both types of machines.

  +

  [source,bash]

  ----

  # fedora 39 and earlier use:

  sudo dnf install kubernetes-client kubernetes-node kubernetes-kubeadm

- ----

- +

- ////

- [source,bash]

- ----

- # fedora 39 and earlier use:

- sudo dnf install kubernetes-client kubernetes-node kubernetes-kubeadm

  

  #fedora 40 and later use:

  sudo dnf install kubernetes kubernetes-client

  ----

- ////

+ 

  

  . Start and enable cri-o.

  +
@@ -447,12 +445,23 @@ 

  The link:https://copr.fedorainfracloud.org/coprs/buckaroogeek/copr-k8s-1.26/[Kubernetes 1.26] project provides Kubernetes 1.26 rpms for all current Fedora releases that provide Go language 1.20 or newer.

  This includes Fedora 39 and Fedora 40 (rawhide). Kubernetes 1.26 is directly available in Fedora 38.

  

- [references]

  [[sect-kubernetes-1.27]]

  === Kubernetes 1.27 RPMS

  The link:https://copr.fedorainfracloud.org/coprs/buckaroogeek/copr-k8s-1.27/[Kubernetes 1.27] project provides Kubernetes 1.27 rpms for all current Fedora releases that provide Go language 1.20 or newer.

  This includes Fedora 38 and Fedora 40 (rawhide). Kubernetes 1.27 is directly available in Fedora 39.

  

+ [[sect-kubernetes-1.28]]

+ === Kubernetes 1.28 RPMS

+ The link:https://copr.fedorainfracloud.org/coprs/buckaroogeek/copr-k8s-1.28/[Kubernetes 1.28] project provides Kubernetes 1.28 rpms for all current Fedora releases that provide Go language 1.20 or newer.

+ This includes Fedora 38, Fedora 39 and Fedora 40 (rawhide).i

+ Kubernetes 1.28 is not otherwise available.

+ 

+ [[sect-kubernetes-1.29]]

+ === Kubernetes 1.29 RPMS

+ The link:https://copr.fedorainfracloud.org/coprs/buckaroogeek/copr-k8s-1.29/[Kubernetes 1.29] project provides Kubernetes 1.29 rpms in the new package structure.

+ Kubernetes v1.29 requires Go language 1.21 or newer which is only available in Fedora 40.

+ This project was initialized for early access to the new package structure and will transition over time as the source for v1.29 in subsequent Fedora releases.

+ 

  [references]

  == References

  

Updates kubernetes page with Fedora 40 (rawhide) related information. New packages are in rawhide which have a different package structure that is described in this update to quick docs.

1 new commit added

  • Reduce Complexity in Kubernetes Related Definitions
3 months ago

1 new commit added

  • Revise kubernetes-legacy-systemd RPM Name
2 months ago

Hi @buckaroogeek, I see you're still adding commits. Can you let me know when you're done so I can merge?

hi Petr

Thanks for checking. I am all done!

Best regards

Brad

On Tue, Feb 6, 2024 at 2:43=E2=80=AFPM Petr Bokoc pagure@pagure.io wrote:

pbokoc commented on the pull-request: Update Kubernetes Quick Doc that =
you are following:
Hi @buckaroogeek, I see you're still adding commits. Can you let me know = when you're done so I can merge?

To reply, visit the link below or just reply to this email
https://pagure.io/fedora-docs/quick-docs/pull-request/691

rebased onto 6459cd4

2 months ago

Pull-Request has been merged by pbokoc

2 months ago

Thanks for your contribution, @buckaroogeek! :tada:

Metadata