<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Control Plane :: Tag :: Kubernetes training</title><link>https://k8s-school.fr/labs/k8s/en/tags/control-plane/index.html</link><description/><generator>Hugo</generator><language>en</language><copyright>Copyright (c) 2025 Fabrice Jammes - Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Sun, 23 Mar 2025 14:15:26 +1000</lastBuildDate><atom:link href="https://k8s-school.fr/labs/k8s/en/tags/control-plane/index.xml" rel="self" type="application/rss+xml"/><item><title>Kubernetes Controllers</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/controller/index.html</link><pubDate>Sun, 23 Mar 2025 14:15:26 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/controller/index.html</guid><description>Objective This lab will help you understand the role of Kubernetes controllers in managing the desired/actual state of cluster resources.
Prerequisites A Kubernetes cluster (Minikube, Kind, or a cloud-based Kubernetes cluster) kubectl installed and configured Step 1: Understand Controllers Kubernetes controllers are control loops that monitor the state of the cluster and make or request changes where needed. The key controllers include:</description></item><item><title>Audit Logs &amp; API Server</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/audit-logs/index.html</link><pubDate>Thu, 06 Jun 2024 15:00:00 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/audit-logs/index.html</guid><description>Objectives Configure audit policies to trace modifications on critical resources and secure the API Server in a Kubernetes cluster.
Prerequisites Define your cluster name:
$CLUSTER_NAME="my-cluster" Q1: How to modify the API Server configuration? Answer The API Server in Kubernetes runs as a static pod managed by the kubelet. Static pods are defined by YAML manifests in the /etc/kubernetes/manifests/ directory. When you modify a static pod manifest:</description></item><item><title>Kubelet and static pods</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/openshift-staticpod/index.html</link><pubDate>Sun, 30 Jun 2024 14:15:26 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/openshift-staticpod/index.html</guid><description>Exercice 1: retrieve static pod specifications in Kubernetes (kind-based) Switch to Kubernetes cluster using kubectx kind-kind and then access the control plane Node using docker exec -t -- &lt;my-master-node&gt; sh and then access Kubelet configuration.
Answer MASTER_NODE=$(kubectl get nodes '--selector=node-role.kubernetes.io/control-plane' -o jsonpath='{.items[0].metadata.name}') # Exit the ktbx-toolbox to run docker docker exec -t -- kind-control-plane sh -c 'ps -ef | grep "/usr/bin/kubelet"' docker exec -t -- kind-control-plane sh -c 'cat /var/lib/kubelet/config.yaml | grep -i staticPodPath' docker exec -t -- kind-control-plane sh -c 'ls /etc/kubernetes/manifests' Exercice 1: retrieve static pod specifications in Openshift Switch to Kubernetes cluster using kubectx &lt;my-openshift-context&gt; and then access the control plane Node using oc debug node/&lt;my-master-node&gt; and then access Kubelet configuration.</description></item><item><title>etcd administration</title><link>https://k8s-school.fr/labs/k8s/en/1_labs/openshift-etcd/index.html</link><pubDate>Sun, 30 Jun 2024 14:15:26 +1000</pubDate><guid>https://k8s-school.fr/labs/k8s/en/1_labs/openshift-etcd/index.html</guid><description>Auteur: Fabrice JAMMES (LinkedIn).
Exercice 1: display Kubernetes and Openshift resources Retrieve etcd pod name Answer # Wait for etcd pod to be u kubectl wait --timeout=240s --for=condition=Ready -n "openshift-etcd" pods -l "app=etcd,etcd=true,k8s-app=etcd" etcd_pod=$(kubectl get pods -n "openshift-etcd" -l "app=etcd,etcd=true,k8s-app=etcd" -o jsonpath='{.items[0].metadata.name}') Launch etcdctl --help inside etcd pod Answer # Display Kubernetes keys kubectl exec -t -n "openshift-etcd" "$etcd_pod" -- etcdctl --help</description></item></channel></rss>