Fedora 32 setup for KIND¶
Change to use cgroupsv1 instead of cgroupsv2¶
sudo vim /etc/default/grub
Add systemd.unified_cgroup_hierarchy=0 in kernel command line. It will look like below¶
GRUB_CMDLINE_LINUX=”resume=/dev/mapper/vv-swap rd.lvm.lv=vv/root rd.lvm.lv=vv/swap rhgb quiet intel_iommu=on systemd.unified_cgroup_hierarchy=0”
Run below command after add it. The below grub.cfg location is only of UEFI.¶
Warning
Don’t use this for Legacy BIOS.
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
sudo reboot
Verify¶
run sudo virt-host-validate to check. If all the items are PASS, it is working fine. Fuse module may FAIL. It should be load manually.
sudo virt-host-validate
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/kvm exists : PASS
QEMU: Checking if device /dev/kvm is accessible : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
QEMU: Checking for cgroup 'cpu' controller support : PASS
QEMU: Checking for cgroup 'cpuacct' controller support : PASS
QEMU: Checking for cgroup 'cpuset' controller support : PASS
QEMU: Checking for cgroup 'memory' controller support : PASS
QEMU: Checking for cgroup 'devices' controller support : PASS
QEMU: Checking for cgroup 'blkio' controller support : PASS
QEMU: Checking for device assignment IOMMU support : PASS
QEMU: Checking if IOMMU is enabled by kernel : PASS
LXC: Checking for Linux >= 2.6.26 : PASS
LXC: Checking for namespace ipc : PASS
LXC: Checking for namespace mnt : PASS
LXC: Checking for namespace pid : PASS
LXC: Checking for namespace uts : PASS
LXC: Checking for namespace net : PASS
LXC: Checking for namespace user : PASS
LXC: Checking for cgroup 'cpu' controller support : PASS
LXC: Checking for cgroup 'cpuacct' controller support : PASS
LXC: Checking for cgroup 'cpuset' controller support : PASS
LXC: Checking for cgroup 'memory' controller support : PASS
LXC: Checking for cgroup 'devices' controller support : PASS
LXC: Checking for cgroup 'freezer' controller support : PASS
LXC: Checking for cgroup 'blkio' controller support : PASS
LXC: Checking if device /sys/fs/fuse/connections exists : PASS
Change firewalld to use iptables instead of nftables¶
This sed script does not work, do it manually. Todo: fix the sed…
sed -i /etc/firewalld/firewalld.conf 's/FirewallBackend=.*/FirewallBackend=iptables/'
systemctl restart firewalld
Install go¶
git clone https://github.com/udhos/update-golang.git
cd update-golang
./update-golang
Set GOPATH in ~/.bashrc¶
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$HOME/bin
Install KIND¶
GO111MODULE="on" go get sigs.k8s.io/kind@v0.8.1
[or… git clone https://github.com/kubernetes-sigs/kind.git; make; cp bin/kind /usr/bin/kind]
Install kubectl¶
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
Install docker¶
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-masquerade
sudo dnf install moby-engine docker-compose
sudo systemctl enable docker
Install ovn-kubernetes¶
git clone https://github.com/ovn-org/ovn-kubernetes.git
Install kubernetes¶
cd $GOPATH
mkdir k8s.io; cd k8s.io
git clone https://github.com/kubernetes/kubernetes.git
Build kubernetes e2e.test binary¶
cd GOPATH/github.com/k8s.io/kubernetes
make WHAT="test/e2e/e2e.test vendor/github.com/onsi/ginkgo/ginkgo"
Start KIND cluster¶
cd $GOPATH/github.com/ovn-org/ovn-kubernetes/contrib
./kind.sh
export KUBECONFIG=$HOME/admin.conf¶
kubectl get nodes -A -o wide
[root@nfvsdn-06 contrib]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
ovn-control-plane Ready master 5m58s v1.18.2 172.18.0.4 <none> Ubuntu 20.04 LTS 5.7.17-200.fc32.x86_64 containerd://1.3.3-14-g449e9269
ovn-worker Ready <none> 5m22s v1.18.2 172.18.0.3 <none> Ubuntu 20.04 LTS 5.7.17-200.fc32.x86_64 containerd://1.3.3-14-g449e9269
ovn-worker2 Ready <none> 5m25s v1.18.2 172.18.0.2 <none> Ubuntu 20.04 LTS 5.7.17-200.fc32.x86_64 containerd://1.3.3-14-g449e9269
Run all network policy tests¶
cd $GOPATH/k8s.io./kubernetes
./_output/local/go/bin/e2e.test -kubeconfig $HOME/admin.conf -ginkgo.focus="\[sig-network\].*Policy" -num-nodes 2
Run a specific network policy test¶
cd $GOPATH/k8s.io./kubernetes
./_output/local/go/bin/e2e.test -kubeconfig $HOME/admin.conf -ginkgo.focus="should stop enforcing policies after they are deleted"