Kubernetes学习笔记:Ubuntu 16.04中conjure-up的安装配置
什么是conjure-up
conjure-up是一种以最小复杂度来部署复杂应用程序的工具。在LXD、juju和MAAS等技术的基础上工作,可以在几分钟内从零开始到完全正常工作的OpenStack,hadoop,Kubernetes等。
conjure-up的安装
硬件需求
对于公共云部署,硬件要求由魔法书(安装脚本)作者制定,并将在部署期间自动分配。
对于localhost部署,建议使用以下设置:
- 2 核心
- 16G 内存
- 32G 交换空间
- 250G SSD
更新系统
始终建议在运行之前安装最新的软件包conjure-up:
sudo apt update
sudo apt upgrade
安装conjure-up
conjure-up 可以在Ubuntu Xenial 16.04 LTS和macOS上使用。(macOS上目前没有测试,稍后补上。)
Ubuntu中安装conjure-up
sudo snap install conjure-up --classic
注意: 如果上面的命令失败,您将需要确保安装了snapd :
sudo apt install snapd
附注:snap是一种新的包管理器。
macOS中安装conjure-up
brew install conjure-up
开发中的conjure-up(不必要)
如果要预览下一个版本,可以使用以下命令安装最新的beta版本:
sudo snap install conjure-up --classic --beta
对于最新的更改,请安装该edge版本:
sudo snap install conjure-up --classic --edge
如果您已安装了snap,则可以使用以下命令更新到其他snap通道:
sudo snap install conjure-up --classic --edge
或者:
sudo snap refresh conjure-up --classic --beta
安装配置LXD
conjure-up要求LXD的最低版本为3.0.0。此外,应在运行之前配置LXD。
安装LXD
要安装LXD,请运行以下命令:
sudo snap install lxd
/snap/bin/lxd init #注意这里没有 sudo
Snaps是推荐的安装方法。在即将发布的Ubuntu版本中,LXD的snap版将是唯一推荐的安装和使用LXD的方法。为获得最佳体验,建议从deb LXD包装迁移:
/snap/bin/lxd.migrate
这样,就将所有容器相关数据移动到snap版本,并清理未使用的debian软件包。
Ubuntu for Desktops
为了访问LXD服务,您的$USER用户(当前用户)需要成为lxd组成员。要将$USER添加到lxd组,请执行以下操作:
sudo usermod -a -G lxd $USER
newgrp lxd
注意: 这只允许当前shell访问lxd组。建议的方法是完全注销系统,以便正确应用lxd组。
具体安装过程请看:
src="https://asciinema.org/a/226224/embed?autoplay=1&loop=1&preload=0" scrolling="no" allowfullscreen="true" width="100%" height="480">Ubuntu for Servers
默认情况下,Ubuntu Server具有与您的默认$USER关联的lxd组 。要验证,请运行以下命令:
id
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),27(sudo),129(lxd)
如果没有,只需重新运行usermod和newgrp命令:
sudo usermod -a -G lxd $USER
newgrp lxd
LXD存储
/snap/bin/lxc storage list
+---------+-------------+--------+------------------------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+------------------------------------------------+---------+
| default | | dir | /var/snap/lxd/common/lxd/storage-pools/default | 1 |
+---------+-------------+--------+------------------------------------------------+---------+
/snap/bin/lxc storage show default
config:
source: /var/snap/lxd/common/lxd/storage-pools/default
description: ""
name: default
driver: dir
used_by:
- /1.0/profiles/default
注: 如果您尝试使用ZFS或btrfs存储在本地主机LXD部署Kubernetes时,存在一些未知问题。最常见的错误是“Waiting for kube-system pods to start”。在找到解决方案之前,请在配置LXD时仅使用 dir 存储后端。
LXD网络
对于localhost部署,LXD必须定义网桥:
/snap/bin/lxc network create lxdbr0 ipv4.address=auto ipv4.nat=true ipv6.address=none ipv6.nat=false
注意:目前conjure-up不支持IPv6。
要验证是否正确配置了网桥,您需要检查配置:
/snap/bin/lxc network show lxdbr0
config:
ipv4.address: 10.101.64.1/24
ipv4.nat: "true"
ipv6.address: none
ipv6.nat: "false"
description: ""
name: lxdbr0
type: bridge
used_by: []
managed: true
您还需要确保将LXD默认配置文件设置为使用lxdbr0作为其桥接:
/snap/bin/lxc profile show default
config: {}
description: Default LXD profile
devices:
eth0:
nictype: bridged
parent: lxdbr0
type: nic
root:
path: /
pool: default
type: disk
name: default
used_by: []
如果这是全新的LXD安装且您的配置文件与上面的配置文件不同,请运行
/snap/bin/lxc profile edit default
并进行必要的调整。
验证容器的创建和网络的可访问性
lxc launch ubuntu:16.04 u1
lxc exec u1 ping ubuntu.com
一旦满意您的容器可以联系到互联网,您可以停止并删除该容器:
lxc stop u1
lxc delete u1
conjure-up的使用
要部署Kubernetes等解决方案,只需运行脚本:
conjure-up kubernetes
要查看所有可用脚本,请运行:
conjure-up
conjure-up的卸载
要删除部署:
conjure-down
要卸载 conjure-up 本身:
sudo snap remove conjure-up