无法引导(云类型:localhost) - 使用LXD/Conjure-up在本地安装Kuberneters群集时出错

u12*_*123 5 kubernetes lxd

使用Ubuntu 18.04.

我正在尝试使用本指南(LXD + conjure-up kubernetes)在我的本地计算机(localhost)上安装kubernetes集群:

https://kubernetes.io/docs/getting-started-guides/ubuntu/local/#before-you-begin

当我跑:

conjure-up kubernetes
Run Code Online (Sandbox Code Playgroud)

我选择以下安装:

在此输入图像描述

并选择localhost"选择云"并使用安装向导其余部分的默认值.然后它开始安装,30-40分钟后它就完成了这个错误:

在此输入图像描述

这是日志:https: //pastebin.com/raw/re1UvrUU

哪一个错误说:

2018-07-25 20:09:38,125 [ERROR] conjure-up/canonical-kubernetes - events.py:161 - Unhandled exception in <Task finished coro=<BaseBootstrapController.run() done, defined at /snap/conjure-up/1015/lib/python3.6/site-packages/conjureup/controllers/juju/bootstrap/common.py:15> exception=BootstrapError('Unable to bootstrap (cloud type: localhost)',)>
Run Code Online (Sandbox Code Playgroud)

但这并没有多大帮助.

对安装向导/召唤失败原因的任何建议?

也基于这篇文章:

https://github.com/conjure-up/conjure-up/issues/1308

我试过先禁用防火墙:

sudo ufw disable
Run Code Online (Sandbox Code Playgroud)

然后重新运行安装/召唤安装向导.但我得到了同样的错误.

有关如何安装和配置LXD /召唤的更多详细信息如下:

$ snap install lxd
lxd 3.2 from 'canonical' installed
$ /snap/bin/lxd init
Would you like to use LXD clustering? (yes/no) [default=no]: 
Do you want to configure a new storage pool? (yes/no) [default=yes]: 
Name of the new storage pool [default=default]: 
Name of the storage backend to use (btrfs, ceph, dir, lvm) [default=btrfs]: 
Create a new BTRFS pool? (yes/no) [default=yes]: 
Would you like to use an existing block device? (yes/no) [default=no]: 
Size in GB of the new loop device (1GB minimum) [default=26GB]: 
Would you like to connect to a MAAS server? (yes/no) [default=no]: 
Would you like to create a new local network bridge? (yes/no) [default=yes]: 
What should the new bridge be called? [default=lxdbr0]: 
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 
Would you like LXD to be available over the network? (yes/no) [default=no]: 
Would you like stale cached images to be updated automatically? (yes/no) [default=yes] 
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: 
Run Code Online (Sandbox Code Playgroud)

配置的组成员资格:

sudo usermod -a -G lxd $USER
newgrp lxd
Run Code Online (Sandbox Code Playgroud)

下一步安装:

sudo snap install conjure-up --classic
Run Code Online (Sandbox Code Playgroud)

然后运行安装:

conjure-up kubernetes
Run Code Online (Sandbox Code Playgroud)

mik*_*joh 3

我无法重现您的具体问题,但我在新安装的 VirtualBox Ubuntu 18.04(桌面conjure-uplxdVM 上安装了 Kubernetes。希望这个答案能对您有所帮助!

我浏览了 kubernetes.io 文档页面,其中缺少一点点信息,它确实提到了但没有提到我假设您在conjure-up 用户手册中学到的lxd部分。lxd init

话虽如此,我按照conjure-up用户手册进行了一些细微的更改。我假设您可以使用边缘版本conjure-up,我一开始使用稳定版本,但在测试不同组合时更改为边缘版本。

另请确保您拥有用户手册中规定的推荐可用资源,conjure-up并且Kubernetes 的 Canoncial 发行版为您启动了许多容器。您可能不需要 3 x etcd、3 x工作节点和 2 x Master,并且如果您不只是在conjure-up向导中调低容器的数量。

这些是我执行的步骤(作为我的本地用户):

  1. 确保您的 Ubuntu 盒子已更新:sudo apt update && sudo apt upgrade
  2. conjure-up通过运行安装:sudo snap install conjure-up --classic --edge
  3. lxd通过运行安装:sudo snap install lxd
  4. 随之lxd而来的是客户端部分lxc,如果您运行eg,lxc list您应该得到一个空表(尚未启动容器)。我此时遇到权限错误,我运行了以下命令:sudo chown -R lxd:lxd /var/snap/lxd/更改lxd包含您将使用 进行通信的套接字的目录的所有者和组lxc
  5. 将您的用户添加到lxd组:sudo usermod -a -G lxd $USER && newgrp lxd,注销并重新登录,以使其永久化,而不仅仅是在当前 shell 中处于活动状态。
  6. lxd现在使用以下命令手动创建桥:lxc network create lxdbr1 ipv4.address=auto ipv4.nat=true ipv6.address=none ipv6.nat=false
  7. lxd现在让我们运行with的 init 部分lxd initno当被要求创建新的本地网桥时记得回答吗?,在下一个提示中提供您新创建的网桥 ( lxdbr1)。其余问题的答案可以保留默认。
  8. 现在继续跑步conjure-up kubernetes并选择localhost您的类型。对我来说,这个localhost选择从一开始就是灰色的,当我手动创建网桥而不是通过该lxd init步骤时,它就起作用了。
  9. 跳过您可以安装的其他组件,如 Rancher、Prometheus 等。
  10. 选择您的新网桥和默认存储池,继续下一步。
  11. 在下一步中,根据需要自定义 Kubernetes 集群,然后单击“部署”。现在你等着吧!

您始终可以排除故障并列出使用该lxc工具创建的所有容器。如果您曾经使用过 Docker,那么该lxc工具感觉很像docker客户端。

最后是一些想法和观察,正如您可能已经看到的那样,有很多变化的部分conjure-up。它实际上被描述为:conjure-up 是一个跨越几种不同底层技术的薄层 - Juju、MAAS 和 LXD。

作为参考,我最终安装了以下版本:

  • lxd3.3版本
  • conjure-up版本2.6.1