我正在尝试使用OpenStack配置Spark集群.目前我有两个名为的服务器
尝试使用这些浮动IP与标准公共IP时,我遇到了问题.
在spark-master机器上,主机名是spark-master,而/ etc/hosts看起来像
127.0.0.1 localhost
127.0.1.1 spark-master
Run Code Online (Sandbox Code Playgroud)
对spark-env.sh进行的唯一更改是export SPARK_MASTER_IP='192.x.x.1'.如果我运行,./sbin/start-master.sh我可以查看Web UI.
问题是我使用浮动IP 87.xx1查看Web UI,并在其中列出主URL:spark://192.xx1:7077.
从奴隶我可以运行./sbin/start-slave.sh spark://192.x.x.1:7077,它成功连接.
如果我尝试通过更改主服务器上的spark-env.sh来使用浮动IP,export SPARK_MASTER_IP='87.x.x.1'那么我会得到以下错误日志
Spark Command: /usr/lib/jvm/java-7-openjdk-amd64/bin/java -cp /usr/local/spark-1.6.1-bin-hadoop2.6/conf/:/usr/local/spark-1.6.1-bin-hadoop2.6/lib/spark-assembly-1.6.1-hadoop2.6.0.jar:/usr/local/spark-1.6.1-bin-hadoop2.6/lib/datanucleus-core-3.2.10.jar:/usr/local/spark-1.6.1-bin-hadoop2.6/lib/datanucleus-api-jdo-3.2.6.jar:/usr/local/spark-1.6.1-bin-hadoop2.6/lib/datanucleus-rdbms-3.2.9.jar -Xms1g -Xmx1g -XX:MaxPermSize=256m org.apache.spark.deploy.master.Master --ip 87.x.x.1 --port 7077 --webui-port 8080
========================================
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/05/12 15:05:33 INFO Master: Registered signal handlers for [TERM, HUP, INT]
16/05/12 15:05:33 WARN Utils: Your hostname, spark-master resolves to …Run Code Online (Sandbox Code Playgroud) 我遵循了这个指南:http://keystone.openstack.org/api_curl_examples.html
似乎我通过运行得到了一个有效的令牌:
curl -d '{"auth":{"passwordCredentials":{"username": "can", "password": "mypassword"}}}' -H "Content-type: application/json" http://url:35357/v2.0/tokens
Run Code Online (Sandbox Code Playgroud)
它返回了:
{
"access":
{
"token":
{
"expires": "2012-05-21T14:35:17Z",
"id": "468da447bd1c4821bbc5def0498fd441"
},
"serviceCatalog": {},
"user":
{
"username": "can",
"roles_links": [],
"id": "bb6d3a09ad0c4924bf20c1a32ccb5781",
"roles": [],
"name": "can"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我来到接下来的几节来验证这个令牌时,我遇到了这个神奇的数字:X-Auth-Token:999888777666.起初我以为这是我得到的令牌,但我错了.
我想我可能错过了一些东西,所以我阅读了openstack文档中的相关章节(http://keystone.openstack.org/configuration.html和http://docs.openstack.org/api/openstack-compute/programmer/content /),但仍然不知道数字是如何来的.
任何人都可以向我解释
我正在使用boto在openstack中启动实例
myinstance = conn.run_instances('ami-0000007d',min_count=1,max_count=1, instance_type = 'm1.small')
newmachine=myinstance.instances[0]
Run Code Online (Sandbox Code Playgroud)
newMachine具有与已启动实例相关的信息.我试过了
vars(newmachine)
Run Code Online (Sandbox Code Playgroud)
并且变量的ip_address和private_ip_address为空.如何获取已启动实例的ip_address?
如何在cirros图像中安装软件包?
我没有找到与devstack安装一起提供的cirros映像中的任何安装程序.
我创建了一个基于KVM的多个Linux主机的环境.我正在使用virt-manager创建不同的虚拟机,而我正在使用Linux网桥在不同主机中的虚拟机之间创建连接.
现在,我想拥有一个自动配置服务器,以便我的虚拟机可以根据每个虚拟机的唯一ID自动配置其名称,IP地址,运行一些脚本等.是否可以在非openstack环境中复制某种cloud-init设置?
我尝试以下列方式使用cloud-init数据源NoCloud.首先,我在VM中安装了cloud-init并配置了cloud.cfg:
datasource:
NoCloud
datasource_list: [ NoCloud ]
disable_ec2_metadata: True
Run Code Online (Sandbox Code Playgroud)
然后,我创建了一个用户数据文件和元数据文件,其中包含以下内容:
用户数据:
#cloud-config
hostname: prueba
password: passw0rd
chpasswd: { expire: False }
ssh_pwauth: True
Run Code Online (Sandbox Code Playgroud)
元数据:
instance-id: iid-local01
local-hostname: prueba
Run Code Online (Sandbox Code Playgroud)
然后,我生成了一个iso文件:
genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
Run Code Online (Sandbox Code Playgroud)
最后,我已将磁盘连接到VM并启动它.这是XML的相关部分:
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/images/seed.iso'/>
<backingStore/>
<target dev='vdb' bus='virtio'/>
<alias name='virtio-disk1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
Run Code Online (Sandbox Code Playgroud)
当VM启动时,它会说:
2015-05-12 12:12:40,394 - util.py[WARNING]: Getting data from <class 'cloudinit.sources.DataSourceNoCloud.DataSourceNoCloudNet'> failed
* Stopping Read required files in advance …Run Code Online (Sandbox Code Playgroud) 我使用下面的命令来获取令牌。
curl -s -X POST http://127.0.0.1:5000/v2.0/tokens -H "Content-Type: application/json" -d '{"auth": {"tenantName": "'"$OS_TENANT_NAME"'", "passwordCredentials": {"username": "'"$OS_USERNAME"'", "password": "'"$OS_PASSWORD"'"}}}'| python -m json.tool
Run Code Online (Sandbox Code Playgroud)
之后我想对 openstack keystone 服务进行curl 调用。所以我尝试了,curl https://keystone:5000
但它引发了一个错误
curl: (56) Received HTTP code 404 from proxy after CONNECT
Run Code Online (Sandbox Code Playgroud)
如何对 openstack 服务进行curl 调用?
我希望我的 openstack 设置能够正常工作,以便当我启动新实例时,8.8.8.8 应添加到 dns-nameservers 中。
这是我的旧 /etc/resolv.conf (在 openstack 中生成的新虚拟机中)-
nameserver 10.0.0.2
search openstacklocal
Run Code Online (Sandbox Code Playgroud)
这是我想要的新 resolv.conf -
nameserver 8.8.8.8
nameserver 10.0.0.2
search openstacklocal
Run Code Online (Sandbox Code Playgroud)
我遵循了本教程,并添加了必要的信息。resolv conf 到我的 cloud-init 的配置文件(/etc/cloud/cloud.cfg) -
manage_resolv_conf: true
resolv_conf:
nameservers: ['8.8.4.4', '8.8.8.8']
searchdomains:
- foo.example.com
- bar.example.com
domain: example.com
options:
rotate: true
timeout: 1
Run Code Online (Sandbox Code Playgroud)
这些更改是在 openstack 主机的 /etc/cloud/cloud.cfg 文件中进行的。然而,这些变化似乎并没有得到体现。
有什么建议么?
如何使用 Horizon 或 OpenStack 客户端获取 OpenStack 版本?
当我运行命令时openstack --version,我得到以下输出:
openstack 3.15.0
Run Code Online (Sandbox Code Playgroud)
现在从这里,我们如何获得 openstack 的哪个版本,例如牛顿,千克?
另一个问题,如果我可以访问 Horizon dashbord,是否可以从 UI 获取 openstack 的版本?
根据官方文档,我正在尝试在虚拟机Devstack上的Ubuntu 18.04 ServerOS上部署OS。devstack节点只有一个网卡(ens160)通过以下CIDR连接到网络10.20.30.40/24。我需要在该网络上公开访问我的实例(从10.20.30.240到10.20.30.250)。因此,我还是设法通过以下官方浮动IP 文档来形成此local.conf文件:
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
PUBLIC_INTERFACE=ens160
HOST_IP=10.20.30.40
FLOATING_RANGE=10.20.30.40/24
PUBLIC_NETWORK_GATEWAY=10.20.30.1
Q_FLOATING_ALLOCATION_POOL=start=10.20.30.240,end=10.20.30.250
Run Code Online (Sandbox Code Playgroud)
这将导致形成一个br-ex具有全局IP地址10.20.30.40和辅助IP地址10.20.30.1的网关(网关已经在网络上;PUBLIC_NETWORK_GATEWAY参数不是在谈论网络上的真实网关吗?)
现在,在成功部署之后,禁用ufw(根据此方法),创建具有用于ping和ssh的适当安全组的cirros实例并附加浮动IP,我只能在devstack节点上访问我的实例,而不能在整个网络上访问我的实例!同样从cirros实例内部,我无法访问外部世界(即使我可以从devstack节点访问外部世界)
之后,观看此视频,我对local.conf文件进行了如下修改:
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
FLAT_INTERFACE=ens160
HOST_IP=10.20.30.40
FLOATING_RANGE=10.20.30.240/28
Run Code Online (Sandbox Code Playgroud)
成功部署和实例设置后,我仍然只能在devstack节点上访问我的实例,而不能从外部访问!但是好消息是我可以从cirros实例内部访问外界。
任何帮助,将不胜感激!
更新资料
在第二种配置中,在tcpdump对实例浮动IP执行ping操作时检查数据包,我观察到实例的浮动IP的who-has广播数据包从网络路由器到达devstack节点。但是不会is-at生成任何答复,因此ICMP数据包不会路由到devstack节点和实例。
因此,通过一些技巧,我创建了响应,然后一切正常。但这当然不是解决方案,我认为devstack应该开箱即用而无需任何调整,这可能是因为devstack的配置错误。
我有 Window Server 2016/2019 虚拟机(Openstack)。在那个 Hyper-V 上安装成功。但无法启动 MobyLinuxVM。
ExposeVirtualizationExtensions 已通过 PowerShell 在虚拟机框上启用。
Docker.Core.DockerException:
Docker.Core.Backend.BackendDestroyException:
Unable to start Hyper-V VM: 'DockerDesktopVM' failed to start.
Failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running.
'DockerDesktopVM' failed to start. (Virtual machine ID 96BDA1DB-4163-4FA5-BEF2-62F1BEC1697E)
The Virtual Machine Management Service failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running (Virtual machine ID 96BDA1DB-4163-4FA5-BEF2-62F1BEC1697E).
at Start-MobyLinuxVM, <No file>: line 688
at <ScriptBlock>, …Run Code Online (Sandbox Code Playgroud) openstack ×10
cloud-init ×2
amazon-ec2 ×1
apache-spark ×1
boto ×1
curl ×1
devstack ×1
docker ×1
floating-ip ×1
hyper-v ×1
identity ×1
ip-address ×1
linux ×1
nameservers ×1
python ×1
token ×1
virtualbox ×1