OpenStack环境物理主机网络

备注

建议关闭物理主机自动网络管理工具并手工编辑发行版的相应配置文件。

所有OpenStack物理节点需要管理员权限的Internet访问,以完成:软件包安装,安全升级,DNS和NTP。大多数情况下,主机及诶单通过专用管理的网络接口获得Internet访问。对于安全要求高的网络系统,需要在管理专用网络中使用私有网络地址,并通过NAT方式访问Internet。

在provider网络架构(即直连经典网络)所有虚拟机实例直接连接provider网络。在self-service(私有网络,即VXLAN)网络架构,虚拟机实例是连接到self-service或provider网络。self-service网络可以整个部署在OpenStack之内或者使用NAT通过provider网络访问外部网络。

备注

安全隔离网络:生产专用网络和管理专用网络应该隔离,并且物理主机的BMC网络也需要专用物理隔离网络。管理专用网络不能直接连接Internet,应该通过NAT方式只允许单向(从内向外)网络访问。如果有更高网络安全要求,可以隔离管理专用网络不连接Internet,而采用在内部局域网部署软件仓库,将Internet上软件仓库镜像到内部管理服务器上,并通过扫描和验证,才提供内部管理网络使用。

案例网络

../../../_images/networklayout.png

案例网络解析:

  • 管理专用网络使用 10.0.0.0/24 网段,网关 10.0.0.1

在管理专用网络中设置网关提供了访问Internet能力,可以进行管理相关任务,如软件包安装,安全更新,DNS和NTP部署

  • provider网络采用 203.0.113.0/24 网段,网关 203.0.113.1

provider网络需要Internet访问以便提供OpenStack环境的虚拟机实例访问Internet

备注

在 “案例网络” 中,OpenStack官方文档采用了 1 controller, 1 compute, 1 block, 2 object 的配置方案:

# controller
10.0.0.11       controller

# compute1
10.0.0.31       compute1

# block1
10.0.0.41       block1

# object1
10.0.0.51       object1

# object2
10.0.0.52       object2

OpenStack官方文档的”案例网络”,请参考 OpenStack官方安装指南 - Host networking

我的实践网络

我的实践采用的是 3台物理主机 ,我计划先部署1个controller,然后再扩展成高可用HA模式管控服务器。计算节点将分布在3个物理主机上,存储采用Ceph来实现,所以存储是独立部署的3节点分布式存储。

物理服务器IP分配见 真实云计算的构建准备 :

  1# Host启动时启动:
  2# ceph-1 / ceph-2 / ceph-3 / ceph-4 / ceph -5 - 提供分布式存储
  3# machine-1 / machine-2 / machine-3 - 提供物理主机模拟
  4# 嵌套虚拟化 =>  
  5# devstack - 开发虚拟机
  6# minikube- ubernetes开发虚拟机
  7
  8127.0.0.1 localhost localhost.localdomain
  9
 10# KVM libvirt virbr0: 192.168.122.0/24
 11192.168.122.1   myadmin myadmin.dev.huatai.me  #物理主机
 12
 13192.168.122.2  win10 win10.dev.huatai.me
 14# 开发测试OpenStack/Kernel/Kata/Docker (单机运行多种功能节约虚拟化资源)
 15192.168.122.3  devstack devstack.dev.huatai.me
 16
 17# Kubernetes开发环境
 18192.168.122.4   minikube minikube.dev.huatai.me
 19
 20# KVM NAT内部 开发专用Kuberneetes集群
 21192.168.122.5   etcd-1 etcd-1.dev.huatai.me
 22192.168.122.6   etcd-2 etcd-2.dev.huatai.me
 23192.168.122.7   etcd-3 etcd-3.dev.huatai.me
 24192.168.122.8   haproxy-1 haproxy-1.dev.huatai.me
 25192.168.122.9   haproxy-2 haproxy-2.dev.huatai.me
 26192.168.122.10  kubeapi kubeapi.dev.huatai.me            #在HAProxy上构建apiserver的VIP
 27192.168.122.11  kubemaster-1 kubemaster-1.dev.huatai.me
 28192.168.122.12  kubemaster-2 kubemaster-2.dev.huatai.me
 29192.168.122.13  kubemaster-3 kubemaster-3.dev.huatai.me
 30192.168.122.14  kubemaster-4 kubemaster-4.dev.huatai.me  #测试替换轮转
 31192.168.122.15  kubenode-1 kubenode-1.dev.huatai.me
 32192.168.122.16  kubenode-2 kubenode-2.dev.huatai.me
 33192.168.122.17  kubenode-3 kubenode-3.dev.huatai.me
 34192.168.122.18  kubenode-4 kubenode-4.dev.huatai.me
 35192.168.122.19  kubenode-5 kubenode-5.dev.huatai.me
 36
 37# 模拟物理主机
 38# 在物理主机上运行L-1的Kubernetes集群和L-2层KVM虚拟机(OpenStack)
 39192.168.122.21  machine-1 machine-1.test.huatai.me
 40192.168.122.22  machine-2 machine-2.test.huatai.me
 41192.168.122.23  machine-3 machine-3.test.huatai.me
 42
 43# 持续集成环境
 44192.168.122.200  jenkins jenkins.test.huatai.me
 45
 46# 模版操作系统
 47192.168.122.252  centos8 centos8.test.huatai.me
 48192.168.122.253  ubuntu18-04 ubuntu18-04.test.huatai.me
 49192.168.122.254  centos7 centos7.test.huatai.me
 50
 51# KVM nested virbr0:
 52
 53# Docker docker0: 172.17.0.0/16
 54
 55# Docker ceph-net: 172.18.0.0/16
 56172.18.0.11 ceph-1 ceph-1.test.huatai.me
 57172.18.0.12 ceph-2 ceph-2.test.huatai.me
 58172.18.0.13 ceph-3 ceph-3.test.huatai.me
 59172.18.0.14 ceph-4 ceph-4.test.huatai.me
 60172.18.0.15 ceph-5 ceph-5.test.huatai.me
 61
 62# 模版操作系统
 63172.17.0.253  centos6-c centos6-c.test.huatai.me
 64172.17.0.252  centos7-c centos7-c.test.huatai.me
 65172.17.0.251  centos8-c centos8-c.test.huatai.me
 66172.17.0.239  ubunut18-c ubunut18-c.test.huatai.me
 67172.17.0.238  ubunut20-c ubunut20-c.test.huatai.me
 68
 69# VMware虚拟化
 70172.16.16.253  centos6
 71172.16.16.252  centos7
 72172.16.16.251  centos8
 73172.16.16.239  ubunut18
 74172.16.16.238  ubunut20
 75
 76
 77# Jetson Nano + Raspberry Pi
 78# 构建ARM Kubernetes
 79192.168.6.1  mbp13
 80192.168.6.2  mbp15
 81192.168.6.7  kali
 82192.168.6.8  pi4
 83192.168.6.9  pi400
 84192.168.6.10 jetson
 85192.168.6.11 pi-master1
 86192.168.6.12 pi-master2
 87192.168.6.13 pi-master3
 88192.168.6.15 pi-worker1
 89192.168.6.16 pi-worker2
 90192.168.6.17 pi-worker3
 91192.168.6.110 raspberrypi
 92192.168.6.111 alpine
 93192.168.6.199 acloud
 94
 95# Kuberntes CIDR 10.244.0.0/16
 96
 97# libvirt bridge网络
 98# zcloud上KVM虚拟机直连网络,采用squid代理访问外网
 99192.168.6.200 zcloud
100192.168.6.201 z-gluster-1
101192.168.6.202 z-gluster-2
102192.168.6.203 z-ceph-1
103192.168.6.204 z-ceph-2
104192.168.6.205 z-ceph-2
105
106192.168.6.241 z-numa #测试功能-numa
107192.168.6.242 z-iommu #测试功能-iommu
108192.168.6.243 z-vgpu #测试功能-vgpu
109
110192.168.6.253 z-dev #fedora 35 开发环境
111192.168.6.254 dl360-ilo
112
113# zcloud上KVM模版虚拟机,NAT网络IP最高 192.168.122.50
114192.168.122.41 z-centos6 #模版
115192.168.122.42 z-centos7 #模版
116192.168.122.43 z-centos8 #模版
117192.168.122.44 z-fedora35 #模版
118192.168.122.45 z-ubuntu18 #模版
119192.168.122.46 z-ubuntu20 #模版
120
121# 树莓派Zero
122192.168.7.10 kali
123
124#-------------------------------------------------------------
125
126# 模拟环境(staging)采用物理服务器集群部署Openstack+Kubernetes
127# 局域网内部部署,在推送到生产环境前的模拟环境
128# 域名 staging.huatai.me 
129# 物理主机共7台
130# 功能: ceph, etcd, glusterfs, database
131# # 功能: kubenode工作节点
132192.168.1.1 worker1
133192.168.1.2 worker2
134192.168.1.3 worker3
135192.168.1.4 worker4
136192.168.1.5 worker5
137192.168.1.6 worker6
138192.168.1.7 worker7 # 运行独立的kind模拟kubernetes集群
139
140# kubemaster(KVM虚拟机/Brigde网络)
141192.168.1.251 kubemaster-1 kubemaster-1.staging.huatai.me
142192.168.1.252 kubemaster-2 kubemaster-2.staging.huatai.me
143192.168.1.253 kubemaster-3 kubemaster-3.staging.huatai.me
144
145#-------------------------------------------------------------
146
147# 生产环境(production)采用云计算厂商提供的云服务器部署对外服务
148# 通过持续集成+持续部署自动推送
149# 域名 huatai.me