Kubernetes¶
with the help of - https://www.redhat.com/sysadmin/podman-inside-kubernetes - https://www.howtoforge.com/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/ mnemonic for a test cluster with - 1 controller - 3 workers - Rocky Linux 9 - podman not docker, because it's superiour - netavark - containerd - IPv6 centered
Basics - Object types¶
- Pods A container or a logical group of containers
- Replica Sets How many pods shall there be?
- Services A service within the kubernetes cluster
- Volumes Volumes for pods
- Name Spaces logical groups for DNS and privilege separation
- ConfigMaps and Secrets environment variables and secrets
- Stateful Sets for statefull applications
- Daemon Sets Kubernetes Scheduler???
Basics - Commands¶
- change namespace (here: backend)
kubectl config set-context --current --namespace=backend
General¶
- Setup DNS records for your nodes or make entries in /etc/hosts
- Set hostnames for your nodes, mine will be
- pod-ctrl-3
- pod-worker-4
- pod-worker-5
- pod-worker-6
- example command
hostnamectl hostname pod-ctrl-3 --static - set selinux to permissive
- Kernel modules and parameters
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 EOF sudo sysctl --system cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter - Installing
- Configuring
- Replace
SystemdCgroup = falsewithSystemdCgroup = true - Start containerd with
sudo systemctl enable --now containerd - Install kube admin packages
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled=1 gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF sudo dnf repolist sudo dnf makecache sudo dnf install kubelet kubeadm kubectl --disableexcludes=kubernetes sudo systemctl enable --now kubelet - Initialize
Controller (Master) only¶
- Setup firewall
sudo firewall-cmd --add-port=6443/tcp --permanent sudo firewall-cmd --add-port=2379-2380/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10259/tcp --permanent sudo firewall-cmd --add-port=10257/tcp --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-all
Workers only¶
swapoff -asudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab- Setup firewall