1、云平台中的几个概念
在云平台注册了一个账号,这个账号对于云平台来说,就是一个租户或者一个项目。
租户/项目(tenant/project),租户就是项目的意思。主机聚合就是主机组的意思。
region(区域),就是数据中心的地理位置,比如北京数据中心和武汉数据中心,用户就近选择区域可降低业务网络延迟,不同region之间内网默认不互通(可用VPN或云专线互通)。
az(availability zone)可用区,可理解为一个数据中心里面不同的机房,一个region有多个az用于实现容灾,在同一个region下的多个az之间内网互通(前提是同一个VPC网络),每个az有独立供电系统和网络系统。如果两个主机访问特别频繁,比如 web和database,建议放在同一个AZ中。如果对高可用有要求的(业务连续性),建议放在不同AZ中。
vpc:virtual private cloud 虚拟私有云,VPC理解为局域网或一个vlan。同一个VPC不同子网(跨网段)互通。
同一个region不同VPC默认不互通,通过对等连接来互通,但不同VPC之间不能存在相同子网(存在相同子网,不能创建对等连接,会ip地址冲突,可通过内大网解决有点复杂不推荐),在创建不同vpc时,注意各个vpc之间不存在相同子网。
对等连接是指两个VPC之间的网络连接。可以使用私有IP地址在两个VPC之间进行通信,就像两个VPC在同一个网络中一样。创建对等连接后,需要在两端VPC内添加对等连接路由信息,才能使两个VPC互通。
跨region不同VPC通过专线或VNP来互通,一般通过VNP来互通、云专线太贵了。
OpenStack排错思路:
OpenStack查询日志,所有日志都在/var/log/模块名称下面。
OpenStack修改配置,所有配置文件都在/etc/模块名称下面。
2、OpenStack图形化发放一台云主机
https://blog.51cto.com/cloudcs/6273673
1、创建项目(租户)和用户,使用 admin 管理员登录进行操作。
2、创建实例规格,使用 admin 管理员登录进行操作
3、创建镜像,使用 admin 管理员登录进行操作
发放云主机所使用的cirros精简版linux镜像获取,http://download.cirros-cloud.net/
admin管理员上传镜像,镜像共享可见性 设置公有 所有项目都可以使用(共享的指同一个项目内可用),受保护的选择否,要是受保护的选择是 就算管理员也不能删除该镜像,如果非要删除就编辑镜像将受保护的选择改为否,才能删除,受保护的选项为了防止误删除操作。普通用户上传的镜像不能共享,仅自己可用,是私有的。
4、创建私有网络VPC,使用普通用户登录进行操作
创建子网的网段不能和控制节点计算节点一样
5、配置安全组,使用普通用户登录进行操作
安全组要和虚拟机绑定,默认出口方向全部放行,添加入口规则。
选择规则就行,下面信息不用输入不用输入端口。
5、创建密钥对,使用普通用户登录进行操作
6、发放云主机,使用普通用户登录进行操作
现在ping不通外网
查看发放的云主机在哪个主机,先把主机聚合的计算组和控制组删了,可用域用默认的nova
在控制节点和计算节点virsh list,查看所发放的云主机在控制节点还是计算节点
7、创建公网,使用admin管理员登录进行操作
公网ip,在openstack环境里面,它不是一个真正的公网,公网是需要花钱从运营商购买的。这里说的公网ip指的是我们自己的实验环境模拟出来的一个公网ip,因为当前控制节点和计算节点它们使用的是100子网,又可以通过NAT和外部网络互通,因此可以将100这个子网定义为虚拟的一个公网ip。
创建的云主机默认连不上外网的,想连上外网要创建路由添加接口,分配一个出口公网ip地址
8、创建路由,使用普通用户登录进行操作
现在能ping通外网,里面访问外面百度,是通过路由接口分配了一个出口公网ip地址
9、外面访问里面,通过弹性公网ip,普通用户登入创建浮动公网ip,把浮动公网ip绑定到实例虚拟机上。
弹性IP可解绑给另外主机的,不像网卡的固定ip只能给固定主机,弹性IP在私有云里面不是公网ip,弹性IP配置在主机所在VPC的路由器上。
10、通过密钥文件(私钥)SSH远程登入
11、增加磁盘,普通用户登入创建卷,再将创建的卷挂载到实例,虚拟机就多了一块硬盘。
在开源openstack创建的ecs默认系统盘使用的空间是lvm创建出来的卷组空间,这个卷组空间是在应答文件中提前定义的,包括卷组名,卷组大小等。
解挂
实验测试环境创建的卷占用的是控制节点的本地磁盘,支持lvm扩容,扩vg卷组
12、删除刚发放的云主机
开源openstack,如果要实现内部虚拟机可以连通外网,不能外网连进虚拟机,直接做路由。
开源openstack把路由网关设置到公网上,路由接口接到私网上(虚拟机在这个私网上),要想外网连进虚拟机要捆绑弹性IP。
3、OpenStack命令行发放一台云主机
https://blog.51cto.com/cloudcs/6273775
加载 admin 管理员环境变量进行操作。通过 packstack 工具搭建好的环境,默认会在应答文件所在目录生成 admin 用户的环境变量文件 keystonerc_admin ,直接通过 source 加载即可。
用source加载用户环境,source keystonerc_admin 进入管理员环境,exit退出环境变量。
生成普通用户的环境变量文件,复制admin环境变量文件来修改(改用户名、项目名等内容)
命令行发放云主机流程(命令行删除云主机流程倒着来)
1.管理员创建一个租户tenant/项目project
2.管理员创建一个用户关联租户关联角色 user/role
3.生成普通用户的环境变量文件,复制admin环境变量文件来修改
4.管理员创建实例规格 flavor
5.普通用户创建镜像 image
6.普通用户创建私网 network 再创建子网 subnet
7.普通用户创建安全组(设置规则) security group
8.普通用户创建密钥 keypair
9.普通用户发放云主机 server
10.管理员创建公网 network 再创建子网 subnet
11.普通用户创建路由(设置网关连接公网及创建接口连接私网)云主机可以ping外网 router
12.普通用户申请弹性公网IP,绑定给云主机,外面访问里面 floating ip
13.普通用户创建云硬盘(卷),绑定给云主机(挂载)volume
查看硬盘,openstack volume list
命令行发放的云主机,查不到硬盘记录,web界面查不到卷记录、实例显示未连接卷,但能正常使用,应该是个bug
图形化发放的云主机,有硬盘记录
具体步骤
1、管理员创建一个项目 project
求帮助,openstack --help |grep project
具体命令再求帮助,packstack help project create
创建项目,openstack project create hcie
查看项目,openstack project list
2、管理员创建一个用户关联项目关联角色 user role
求帮助,openstack --help |grep user
具体命令再求帮助,packstack help user create
openstack user create --project hcie --password redhat hcie
查看用户,openstack user list
给用户再关联角色,求帮助,openstack --help |grep role
查看当前已有角色,openstack role list
给用户绑定角色,具体命令再求帮助,packstack help role add
openstack role add --project hcie --user hcie member
开源openstack不支持自定义角色赋权限,只能二次开发自定义角色权限
3、生成普通用户的环境变量文件,复制admin环境变量文件来修改(改用户名、项目名等内容)
4、管理员创建实例规格 flavor
求帮助,openstack --help |grep flavor
具体命令再求帮助,packstack help flavor create
创建实例规格,packstack flavor create --ram 1024 --disk 3 --vcpus 1 m3.hehe
查看实例规格, openstack flavor list
5、普通用户创建镜像,先把镜像文件上传到/tmp目录 image
求帮助,openstack --help |grep image
具体命令再求帮助,packstack help image create
创建镜像,packstack image create --disk-format qcow2 --min-disk 3 --min-ram 1024 --file /tmp/cirros-0.6.2-x86_64-disk.img rhel
查看镜像,openstack image list
6、普通用户创建私网 network 再创建子网 subnet
命令行创建私网和子网分开创建了,图形化创建私网和子网是在一个页面创建的
求帮助,openstack --help |grep network
具体命令再求帮助,packstack help network create
创建私网,packstack network create private
查看私网,openstack network list
但目前私网下面没有子网,要进一步再创建子网 subnet
创建子网,求帮助,openstack --help |grep subnet
具体命令再求帮助,packstack help subnet create
创建子网,packstack subnet create --allocation-pool start=192.168.88.100,end=192.168.88.200 --gateway 192.168.88.254 --subnet-range 192.168.88.0/24 --network private pri_sub
查看子网,openstack subnet list
查看私网,openstack network list
7、普通用户创建安全组(设置规则)security group rule
求帮助,openstack --help |grep sec
具体命令再求帮助,packstack help security group create
packstack security group create sec110
查看安全组,openstack security group list
sec110还没设置入口规则,创建规则再求帮助,packstack help security group rule create
packstack security group rule create --protocol tcp --dst-port 22:22 --ingress sec110
packstack security group rule create --protocol tcp --dst-port 80:80 --ingress sec110
packstack security group rule create --protocol icmp --ingress sec110 icmp协议无端口号,icmp协议是ping命令的协议
查看规则,packstack security group rule list
8、普通用户创建密钥 keypair
求帮助,openstack --help |grep key
具体命令再求帮助,packstack help keypair create
packstack keypair create key110 > key110.pem 生成密钥重定向到私钥文件保存
9、普通用户发放云主机 server
求帮助,openstack --help |grep server
具体命令再求帮助,packstack help server create
packstack server create --image rhel --flavor m3.hehe --security-group sec110 --key-name key110 --network private linux01
查看发放的云主机,packstack server list
现在实例是ping不通外网的,要让实例通外网
10、管理员创建公网 network 再创建子网 subnet
求帮助,openstack --help |grep network
查看,packstack network list
创建公网,packstack network create --share --external --project hcie --provider-network-type flat --provider-physical-network extnet public
再创建子网,求帮助,openstack --help |grep subnet
packstack subnet create --dhcp --allocation-pool start=192.168.100.220,end=192.168.100.230 --gateway 192.168.100.2 --subnet-range 192.168.100.0/24 --network public public_sub
查看子网,openstack subnet list
11、普通用户创建路由(设置网关连接公网及创建接口连接私网)云主机可以ping外网 router
求帮助,openstack --help |grep router
具体命令再求帮助,packstack help router create
创建路由,packstack router create r1
设置网关连接公网及创建接口连接私网
求帮助,openstack --help |grep router
具体命令再求帮助,packstack help router set
创建路由网关,packstack router set --external-gateway public r1
具体命令再求帮助,packstack help router add
创建路由子接口,packstack router add subnet r1 pri_sub
12、普通用户申请弹性公网IP,绑定给云主机,外面访问里面 floating ip server
求帮助,openstack --help |grep floating ip
具体命令再求帮助,packstack help floating ip create
packstack floating ip create public 从public公网分配浮动IP
查看浮动IP,packstack floating ip list
求帮助,openstack --help |grep server
具体命令再求帮助,packstack help server add floating ip
查看给哪个实例分配浮动IP,packstack server lsit
packstack server add floating ip linux01 192.168.100.223 给哪个实例加哪个浮动IP
13、普通用户创建云硬盘(卷),绑定给云主机(挂载)volume
求帮助,openstack --help |grep volume
查看硬盘,openstack volume list
命令行发放的云主机,查不到硬盘记录,web界面查不到卷记录、实例显示未连接卷,但能正常使用,应该是个bug
图形化发放的云主机,有硬盘记录文章来源:https://www.toymoban.com/news/detail-651084.html
[root@controller ~]# openstack volume create --size 2 --type iscsi evs001
[root@controller ~]# openstack server add volume ecs666 evs001
查看云主机占用的到底是哪里的空间
[root@controller ~# cd /etc/libvirt/qemu/
[root@controller qemu# pwd
/etc/libvirt/qemu
[root@controller qemu]# ls
instance-00000004.xml networks
解决:命令行创建ecs的时候,如果没有添加参数–boot-from-volume,默认不会使用lvm来创建ecs的磁盘,会在对应的/var/lib/nova/instances/这个路径下面创建一个磁盘,界面上也无法到对应的卷信息。
建议创建ecs的时候带上 --boot-from-volume 这个参数,比如用下面的命令:
[root@controller ~]# openstack server create --flavor m3.tiantian --image rhel7 --security-group sec110 --key-name tiantiankey --nic net-id=3573eb64-512d-42d0-adae-96365818f0cc --min 1 --boot-from-volume 2 ecs999文章来源地址https://www.toymoban.com/news/detail-651084.html
到了这里,关于HCIP-OpenStack发放云主机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!