Skip to content

Latest commit

 

History

History
67 lines (48 loc) · 2.64 KB

kubeadm.md

File metadata and controls

67 lines (48 loc) · 2.64 KB

Running CRI-O with kubeadm

This tutorial assumes you've already installed and setup CRI-O. If you have not, start here. It also assumes you've set up your system to use kubeadm. If you haven't done so, here is a good tutorial

Configuring CNI

You'll need to use your plugins to figure out your pod-network-cidr. If you use the default bridge plugin defined here, set CIDR=10.85.0.0/16 If you're using a flannel network, set CIDR=10.244.0.0/16

Configuring kubelet

There is a handy, pre-prepared /etc/default/kubelet file here This will configure kubeadm to run with the correct defaults CRI-O needs to run.

Note: This file assumes you've set your cgroup_driver as systemd

Running kubeadm

Given you've set CIDR, and you've properly set the kubelet file, all you need to do is start crio (as defined here), and run: kubeadm init --pod-network-cidr=$CIDR

Running kubeadm in an off line network

We will assume that the user has installed CRI-O and all necessary packages. We will also assume that all necessary components are configured and everything is working as expected. The user should have a private repo where the container images are pushed. An example of container images for Kubernetes version 1.18.2:

$ kubeadm config images list --image-repository user.private.repo --kubernetes-version=v1.18.2
user.private.repo/kube-apiserver:v1.18.2
user.private.repo/kube-controller-manager:v1.18.2
user.private.repo/kube-scheduler:v1.18.2
user.private.repo/kube-proxy:v1.18.2
user.private.repo/pause:3.2
user.private.repo/etcd:3.4.3-0
user.private.repo/coredns:1.6.7

The user needs to configure the registries.conf file.

Sample of configurations:

$ cat /etc/containers/registries.conf
unqualified-search-registries = ["user.private.repo"]

[[registry]]
prefix = "k8s.gcr.io"
insecure = false
blocked = false
location = "k8s.gcr.io"

[[registry.mirror]]
location = "user.private.repo"

Next the user should reload and restart the CRI-O service to load the configurations.

The user needs to add the cgroup driver to the configuration file or pass it as a parameter when starting kubeadm for the master node. The following are samples of parameters for the configuration file:

---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd