无法在Vagrant上安装Kubernetes

clo*_*oud 7 virtualbox vagrant docker kubernetes

使用本指南在Vagrant集群上安装Kubernetes:

https://kubernetes.io/docs/getting-started-guides/kubeadm/

(2/4) Initializing your master,出现了一些错误:

[root@localhost ~]# kubeadm init
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.6.4
[init] Using Authorization mode: RBAC
[preflight] Running pre-flight checks
[preflight] Some fatal errors occurred:
    /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1
[preflight] If you know what you are doing, you can skip pre-flight checks with `--skip-preflight-checks`
Run Code Online (Sandbox Code Playgroud)

我检查了/proc/sys/net/bridge/bridge-nf-call-iptables文件内容,里面只有一个0.

(3/4) Installing a pod network,我下载kube-flannel文件:

https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

运行kubectl apply -f kube-flannel.yml,得到错误:

[root@localhost ~]# kubectl apply -f kube-flannel.yml
The connection to the server localhost:8080 was refused - did you specify the right host or port?
Run Code Online (Sandbox Code Playgroud)

直到这里,我不知道怎么去.

我的Vagrantfile:

  # Master Server
  config.vm.define "master", primary: true do |master|
    master.vm.network :private_network, ip: "192.168.33.200"
    master.vm.network :forwarded_port, guest: 22, host: 1234, id: 'ssh'
  end
Run Code Online (Sandbox Code Playgroud)

Jav*_*ron 14

为了/proc/sys/net/bridge/bridge-nf-call-iptables通过编辑设置/etc/sysctl.conf.在那里你可以添加[1]

net.bridge.bridge-nf-call-iptables = 1
Run Code Online (Sandbox Code Playgroud)

然后执行

sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)

并将应用更改.有了这个,飞行前检查应该通过.


[1] http://wiki.libvirt.org/page/Net.bridge.bridge-nf-call_and_sysctl.conf


NOZ*_*IGH 10

是的,上面的答案是正确的,但我面对的是

不能stat/proc/sys/net/bridge/bridge-nf-call-ip6tables:没有这样的文件或目录

所以我做了

echo br_netfilter > /etc/modules-load.d/br_netfilter.conf
systemctl restart systemd-modules-load.service
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
Run Code Online (Sandbox Code Playgroud)

然后解决了.


Bor*_*isS 5

在 Ubuntu 16.04 上我只需要:

modprobe br_netfilter
Run Code Online (Sandbox Code Playgroud)

默认值/proc/sys/net/bridge/bridge-nf-call-iptables已经是1

然后我添加了br_netfilter/etc/modules下次启动时自动加载模块。