无法引导(云类型:本地主机)-使用LXD /配置本地安装Kuberneters群集时出错

时间:2018-07-25 18:37:30

标签: kubernetes lxd

使用Ubuntu 18.04。

我正在尝试使用本指南(LXD +构想的kubernetes)在本地计算机(本地主机)上安装kubernetes集群:

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

当我跑步时:

conjure-up kubernetes

我选择以下安装:

enter image description here

,然后为“选择云”选择localhost,并在其余的安装向导中使用默认设置。然后开始安装,并在30-40分钟后完成,并显示以下错误:

enter image description here

这是日志: 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)',)>

但这并没有太大帮助。

关于为什么安装向导/配置失败的任何建议?

也基于这篇文章:

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

我尝试先禁用防火墙:

sudo ufw disable

,然后重新运行安装/配置安装向导。但是我遇到了同样的错误。

以下有关我如何安装和配置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]: 

已配置的组成员身份:

sudo usermod -a -G lxd $USER
newgrp lxd

下一次安装:

sudo snap install conjure-up --classic

然后运行安装:

conjure-up kubernetes

1 个答案:

答案 0 :(得分:3)

我无法重现您的确切问题,但是我安装了conjure-up + lxd,最后在新安装的VirtualBox Ubuntu 18.04(台式机)VM上安装了Kubernetes。希望这个答案可以以某种方式对您有所帮助!

我浏览了kubernetes.io文档页面,发现其中缺少一点点信息,它确实提到了lxd,但没有提到lxd init的那部分,我认为您是在{{3 }}。

因此,我遵循conjure-up用户手册进行了一些小改动。我假设您可以使用conjure-up的边缘版本,我从稳定版本开始,但在测试不同组合时更改为边缘版本。

还请确保您拥有conjure-up user manualconjure-up所述的推荐资源,并且 Kubernetes的规范分发为您启动了许多容器。您可能不需要3个 etcd ,3个 worker 节点和2个 Master ,如果您不只是调整容器的数量在conjure-up向导中。

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

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

您始终可以进行故障排除并列出使用lxc工具创建的所有容器。如果您曾经使用过Docker,则docker工具会非常像conjure-up客户端。

最后还有一些想法和观察,您可能已经看到很多将零件移动到lxd。它实际上被描述为: conjure-up是跨越Juju,MAAS和LXD等几种基础技术的薄层。

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

  • conjure-up 3.3版
  • const params = { TableName, AttributeDefinitions: [{ AttributeName: 'post_id', AttributeType: 'S' }, { AttributeName: 'parent_post_id', AttributeType: 'S' }, { AttributeName: 'created_at', AttributeType: 'S' }, { AttributeName: 'average_rating', AttributeType: 'N' }], KeySchema: [{ AttributeName: 'post_id', KeyType: 'HASH' }, { AttributeName: 'created_at', KeyType: 'RANGE' }], GlobalSecondaryIndexes: [{ IndexName: 'parent_post_id-created_at-index', ProvisionedThroughput: { ReadCapacityUnits: 5, WriteCapacityUnits: 5 }, KeySchema: [{ AttributeName: 'parent_post_id', KeyType: 'HASH' }, { AttributeName: 'created_at', KeyType: 'SORT' }], Projection: { ProjectionType: 'ALL' } }, { IndexName: 'parent_post_id-averge_rating-index', ProvisionedThroughput: { ReadCapacityUnits: 5, WriteCapacityUnits: 5 }, KeySchema: [{ AttributeName: 'parent_post_id', KeyType: 'HASH' }, { AttributeName: 'average_rating', KeyType: 'SORT' }], Projection: { ProjectionType: 'ALL' } }], ProvisionedThroughput: { ReadCapacityUnits: 1, WriteCapacityUnits: 1 } }; 版本2.6.1