当我使用kubeadm init配置主节点时,我正在使用lxc容器设置kubernetes集群,它显示以下错误:-
kubeadm init --apiserver-advertise-address=10.102.126.160 --pod-network-cidr=192.168.0.0/16
[init] Using Kubernetes version: v1.13.1
[preflight] Running pre-flight checks
[preflight] The system verification failed. Printing the output from the verification:
KERNEL_VERSION: 4.15.0-43-generic
DOCKER_VERSION: 18.06.1-ce
DOCKER_GRAPH_DRIVER: overlay2
OS: Linux
CGROUPS_CPU: enabled
CGROUPS_CPUACCT: enabled
CGROUPS_CPUSET: enabled
CGROUPS_DEVICES: enabled
CGROUPS_FREEZER: enabled
CGROUPS_MEMORY: enabled
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
[ERROR Swap]: running with swap on is not supported. Please disable swap
[ERROR SystemVerification]: failed to parse kernel config: unable to load kernel module: "configs", output: "modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.15.0-43-generic/modules.dep.bin'\nmodprobe: FATAL: Module configs not found in directory /lib/modules/4.15.0-43-generic\n", err: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
谁能帮我解决这个问题。
答案 0 :(得分:2)
要在lxc container
中运行kubernetes,首先需要进行一些配置,例如lxc容器中没有kernel module
,因此您需要为docker使用overlay
驱动程序。另外,您的交换已启用,您需要使用swapoff -a
禁用它。在使用kubeadm安装kubernetes集群之前,您需要完成许多配置。
这是一个非常不错的博客,解释了lxc容器中的逐步配置:
https://medium.com/@kvapss/run-kubernetes-in-lxc-container-f04aa94b6c9c
答案 1 :(得分:0)
是的,正如@Prafull Ladha已经说过的那样,您必须使用一些配置来创建lxc容器:
您可以在创建容器时在lxc profile中看到所有这些东西。
lxc launch images:ubuntu/16.04 CONTAINER_NAME --profile PROFILE_NAME
但是您最大的大问题是将Kubelet运行到lxc容器中。 Kubelet日志将显示如下内容:
failed to start OOM watcher open /dev/kmsg: no such file or directory
如果收到此错误,则应该进行一些修改,因为默认情况下未创建/dev/kmsg
字符设备。您可以使用以下命令创建此设备:
mknod /dev/kmsg c 1 11
也许需要更新内核映像。您可以在这些scripts中完成ubuntu 16.04的整个过程