innobead/kubefire

kubefire install on Debian GNU/Linux 11 (bullseye) => expected: 0.4.0/kubefire-cni-bridge

mjbright opened this issue · 3 comments

Describe the bug
I installed kubefire v0.3.8 on Debian Bullseye (specifically from a proxmox-ve v7.1-1 iso) - no errors at install.

But kubefire info tells me "expected: 0.4.0/kubefire-cni-bridge"

Creating a cluster using kubefire cluster create demo seems to go well (kubeadm init seems successful) but fails finally as shown below:

INFO[2023-04-14T17:38:51+02:00] 10.62.0.3:22:
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.62.0.3:6443 --token 75sj9p.o2uw58h3vredhdft \
	--discovery-token-ca-cert-hash sha256:9234ce0490866b7e066cbddf23bfcca30c1c3d5c060ad9e42d2ac29d905d53d7
INFO[2023-04-14T17:38:51+02:00] running kubeadm token create --print-join-command  node=demo-master-1
INFO[2023-04-14T17:38:51+02:00] creating the join command
INFO[2023-04-14T17:38:51+02:00] running KUBECONFIG=/etc/kubernetes/admin.conf kubectl create -f https://raw.githubusercontent.com/cilium/cilium/v1.9.6/install/kubernetes/quick-install.yaml  node=demo-master-1
INFO[2023-04-14T17:38:51+02:00] applying CNI network
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: serviceaccount/cilium created
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: serviceaccount/cilium-operator created
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: configmap/cilium-config created
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: clusterrole.rbac.authorization.k8s.io/cilium created
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: clusterrole.rbac.authorization.k8s.io/cilium-operator created
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: clusterrolebinding.rbac.authorization.k8s.io/cilium created
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: clusterrolebinding.rbac.authorization.k8s.io/cilium-operator created
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: Warning: spec.template.metadata.annotations[scheduler.alpha.kubernetes.io/critical-pod]: non-functional in v1.16+; use the "priorityClassName" field instead
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: daemonset.apps/cilium created
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: deployment.apps/cilium-operator created
INFO[2023-04-14T17:38:52+02:00] running KUBECONFIG=/etc/kubernetes/admin.conf kubectl taint nodes --all node-role.kubernetes.io/master-  node=demo-master-1
INFO[2023-04-14T17:38:52+02:00] untainting the master node                    node=demo-master-1
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: error: taint "node-role.kubernetes.io/master" not found
Usage:
  kubefire cluster create [name] [flags]

Flags:
  -b, --bootstrapper string    Bootstrapper type, options: [kubeadm, k3s, rke2, k0s] (default "kubeadm")
  -c, --config string          Cluster configuration file (ex: use 'config-template' command to generate the default cluster config)
  -o, --extra-options string   Extra options (ex: key=value,...) for bootstrapper
  -f, --force                  Force to recreate if the cluster exists
  -h, --help                   help for create
  -i, --image string           Rootfs container image (default "ghcr.io/innobead/kubefire-opensuse-leap:15.2")
      --kernel-args string     Kernel arguments (default "console=ttyS0 reboot=k panic=1 pci=off ip=dhcp security=apparmor apparmor=1")
      --kernel-image string    Kernel container image (default "ghcr.io/innobead/kubefire-ignite-kernel:4.19.125-amd64")
      --master-count int       Count of master node (default 1)
      --master-cpu int         CPUs of master node (default 2)
      --master-memory string   Memory of master node (default "2GB")
      --master-size string     Disk size of master node (default "10GB")
      --no-cache               Forget caches
      --no-start               Don't start nodes
  -k, --pubkey string          Public key
  -v, --version string         Version of Kubernetes supported by bootstrapper (ex: v1.18, v1.18.8, empty)
      --worker-count int       Count of worker node
      --worker-cpu int         CPUs of worker node (default 2)
      --worker-memory string   Memory of worker node (default "2GB")
      --worker-size string     Disk size of worker node (default "10GB")

Global Flags:
  -t, --github-token string   GIthub Personal Access Token used to query repo release info
  -l, --log-level string      log level, options: [panic, fatal, error, warning, info, debug, trace] (default "info")

FATA[2023-04-14T17:38:52+02:00] failed to run kubefire                        error="failed to deploy cluster (demo): Process exited with status 1"

This does succeed to perform a single-node installation.

Connecting to the demo-master-1 node we can validate that the kubeadm init was successful

KUBECONFIG=/etc/kubernetes/admin.conf kubectl get no
NAME            STATUS   ROLES           AGE     VERSION
demo-master-1   Ready    control-plane   2m41s   v1.27.0

To Reproduce
Steps to reproduce the behavior with debug log enabled. --log-level=debug

  • run the kubefire info command to see that there is a kubefire-cni-plugin related problem
  • create a demo cluster using kubefire cluster create demo

Expected behavior

  • kubefire info should show that kubefire-cni-plugin is present (version 0.4.0)
  • demo cluster creation should succeed in creating a 2-node cluster

Environment

  • OS version
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
  • Kubefire version
Build: 46925d5-20220621143922```

 - Kubefire runtime info
```kubefire info
CONTAINERD	IGNITE 	CNI   	RUNC 	CNIPLUGIN
v1.6.6    	v0.10.0	v1.1.1	1.1.3	 (expected: 0.4.0/kubefire-cni-bridge)

Additional context
The OS was installed from a Proxmox-VE iso image. I suspect that some debian package required by kubefire is missing.

In fact, this is working better than I initially thought.

After creating a 2-node k0s-cluster I realize that cluster creation works fine and I can setup routes to Pod and Cluster subnetworks and access a Service, or Pods fine.

With regard to the initial issue when runningkubefire cluster create demo

  • kubefire info does say expected: 0.4.0/kubefire-cni-bridge
  • The cluster create finished with a failure, but maybe the single-node cluster was OK.

I'd expected kubefire cluster create demo to create a 2-node cluster, and I was badly interpreting the kubefire cluster show demo output

So there is something not right, but this is not blocking.

I am able to successfully create a 2-node k0s-cluster on this Debian (Proxmox-VE) machine.

This is the same cause as #75 . Thanks for reporting this and this will be fixed in the next version.

INFO[2023-04-14T17:38:52+02:00] untainting the master node node=demo-master-1
INFO[2023-04-14T17:38:52+02:00] 10.62.0.3:22: error: taint "node-role.kubernetes.io/master" not found

Fixed in 0.3.10