我们已经有了 Load Balance Pool “web servers”和 VIP,接下来需要往 Pool 里添加 member 并学习如何使用 cloud image。 先准备两个 instance: “Web1” 和 “Web2”。
使用 Ubuntu Cloud Image
由于 cirros 镜像不能运行 HTTP 服务,我们将使用 Ubuntu Cloud Image。
下载地址为 http://uec-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
与以前的 instance 不同,Web1 和 Web2 使用了命名为“cloud”的 Key Pair。
这是因为 Ubuntu Cloud Image 默认用户 “ubuntu” 的密码是随机生成的,通过 Key Pair 访问是一个比较方便的方法。
下面是 Key Pair 的配置方法:
-
通过 ssh-keygen 生成 Key Pair。
其中 cloud.key.pub 是公钥,需要添加到 instance 的 ~/.ssh/authorized_keys 文件中。 cloud.key 是私钥,用于访问 instance。 -
将 Pair Key 导入 OpenStack 进入 Project -> Compute -> Access & Security 菜单,点击 Key Pairs 标签页的 “Import Key Pair” 按钮。
复制 cloud.key.pub 的内容。
粘贴到 Public Key 输入框中,给 Key Pair 命名为 “cloud”,并点击 “Import Key Pair”。
Key Pair “cloud” 成功导入。 -
使用 Key Pair “cloud”。 launch instance 的时候,在 Access & Security 标签页中选择 Key Pair “cloud”。 OpenStack 会自动将公钥添加进 instance 的 ~/.ssh/authorized_keys 文件。
-
ssh instance。 用 -i cloud.key 指定私钥,并以 ubuntu 用户 ssh “Web1” 和 “Web2”。
无需密码直接登录 instance。
注:为了便于演示,这里我们是在 router 的 namespace 中执行 ssh,主要目的是网络可达。
“Web1” 和 “Web2” 准备就绪了,可以添加到 Pool 中了。 在 Project -> Network -> Load Balancers 的 Members 标签页中 点击 “Add Member” 按钮。
Pool 选择 “web servers”。 Member(s) 中多选 “Web1” 和 “Web2”。 Protocol Port 设置为 “80”。
点击 “Add”,member 添加成功。
Pool Member 有了,下一节我们将为 Pool 创建 Monitor,用于 Member 健康检查。