Skip to content
This repository was archived by the owner on Aug 7, 2025. It is now read-only.
This repository was archived by the owner on Aug 7, 2025. It is now read-only.

Kubernetes* setup guide via setup_system.sh broken and documentation is outdated #349

@eagle-te

Description

@eagle-te

There seems to be already a Ticket about that issue, but dead: #335

I was using the following article: https://www.clearlinux.org/clear-linux-documentation/tutorials/kubernetes.html#set-up-kubernetes-automatically

fresh and clean install of clearlinux version 43300

Which already fails on the first step, running system-setup.sh

$ sudo /usr/share/clr-k8s-examples/setup_system.sh
Init...

Disabling swap...
Setting OS Version...
Update started
Version on server (43300) is not newer than system version (43300)
Update complete - System already up-to-date at version 43300
Adding OS Dependencies...
Enabling IP Forwarding...
Setting up modules to load...
Setting up /etc/hosts...
/etc/hosts already configured
Reloading daemons...
Enabling kubelet runner...
Ensuring system is ready...
Detecting and setting up proxy...
Job for crio.service failed because the control process exited with error code.
See "systemctl status crio.service" and "journalctl -xeu crio.service" for details.

sudo journactl -u crio.service

Apr 26 20:54:51 host systemd[1]: Starting crio.service...
Apr 26 20:54:51 host (crio)[6514]: crio.service: Referenced but unset environment variable evaluates to an empty string: CRIO_CONFIG_OPTIONS, CRIO_METRICS_OPTIONS, CRIO_NETWORK_OPTIONS, CRIO_RUNTIME_OPTIONS, CRIO_STORAGE_OPTIONS
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.953033841Z" level=info msg="Updating config from single file: /usr/share/defaults/crio/crio.conf"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.953057748Z" level=info msg="Updating config from drop-in file: /usr/share/defaults/crio/crio.conf"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.95462472Z" level=info msg="Updating config from path: /etc/crio/crio.conf.d"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.965720056Z" level=info msg="Starting CRI-O, version: 1.32.0, git: unknown(clean)"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.965765546Z" level=info msg="Node configuration value for hugetlb cgroup is true"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.965771969Z" level=info msg="Node configuration value for pid cgroup is true"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.965806512Z" level=info msg="Node configuration value for memoryswap cgroup is true"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.965812739Z" level=info msg="Node configuration value for cgroup v2 is true"
Apr 26 20:54:51 host systemd[1]: crio.service: Got notification message from PID 6526, but reception only permitted for main PID 6514
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.974267718Z" level=info msg="Node configuration value for systemd AllowedCPUs is true"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.996157936Z" level=info msg="Using default capabilities: CAP_CHOWN, CAP_DAC_OVERRIDE, CAP_FSETID, CAP_FOWNER, CAP_SETGID, CAP_SETUID, CAP_SETPCAP, CAP_NET_BIND_SERVICE, CAP_KILL"
Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.996199602Z" level=fatal msg="validating runtime config: runtime validation: \"crun\" not found in $PATH: exec: \"crun\": executable file not found in $PATH"
Apr 26 20:54:51 host systemd[1]: crio.service: Main process exited, code=exited, status=1/FAILURE
Apr 26 20:54:51 host systemd[1]: crio.service: Failed with result 'exit-code'.
Apr 26 20:54:51 host systemd[1]: Failed to start crio.service.

which boils down to: Apr 26 20:54:51 host crio[6514]: time="2025-04-26T20:54:51.996199602Z" level=fatal msg="validating runtime config: runtime validation: \"crun\" not found in $PATH: exec: \"crun\": executable file not found in $PATH"

of which crun, apparently does not exist for clearlinux via swupd.

The documentation is also outdated, in regards of the default runtime for CRI+O:

By default, CRI+O will use runc as the default runtime.

CRI+O switched the default runtime to crun: cri-o/cri-o#8626

Which seems to be the crux, why the script no longer works in the first place.

You may build crun yourself, which requires the bundle devpkg-yajl as build dep.
This now solves the error for crun, but makes the missing conmon error appear, well, hf debugging and building. I stopped there.

The other possibilty is maybe, to add a [crio.runtime.runtimes.runc] to the crio.conf, but I dunno if that is sensible, if CRI+O themself changed the default , this results also in a missing conmon error and my novice skills in k8s may not clear the bar for what else to come.

It would be nice, if the setup guide (for CRI+O) would be updated to a working state, since the performance numbers of clearlinux makes it a relevant candidate, for a k8s cluster.
thx

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions