This document provides an overview of the system packages and Kubernetes-related binaries installed, along with their respective sources.
This document serves as a guideline for users who want to harden their Ubuntu hosts, providing instructions for installing and configuring the required packages and settings. By default, OSM handles these installations and configurations through an Operating System Profile. However, users who prefer to manage them manually can follow the steps outlined below.
apt)The following packages are installed using the APT package manager:
| Package | Source |
|---|---|
| curl | apt |
| jq | apt |
| ca-certificates | apt |
| ceph-common | apt |
| cifs-utils | apt |
| conntrack | apt |
| e2fsprogs | apt |
| ebtables | apt |
| ethtool | apt |
| glusterfs-client | apt |
| iptables | apt |
| kmod | apt |
| openssh-client | apt |
| nfs-common | apt |
| socat | apt |
| util-linux | apt |
| ipvsadm | apt |
| apt-transport-https | apt |
| software-properties-common | apt |
| lsb-release | apt |
| containerd.io | apt |
The following components are manually downloaded (usually from the official Kubernetes GitHub releases):
| Package | Source |
|---|---|
| CNI plugins | Manual Download (GitHub) |
| CRI-tools | Manual Download (GitHub) |
| kubelet | Manual Download (GitHub) |
| kubeadm | Manual Download (GitHub) |
| kubectl | Manual Download (GitHub) |
This repository contains scripts and systemd unit files that configure a Linux host to function as a Kubernetes node. These scripts do not install Kubernetes packages directly but apply system, kernel, and service configurations required for proper operation.
Adds NO_PROXY and no_proxy to /etc/environment to bypass proxying for:
.svc.cluster.locallocalhost127.0.0.1Creates an empty APT proxy configuration file: /etc/apt/apt.conf.d/proxy.conf
(Placeholder for proxy settings, not configured by default).
The script loads and enables essential kernel modules for networking and container orchestration:
ip_vs β IP Virtual Server (transport-layer load balancing).ip_vs_rr β Round-robin scheduling algorithm.ip_vs_wrr β Weighted round-robin scheduling algorithm.ip_vs_sh β Source-hash scheduling algorithm.nf_conntrack_ipv4 or nf_conntrack β Connection tracking support.br_netfilter β Enables netfilter for bridged network traffic (required by Kubernetes).sysctl)The following runtime kernel parameters are configured:
net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1kernel.panic_on_oops = 1kernel.panic = 10net.ipv4.ip_forward = 1vm.overcommit_memory = 1fs.inotify.max_user_watches = 1048576fs.inotify.max_user_instances = 8192/etc/machine-name value if available.kubelet, kubeadm, kubectl, and crictl binaries available in $PATH.ip -o route get 1hostname -fKubernetes requires swap to be disabled:
sed -i.orig '/.*swap.*/d' /etc/fstabswapoff -a