标签: openstack

Spark群集主IP地址未绑定到浮动IP

我正在尝试使用OpenStack配置Spark集群.目前我有两个名为的服务器

  • spark-master(IP:192.xx1,浮动IP:87.xx1)
  • spark-slave-1(IP:192.xx2,浮动IP:87.xx2)

尝试使用这些浮动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)

network-programming ip-address openstack apache-spark

7
推荐指数
2
解决办法
1万
查看次数

如何获取openstack令牌并验证它?

我遵循了这个指南: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.htmlhttp://docs.openstack.org/api/openstack-compute/programmer/content /),但仍然不知道数字是如何来的.

任何人都可以向我解释

  1. 这个神奇数字的含义是什么
  2. 如何获得正确的价值,以便我可以获得一个工作令牌来管理openstack的其他部分

identity token openstack

6
推荐指数
2
解决办法
2万
查看次数

如何使用Boto获取已启动实例的IP地址

我正在使用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?

python amazon-ec2 boto openstack

6
推荐指数
1
解决办法
8199
查看次数

如何在cirros OS中安装软件包

如何在cirros图像中安装软件包?

我没有找到与devstack安装一起提供的cirros映像中的任何安装程序.

openstack

6
推荐指数
1
解决办法
1万
查看次数

我可以在不使用openstack或EC2的情况下运行cloud-init环境吗?

我创建了一个基于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)

linux openstack cloud-init

6
推荐指数
1
解决办法
5520
查看次数

Curl:连接后从代理收到 HTTP 代码 404

我使用下面的命令来获取令牌。

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 调用?

curl openstack

6
推荐指数
0
解决办法
3664
查看次数

使用cloud-init更改resolv.conf

我希望我的 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 文件中进行的。然而,这些变化似乎并没有得到体现。

有什么建议么?

nameservers openstack cloud-init

6
推荐指数
1
解决办法
2万
查看次数

如何使用 Horizo​​n 或 Openstack 客户端获取 openstack 版本?

如何使用 Horizo​​n 或 OpenStack 客户端获取 OpenStack 版本?

当我运行命令时openstack --version,我得到以下输出:

openstack 3.15.0
Run Code Online (Sandbox Code Playgroud)

现在从这里,我们如何获得 openstack 的哪个版本,例如牛顿,千克?

另一个问题,如果我可以访问 Horizo​​n dashbord,是否可以从 UI 获取 openstack 的版本?

openstack openstack-horizon

6
推荐指数
2
解决办法
1万
查看次数

无法在devstack节点外部访问DevStack实例

根据官方文档,我正在尝试在虚拟机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的配置错误。

openstack devstack openstack-neutron floating-ip

6
推荐指数
1
解决办法
94
查看次数

服务无法启动虚拟机“DockerDesktopVM”,因为 Hyper-V 组件之一未运行

我有 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)

virtualbox hyper-v openstack docker windows-server-2016

6
推荐指数
2
解决办法
1万
查看次数