云计算|OpenStack|社区版OpenStack安装部署文档(十一--- 如何获取镜像---Rocky版)

news2024/11/29 1:49:09

前言:

前面我们使用虚拟机搭建了一个openstack集群,也就是在VM虚拟机的基础上模拟了一个简单的基于openstack社区版Rocky的私有云,但,不管任何部署安装工作,最后其实都是需要有实际的应用的,也就是常说的实务(实际业务)

那么,在前面搭建的这个私有云里,我们能做些什么?如何做?

OK,以上问题解答之前,需要先明确私有云是一个基础设施平台,通过我们安装的keystone,nova,glacier,cinder,neutron,这些关键组件虚拟化计算节点的资源(资源指的是内存,CPU这些关键资源),基于kvm等虚拟技术,按照flavor(虚拟机模板)生产虚拟机,并管理这些虚拟机,以提供给私有云内的用户各种各样的操作系统(例如,生产Windows类型的虚拟机,Debian类型的虚拟机),以及云盘(cinder这个组件生产的卷)动态的扩展虚拟机,

简单来说,计算节点的资源我们可以看做是一个资源池,然后从这个资源池内生产符合我们期望的云主机(ECS)并有云盘的挂载这些动态扩展。

这里有两个概念,第一个是镜像,第二个是实例。

一,

镜像

也就是image,这里和docker里是非常类似的,但,该镜像是具有特定的虚拟机格式的,例如,qcow2类型镜像,raw类型镜像,qcow类型镜像,vmdk类型镜像等等很多类型,而docker内的镜像体现在文件上,只是一个压缩包而已,这个压缩包内是有许多layer(层)这样的概念而已,是没有格式的说法的。

云计算的镜像是有格式的概念的,例如,我们现在查看一个可以在openstack平台内使用的虚拟机镜像(简单理解,也就是一个虚拟化的硬盘,此硬盘有很多类型,但,这个硬盘内我们安装了可引导的操作系统):

这个newwin7.img 格式是qcow2,压缩比例是1.1,实际大小是3.4G,总大小是15G

[root@k8s-node2 opt]# qemu-img info newwin7.img 
image: newwin7.img
file format: qcow2
virtual size: 15G (16106127360 bytes)
disk size: 3.4G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

而docker的镜像是虚拟化的,当然,我们可以通过docker save 命令将镜像实体化:

[root@k8s-node2 opt]# docker images
REPOSITORY                                           TAG        IMAGE ID       CREATED         SIZE
registry.aliyuncs.com/google_containers/kube-proxy   v1.23.15   9dbdbaf158f6   2 months ago    112MB
registry.aliyuncs.com/google_containers/pause        3.6        6270bb605e12   17 months ago   683kB
quay.io/coreos/flannel                               v0.13.0    e708f4bb69e3   2 years ago     57.2MB

二,

实例

镜像启动后,在openstack中,我们就叫实例,也就是server,在docker中,我们叫容器,不过通常这个是省略的叫法,其实全称是实例化容器也就是container(注意,不是containerd,containerd是容器服务,docker也是容器服务,这里不要搞混了)

例如,在docker中:

k8s_POD_kube-proxy-z4zdp_kube-system_9e12a38d-2a49-4dd7-9897-478d89ab943c_3这个就是一个容器,虽然此容器是退出状态。

[root@k8s-node2 opt]# docker ps  -a
CONTAINER ID   IMAGE                                               COMMAND                  CREATED       STATUS                     PORTS     NAMES
8caa6c8e1ad3   e708f4bb69e3                                        "/opt/bin/flanneld -…"   5 weeks ago   Exited (255) 4 weeks ago             k8s_kube-flannel_kube-flannel-ds-vlrtj_kube-system_46590cd0-ae59-414c-8b34-fa7caf727fce_2
c1d0d5d5c773   e708f4bb69e3                                        "cp -f /etc/kube-fla…"   5 weeks ago   Exited (0) 5 weeks ago               k8s_install-cni_kube-flannel-ds-vlrtj_kube-system_46590cd0-ae59-414c-8b34-fa7caf727fce_2
ce07c5e4a552   9dbdbaf158f6                                        "/usr/local/bin/kube…"   5 weeks ago   Exited (255) 4 weeks ago             k8s_kube-proxy_kube-proxy-z4zdp_kube-system_9e12a38d-2a49-4dd7-9897-478d89ab943c_3
046f138b0761   registry.aliyuncs.com/google_containers/pause:3.6   "/pause"                 5 weeks ago   Exited (255) 4 weeks ago             k8s_POD_kube-flannel-ds-vlrtj_kube-system_46590cd0-ae59-414c-8b34-fa7caf727fce_2
e8be7c942476   registry.aliyuncs.com/google_containers/pause:3.6   "/pause"                 5 weeks ago   Exited (255) 4 weeks ago             k8s_POD_kube-proxy-z4zdp_kube-system_9e12a38d-2a49-4dd7-9897-478d89ab943c_3

在openstack中的实例:

[root@openstack1 ~]# openstack server list
+--------------------------------------+------+---------+------------------------+-------+---------+
| ID                                   | Name | Status  | Networks               | Image | Flavor  |
+--------------------------------------+------+---------+------------------------+-------+---------+
| 315108a3-a375-4615-bbdd-7745d530886e | new1 | SHUTOFF | provider=192.168.123.4 | new1  | m1.tiny |
+--------------------------------------+------+---------+------------------------+-------+---------+

而这个实例,我们观察它的三维,发现有一个flavor是比较陌生的,这个是实例的规格,也就是实例的模板,可以通过一下命令查询到:

经对比可知,上面的实例new1使用的是new1这个镜像,使用的规格是第二个规格

[root@openstack1 ~]# openstack flavor list
+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name      |   RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 0  | m1.nano   |    64 |    1 |         0 |     1 | True      |
| 1  | m1.tiny   |  1024 |   50 |         0 |     1 | True      |
| 2  | m1.small  |  2048 |  500 |         0 |     1 | True      |
| 3  | m1.medium |  4096 |  500 |         0 |     2 | True      |
| 4  | m1.large  |  8192 |  500 |         0 |     4 | True      |
| 5  | m1.xlarge | 16384 |  500 |         0 |     8 | True      |
+----+-----------+-------+------+-----------+-------+-----------+

OK,以上是一些基础性的知识科普,下面,将回答文章开始的问题,如何获取openstack可以使用的镜像

正文:

一,

镜像的来源问题

和docker,containerd这些虚拟技术类似,openstack的官方也会提供各种各样的镜像,这些镜像通常都是标准的镜像,通常,这些镜像已经安装好了操作系统,可以直接上传到glance服务内,然后交由openstack调度生成实例,也就是开箱即用,但由于基于标准化的生产,可能很多地方是我们不可接受的,例如,root密码没有,可能需要一些加工定制,在上传到glance服务内。

官方文档内的镜像下载地址:Get images — Virtual Machine Image Guide documentation

还有一种方式,那就是自制镜像,自己创建镜像文件并把操作系统安装到镜像文件内,然后上传到glance服务内,以供openstack使用

由于镜像的内容比较多,因此,本文将官方镜像和自制镜像分开来写,这篇文章将主要就官方镜像的获取以及如何定制化来做一个简单的描述。

下一篇文章在讲述如何自制镜像并上传到openstack实例化的整个流程。

二,

官方云镜像的定制化

从官方下载下来的官方镜像需要一些定制,以centos7为例,该官方镜像并没有root密码(没有任何人告诉你密码是多少,包括普通用户),并且由于是国外制作的镜像,时区一般也不是国内时区,这些我们都需要调整,还有我们可能希望这个镜像有安装一些软件,比如wget或者开发环境,这样镜像启动为实例的时候可以做到开箱即用,以及一些自己写的脚本,能实例化的时候就直接使用,这些都是我们的定制方向。

OK,本例下载的镜像为:CentOS-7-x86_64-GenericCloud-1508.qcow2.xz和debian-10-openstack-amd64.qcow2

上传到一个只安装有纯净的kvm环境的服务器上(kvm环境部署见我的文章:https://zskjohn.blog.csdn.net/article/details/124658437

#####镜像定制化工具一般为libguestfs-tools 套件内的virt-custome命令,以上镜像是上传到服务器的/opt路径下:

#####注:重设密码和时区,此时这个镜像不能启动,如果有错误,可在命令最后加-v 参数查看详细报错

[root@k8s-node2 opt]# export LIBGUESTFS_BACKEND=direct
[root@k8s-node2 opt]# virt-customize -a /opt/CentOS-7-x86_64-GenericCloud-1508.qcow2 --root-password password:123456
[   0.0] Examining the guest ...
[   6.7] Setting a random seed
[   6.7] Setting passwords
[   9.1] Finishing off
[root@k8s-node2 opt]# virt-customize -a /opt/CentOS-7-x86_64-GenericCloud-1508.qcow2 --timezone "Asia/Shanghai" 
[   0.0] Examining the guest ...
[   6.0] Setting a random seed
[   6.0] Setting the timezone: Asia/Shanghai
[   6.1] Finishing off

假设是一个RDS类型的数据库服务器,数据库安装脚本为a.sh:

[root@k8s-node2 opt]# virt-customize -a /opt/CentOS-7-x86_64-GenericCloud-1508.qcow2 --upload ./a.sh:/opt/a.sh
[   0.0] Examining the guest ...
[   4.9] Setting a random seed
[   4.9] Uploading: ./a.sh to /opt/a.sh
[   4.9] Finishing off
[root@k8s-node2 opt]# virt-customize -a /opt/CentOS-7-x86_64-GenericCloud-1508.qcow2 --chmod 755:/opt/a.sh
[   0.0] Examining the guest ...
[   4.8] Setting a random seed
[   4.8] Changing permissions of /opt/a.sh to 755
[   4.9] Finishing off
[root@k8s-node2 opt]# virt-customize -a /opt/CentOS-7-x86_64-GenericCloud-1508.qcow2 --run '/opt/a.sh'
[   0.0] Examining the guest ...
[   5.0] Setting a random seed
[   5.0] Running: /opt/a.sh
。。。。。。。。后面的略略略

当然,像Debian的镜像以及centos8的镜像都可以这样处理,以此类推,处理完毕后,上传到openstack的服务器后,再上传到glance服务:

[root@openstack1 opt]# openstack image create "debian" --file debian-10-openstack-amd64.qcow2   --disk-format qcow2 --container-format bare --public
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                      |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | 15e64bfabf21c8bffafcc57d1c294c32                                                                                                                                                           |
| container_format | bare                                                                                                                                                                                       |
| created_at       | 2023-02-08T08:32:46Z                                                                                                                                                                       |
| disk_format      | qcow2                                                                                                                                                                                      |
| file             | /v2/images/85029b50-225b-4fd4-a5a2-70c8cdc293f2/file                                                                                                                                       |
| id               | 85029b50-225b-4fd4-a5a2-70c8cdc293f2                                                                                                                                                       |
| min_disk         | 0                                                                                                                                                                                          |
| min_ram          | 0                                                                                                                                                                                          |
| name             | debian                                                                                                                                                                                     |
| owner            | 205ce8addd9444c893bd62244bcdae78                                                                                                                                                           |
| properties       | os_hash_algo='sha512', os_hash_value='1a5ecf75d2d0ecc77708d18001378ebd81d61775eff22431aec13776e813a931012777059ac23ade34c89bd96e5be2ba5024d11a8b8b44ca86f23b28b2ed30a8', os_hidden='False' |
| protected        | False                                                                                                                                                                                      |
| schema           | /v2/schemas/image                                                                                                                                                                          |
| size             | 690814976                                                                                                                                                                                  |
| status           | active                                                                                                                                                                                     |
| tags             |                                                                                                                                                                                            |
| updated_at       | 2023-02-08T08:33:08Z                                                                                                                                                                       |
| virtual_size     | None                                                                                                                                                                                       |
| visibility       | public                                                                                                                                                                                     |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

由于openstack是搭建在虚拟机之上的,有bug问题,因此,修改镜像的属性后,在启动镜像为实例:

openstack image set  --property hw_disk_bus=ide  --property hw_vif_model=e1000 centos7
openstack server create --flavor m1.tiny --image centos7 --security-group default --key-name mykey centos7

启动完毕后,登陆控制台,可以看到root密码已经设置了:

同样的,Debian的镜像也可以使用设置的密码登陆了:

但此时的实例只可以通过控制台登陆, 

 以上是Linux的镜像问题,但Windows比较复杂,需要利用cloudinit工具自制镜像(估计是版权问题,毕竟Windows不是开源的操作系统)

三,

虚拟机的网络问题

云计算的网络是非常复杂的,主要是涉及到的地方非常多,那么,一个虚拟机能够连接互联网,至少需要明确网关和DNS(分配IP地址是肯定要分配的),如果需要网络的拓展,那么,还需要路由,这些就涉及到了ARP静态表等等知识。

OK。cirros这种袖珍镜像是专门用来在openstack这样的云计算环境做测试用的镜像,下面以在selfservice网络模型下,运行一个cirros镜像为实例:

控制节点的ip(192.168.123.130,网关是192.168.123.2):

[root@openstack1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master brq688a0356-4f state UNKNOWN qlen 1000
    link/ether 00:0c:29:de:be:e1 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::20c:29ff:fede:bee1/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:e8:93:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:e8:93:4e brd ff:ff:ff:ff:ff:ff
6: tap35bde514-d6@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master brq6ef09648-5c state UP qlen 1000
    link/ether 5e:80:7d:9f:6f:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0
7: vxlan-17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master brq6ef09648-5c state UNKNOWN qlen 1000
    link/ether 6e:6d:45:48:8e:cd brd ff:ff:ff:ff:ff:ff
8: brq6ef09648-5c: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP qlen 1000
    link/ether 5e:80:7d:9f:6f:04 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a800:beff:fe4e:74c5/64 scope link 
       valid_lft forever preferred_lft forever
11: brq688a0356-4f: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:0c:29:de:be:e1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.123.130/24 brd 192.168.123.255 scope global brq688a0356-4f
       valid_lft forever preferred_lft forever
    inet6 fe80::5869:75ff:fe71:baf2/64 scope link 
       valid_lft forever preferred_lft forever
14: tapdc2df59d-2b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brq688a0356-4f state UP qlen 1000
    link/ether 16:b4:10:95:8f:99 brd ff:ff:ff:ff:ff:ff link-netnsid 3
15: tap29f235e4-7b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master brq6ef09648-5c state UP qlen 1000
    link/ether e6:b6:45:46:1d:c4 brd ff:ff:ff:ff:ff:ff link-netnsid 1
16: tapf4264f35-18@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brq688a0356-4f state UP qlen 1000
    link/ether 76:a8:70:eb:83:8d brd ff:ff:ff:ff:ff:ff link-netnsid 1

网络概况,两张网,一个是provider,一个是selfservice,各有一个子网,分别是172.168.10/24和192.168.123.0/24 

[root@openstack1 ~]# openstack network list
+--------------------------------------+-------------+--------------------------------------+
| ID                                   | Name        | Subnets                              |
+--------------------------------------+-------------+--------------------------------------+
| 688a0356-4f2b-4029-b49e-a11bbdbedf0b | provider    | 687b56a4-0672-451e-810c-ea3b895e3030 |
| 6ef09648-5ce7-4eb6-9aa2-735cb81567d3 | selfservice | 1bdfae33-5bcb-47ff-b3f0-aee2fc5e7f68 |
+--------------------------------------+-------------+--------------------------------------+
[root@openstack1 ~]# openstack subnet list
+--------------------------------------+-------------+--------------------------------------+------------------+
| ID                                   | Name        | Network                              | Subnet           |
+--------------------------------------+-------------+--------------------------------------+------------------+
| 1bdfae33-5bcb-47ff-b3f0-aee2fc5e7f68 | selfservice | 6ef09648-5ce7-4eb6-9aa2-735cb81567d3 | 172.16.1.0/24    |
| 687b56a4-0672-451e-810c-ea3b895e3030 | provider1   | 688a0356-4f2b-4029-b49e-a11bbdbedf0b | 192.168.123.0/24 |
+--------------------------------------+-------------+--------------------------------------+------------------+
[root@openstack1 ~]# openstack keypair list
+-------+-------------------------------------------------+
| Name  | Fingerprint                                     |
+-------+-------------------------------------------------+
| mykey | 2c:54:76:72:6f:e3:84:b9:ab:c1:35:04:1e:e3:83:a4 |
+-------+-------------------------------------------------+
[root@openstack1 ~]# openstack security group  list
+--------------------------------------+---------+------------------------+----------------------------------+------+
| ID                                   | Name    | Description            | Project                          | Tags |
+--------------------------------------+---------+------------------------+----------------------------------+------+
| 2035d43a-0e81-4257-bd23-13af431b9f91 | default | Default security group | 205ce8addd9444c893bd62244bcdae78 | []   |
| 5b1b71d7-5e24-4011-82ca-0ddabfd32e8a | default | Default security group |                                  | []   |
| e5f115d2-3c65-4bc5-89db-b9f725ee81db | default | Default security group | ae2263d201c0437788c85f1178b91dbe | []   |
+--------------------------------------+---------+------------------------+----------------------------------+------+
[root@openstack1 ~]# openstack security group rule  list
+--------------------------------------+-------------+-----------+------------+--------------------------------------+--------------------------------------+
| ID                                   | IP Protocol | IP Range  | Port Range | Remote Security Group                | Security Group                       |
+--------------------------------------+-------------+-----------+------------+--------------------------------------+--------------------------------------+
| 05d39ab4-839f-48f1-909f-61e8cddb4058 | None        | None      |            | None                                 | 2035d43a-0e81-4257-bd23-13af431b9f91 |
| 0efb90a0-7593-409a-896d-ce61132be4f6 | icmp        | 0.0.0.0/0 |            | None                                 | 2035d43a-0e81-4257-bd23-13af431b9f91 |
| 16d96ee8-5851-46c1-9a1d-c640d2a419bb | None        | None      |            | e5f115d2-3c65-4bc5-89db-b9f725ee81db | e5f115d2-3c65-4bc5-89db-b9f725ee81db |
| 18abe149-6bbb-498f-beaf-5cf74699e285 | tcp         | 0.0.0.0/0 | 22:22      | None                                 | 2035d43a-0e81-4257-bd23-13af431b9f91 |
| 202c2e77-6bc7-45ce-bea4-a6598170946c | None        | None      |            | 2035d43a-0e81-4257-bd23-13af431b9f91 | 2035d43a-0e81-4257-bd23-13af431b9f91 |
| 32b61bcc-44e3-4f9e-83ef-42835e76d182 | None        | None      |            | None                                 | 2035d43a-0e81-4257-bd23-13af431b9f91 |
| 4222bf5d-c763-491c-bc0c-9ae477344d61 | None        | None      |            | None                                 | 5b1b71d7-5e24-4011-82ca-0ddabfd32e8a |
| 53639084-0628-46cb-a1db-585fc794fe26 | None        | None      |            | e5f115d2-3c65-4bc5-89db-b9f725ee81db | e5f115d2-3c65-4bc5-89db-b9f725ee81db |
| 6937aca3-96a9-4e42-b44e-cb791886c096 | None        | None      |            | 2035d43a-0e81-4257-bd23-13af431b9f91 | 2035d43a-0e81-4257-bd23-13af431b9f91 |
| 722a4bc9-d361-4879-bc6d-84ea7fb158c2 | None        | None      |            | None                                 | 5b1b71d7-5e24-4011-82ca-0ddabfd32e8a |
| a4fff3b1-3839-4998-9637-dc3bc76544e9 | None        | None      |            | None                                 | e5f115d2-3c65-4bc5-89db-b9f725ee81db |
| bbab3d30-e181-4897-9d00-0f9bf2a94eda | None        | None      |            | 5b1b71d7-5e24-4011-82ca-0ddabfd32e8a | 5b1b71d7-5e24-4011-82ca-0ddabfd32e8a |
| d54fab49-428f-4008-9d24-0fd27b77a6af | None        | None      |            | None                                 | e5f115d2-3c65-4bc5-89db-b9f725ee81db |
| ec14bdd5-93bd-42cf-a123-ac060e1144c1 | None        | None      |            | 5b1b71d7-5e24-4011-82ca-0ddabfd32e8a | 5b1b71d7-5e24-4011-82ca-0ddabfd32e8a |
+--------------------------------------+-------------+-----------+------------+--------------------------------------+--------------------------------------+

cirros镜像是这个:

[root@openstack1 ~]# openstack image list
+--------------------------------------+---------+--------+
| ID                                   | Name    | Status |
+--------------------------------------+---------+--------+
| 1452b721-66da-4780-8bc1-84a7077950f3 | Centos7 | active |
| 4737972b-31e8-4bef-9ad0-e542b271dbf7 | back    | active |
| 867784df-9090-4ae0-ad25-564b941cc350 | cirros  | active |
| 2b527304-8fe6-4582-8451-8feba9a86cfb | new1    | active |
+--------------------------------------+---------+--------+

根据以上信息,创建一个以cirros镜像为底层的实例:

openstack server create --flavor m1.nano --image cirros --nic net-id=6ef09648-5ce7-4eb6-9aa2-735cb81567d3 --security-group 2035d43a-0e81-4257-bd23-13af431b9f91  --key-name mykey cirros1

创建一个浮动IP:

openstack floating ip create provider
####输出如下:
[root@openstack1 ~]# openstack floating ip create provider
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| created_at          | 2023-02-10T05:57:56Z                 |
| description         |                                      |
| dns_domain          | None                                 |
| dns_name            | None                                 |
| fixed_ip_address    | None                                 |
| floating_ip_address | 192.168.123.179                      |
| floating_network_id | 688a0356-4f2b-4029-b49e-a11bbdbedf0b |
| id                  | b41dc5e5-991d-4458-8686-a2a2fbc55a71 |
| name                | 192.168.123.179                      |
| port_details        | None                                 |
| port_id             | None                                 |
| project_id          | 205ce8addd9444c893bd62244bcdae78     |
| qos_policy_id       | None                                 |
| revision_number     | 0                                    |
| router_id           | None                                 |
| status              | DOWN                                 |
| subnet_id           | None                                 |
| tags                | []                                   |
| updated_at          | 2023-02-10T05:57:56Z                 |
+---------------------+--------------------------------------+

绑定浮动IP到实例:

openstack server add floating ip cirros1 192.168.123.164

此时,ssh可以利用这个浮动IP登陆(使用了公钥证书登陆):

[root@openstack1 ~]# ssh cirros@192.168.123.164
$ 

 目前为止,其它的官网镜像并没有实例化组网成功,只有cirros可以,具体原因也不太清楚,主要是绑定的浮动IP找不到路由、

OK,openstack的网络感觉还是单独开一篇详细说说。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/335507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拿来就用的Java海报生成器ImageCombiner(一)

背景如果您是UI美工大师或者PS大牛&#xff0c;那本文一定不适合你&#xff1b;如果当您需要自己做一张海报时&#xff0c;可以立马有小伙伴帮您实现&#xff0c;那本文大概率也不适合你。但是&#xff0c;如果你跟我一样&#xff0c;遇上到以下场景&#xff0c;最近公司上了不…

新手小白适合做跨境电商吗?

今天的跨境电商已经逐渐成熟&#xff0c;靠运气赚钱的时代早已过去&#xff0c;馅饼不可能从天上掉下来&#xff0c;尤其是你想做一个没有货源的小白劝你醒醒。做跨境电商真的不容易&#xff0c;要想做&#xff0c;首先要分析自己是否适合做。米贸搜整理了以下资料&#xff0c;…

硬件设计—高性能ADC前端电路

高性能模数转换器&#xff08;ADC&#xff09;一般对系统的性能有非常高的要求&#xff0c;而AD芯片的“前端”的输入电路设计对ADC系统的的性能有非常大的影响。以下主要介绍了ADC芯片前端输入使用放大器和变压器各自的优势。 1、放大器和变压器根本区别 放大器是有源器件&am…

Docker进阶 - 8. docker network 网络模式之 container

目录 1. container 模式概述 2. 使用Alpine操作系统来验证 container 模式 1. container 模式概述 container网络模式新建的容器和已经存在的一个容器共享一个网络ip配置而不是和宿主机共享。新创建的容器不会创建自己的网卡&#xff0c;配置自己的IP&#xff0c;而是和一个…

ChatGPT注册+微信自动回复

ChatGPT注册微信自动回复1 注册OpenAI1.1 科学上网1.2 准备用于注册OpenAI的邮箱1.3 准备用于验证OpenAI的手机号1.4 注册OpenAI1.5 使用OpenAI2 基于ChatGPT微信实现自动回复2.1 原理2.2 实现ChatGPT是OpenAI基于GPT-3模型构建的自然语言处理模型&#xff0c;近几天ChatGPT突然…

这款浏览器火了,能快速使用ChatGPT,简单一看就会

当下ChatGPT很火&#xff0c;影响的人数非常广泛。作为聊天机器人模型&#xff0c;ChatGPT能完成写论文、编代码、写新闻、画画等高难度要求。那么&#xff0c;如何使用ChatGPT呢&#xff1f;下面介绍一下几个使用方法。值得一提的&#xff0c;目前已经有浏览器支持使用ChatGPT…

C++程序设计——多态:虚函数、抽象类、虚函数表

注&#xff1a;以下示例均是在VS2019环境下 一、多态的概念 通俗来讲&#xff0c;多态就是多种形态&#xff0c;当不同的对象去完成某个行为时&#xff0c;会产生出不同的状态。即不同继承关系的类对象&#xff0c;去调用同一函数时&#xff0c;产生不同的行为。 比如”叫“这…

【React】course

《千锋HTML5实战就业班React课程体系V16版本》课程资料 一、关于React 英文官网&#xff1a;https://reactjs.org/ 中文官网&#xff1a;https://zh-hans.reactjs.org/ React 起源于 Facebook 的内部项目&#xff0c;因为该公司对市场上所有 JavaScript MVC 框架&#xff0c…

JAVA工具篇--1 Idea中 Gradle的使用

前言&#xff1a; 既然我们已经使用Maven 来完成对项目的构建&#xff0c;为什么还要使用Gradle 进行项目的构建&#xff1b;gradle和maven都可以作为java程序的构建工具&#xff0c;但两者还是有很大的不同之处的&#xff1a;1.可扩展性&#xff0c;gradle比较灵活&#xff0c…

RabbitMQ-消息应答

一、介绍为了保证消息在发送过程中不丢失&#xff0c;rabbitmq引入消息应答机制&#xff0c;消息应答就是&#xff1a;消费者在接收到消息并且处理该消息之后&#xff0c;告诉rabbitmq它已经处理了&#xff0c;rabbitmq可以把该消息删除了。二、自动应答消息发送之后立即被认为…

pytest-fixture

fixture是pytest特有的功能&#xff0c;它用pytest.fixture标识&#xff0c;定义在函数前面。在编写测试函数的时候&#xff0c;可以将此函数的名称作为传入参数&#xff0c;pytest会以依赖注入方式将该函数的返回值作为测试函数的传入参数。fixture主要的目的是为了提供一种可…

从C语言向C++过渡

文章目录前言1.命名空间1.域的概念2.命名空间的使用2.C输入&输出3.缺省参数1.概念2.分类3.注意事项4.函数重载5.引用1.概念2.使用注意事项3.引用使用场景4.指针和引用的区别6.内联函数7.auto关键字8.nullptr前言 C被成为带类的C,本文由C语言向C过度&#xff0c;将会初步介…

电子器件系列32:逻辑与门芯片74LS11

一、编码规则 先看看这个代码的意思&#xff1a;74LS11 74是一个系列&#xff08;74 表示为工作温度范围&#xff0c;74: 0 ~ 70度。&#xff09; ls的意思就是工艺类型&#xff08;Bipolar(双极)工艺&#xff09; 11是代码 什么是74系列逻辑芯片&#xff1f; - 知乎 什么是…

【MyBatis】第八篇:一级,二级缓存

其实缓存字面的意思就是将一些内容缓存下来&#xff0c;等下次使用的时候可以直接调用&#xff0c;通过数据库得到数据&#xff0c;有时候会使用相同的数据&#xff0c;所以mybatis自然也支持缓存。 而mybatis按照缓存的效果可以分两大类&#xff1a;一级缓存和二级缓存。 一…

node.js下载和vite项目创建以及可能遇到的错误

目录 一、node.js的下载 1、去官网下载 节点.js (nodejs.org) 2、下载过程 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 第五步: 二、vite项目的创建&#xff08;使用的工具是Hbuilder x&#xff09; 第一步&#xff1a; 出现报错…

基于matlab多功能相控阵雷达资源管理的服务质量优化

一、前言此示例说明如何为基于服务质量 &#xff08;QoS&#xff09; 优化的多功能相控阵雷达 &#xff08;MPAR&#xff09; 监控设置资源管理方案。它首先定义必须同时调查的多个搜索扇区的参数。然后&#xff0c;它介绍了累积检测范围作为搜索质量的度量&#xff0c;并展示了…

低代码开发平台|制造管理-工艺工序搭建指南

1、简介1.1、案例简介本文将介绍&#xff0c;如何搭建制造管理-工艺工序。1.2、应用场景先填充工序信息&#xff0c;再设置工艺路线对应的工序&#xff1b;工序信息及工艺路线列表报表展示的是所有工序、工艺路线信息&#xff0c;可进行新增对应数据的操作。2、设置方法2.1、表…

权限管理实现的两种方式(详解)

登录的接口请求的三个内容&#xff1a;1. token2. 用户信息、角色信息3. 菜单信息第一种&#xff1a;基于角色Role的动态路由管理 (不推荐&#xff0c;但市场用的比较多)首先列出枚举每个角色对应几个路由&#xff0c;然后根据用户登录的角色遍历枚举出来的角色动态注册对应的路…

4年功能测试经验,裸辞后找不到工作怎么办?

软件测试四年&#xff0c;主要是手动测试&#xff08;部分自动化测试和性能测试&#xff0c;但是用的是公司内部自动化工具&#xff0c;而且我自动化方面是弱项。&#xff09; 现在裸辞三个月了&#xff0c;面试机会少而且面试屡屡受挫。总结就是自动化&#xff0c;性能&#…

微服务保护:一、初识Sentinel

1.1.雪崩问题及解决方案 1.1.1.雪崩问题 微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个微服务往往依赖于多个其它微服务。 如图&#xff0c;如果服务提供者I发生了故障&#xff0c;当前的应用的部分业务因为依赖于服务I&#xff0c;因此也会被阻塞。此时&…