问题描述
我正在尝试安装并运行一个单节点轻量级kubernetes集群,以便在我发现了k3的RaspBerry pi4上使用它。但是,从我已阅读或看到的内容来看,我可能丢失了一些东西,但是没有找到我遇到的确切问题的参考(安装后使用简单的kubectl命令进行测试):
$ kubectl get nodes
Error from server (ServiceUnavailable): the server is currently unable to handle the request
我引用的安装:
- Turing Pis,multi-node cluster ->目前,了解和使用Ansible似乎有些过分了
- Pi setup & k3s install->很好的教程,但是没有类似的配置响应?
$ sudo k3s server
INFO[2020-09-30T06:58:13.488363192+01:00] Starting k3s v1.18.9+k3s1 (630bebf9)
INFO[2020-09-30T06:58:13.489450500+01:00] Cluster bootstrap already complete
FATA[2020-09-30T06:58:13.535582640+01:00] starting kubernetes: preparing server: start cluster and https: listen tcp :6443: bind: address already in use
基于较新的安装版本,假定不再需要此功能。
- complete k3s 101 youtube->如图所示,仍然无法正常工作。
因此,如果有人能够帮助我,或指导我更好地调试和显示问题,以便我理解并可以解决问题。
$ sudo curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--write-kubeconfig-mode 664" sh -
[INFO] Finding release for channel stable
[INFO] Using v1.18.9+k3s1 as release
[INFO] Downloading hash https://github.com/rancher/k3s/releases/download/v1.18.9+k3s1/sha256sum-arm.txt
[INFO] Downloading binary https://github.com/rancher/k3s/releases/download/v1.18.9+k3s1/k3s-armhf
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
之后,尝试命令:
$ k3s --version
k3s version v1.18.9+k3s1 (630bebf9)
$ kubectl version
Client Version: version.Info{Major:"1",Minor:"18",GitVersion:"v1.18.9+k3s1",GitCommit:"630bebf94b9dce6b8cd3d402644ed023b3af8f90",GitTreeState:"clean",BuildDate:"2020-09-17T19:04:57Z",GoVersion:"go1.13.15",Compiler:"gc",Platform:"linux/arm"}
Error from server (ServiceUnavailable): the server is currently unable to handle the request
$ sudo kubectl get nodes
Error from server (ServiceUnavailable): the server is currently unable to handle the request
$ sudo k3s kubectl get nodes
The connection to the server 127.0.0.1:6443 was refused - did you specify the right host or port?
用htop来看,k3s服务器肯定正在发生某些事情:
对于设备上的k3s服务器+代理,不确定是否缺少任何东西或必须将其更改为主机:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 raspBerrypi
...不知道要进一步调试什么?
解决方法
在了解了更多安装过程后,通过观看此视频(k3s install on Pi4 - live walkthrough),我注意到k3s在raspbian上作为服务运行。
意味着您能够:
# see all listed services,to find the name of the running k3s service
$ systemctl --type=service
# service name ironically being 'k3s',and being able to follow the logs for service
$ journalctl -u k3s -f
但是,在“ /boot/cmdline.txt”中查找时,这些cgroup值在文件中的位置,但是在末尾字符之后,这使得k3s服务无法从文件中充分读取。文件内容必须为:
$ sudo cat /boot/cmdline.txt
console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait cgroup_enable=1 cgroup_memory=1 cgroup_enable=memory
完成后,我再次检查了journalctl的日志,并注意到其他有关pod容器等的日志。主节点正在运行!:
$ sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
raspberrypi Ready master 3m52s v1.18.9+k3s1
如果仍然无法解决问题,我最近也看到了一篇有关同一问题的博客文章(由于raspbian内核更新),建议修复-> post