我想在开放堆栈云上编写程序.当我搜索资源时,我找到的只是安装和管理手册.
我安装了云,现在如何在其上运行程序?使用消息队列或blob-store的示例会很好.
有谁知道这个很好的编程教程?
我有以下引用来自docker的最新发行说明 -
与所有主要的IaaS实施一样,Openstack在很大程度上依赖于虚拟机.虽然在某些应用程序中总会出现虚拟机的情况,但我们认为轻量级容器在许多情况下都是一个很好的替代方案,特别是对于CPU和内存密集型且受到虚拟机性能开销影响的有效负载.
以上清楚地表明,docker与VM的优势在于CPU和内存密集型有效载荷,所以我的问题是VM对Docker的优势是什么?或者什么时候应该使用VM的版本码头?我发现我的大部分场景都是由docker服务好的.
我在Amazon-EC2和openstack上使用linux作为基于云的服务器.试图运行时:
sudo chhown ubuntu somepath
Run Code Online (Sandbox Code Playgroud)
我偶尔会得到这个错误:
sudo:无法解析主机
互联网上对此问题的大多数答案都是编辑/ etc/hosts文件.
但是,我会自动部署我的服务器.除此之外,我没有使用"localhost"登录,而是登录我的AWS公共DNS:
ssh -i mykey.pem ubuntu@ec2-12-34-56-78.eu-central-1.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
所以我不能简单地插入localhost,更不用说我的IP可以在我重置我的机器后改变.(不要为每台服务器"浪费"我宝贵的浮动IP)
此外,我一次部署数十台服务器,因此我无法负担编辑文本文件的手动步骤.是否有针对此问题的自动修复程序?最近我开始使用openstack,问题也存在.
我正在使用以下文档设置openstack配置: http://docs.openstack.org/juno/install-guide/install/apt/openstack-install-guide-apt-juno.pdf 并到达第72页,其中显示去做这个:
# ovs-vsctl add-port br-ex INTERFACE_NAME
Run Code Online (Sandbox Code Playgroud)
但我输入了错误的 INTERFACE_NAME,现在我必须纠正这个错误(这是一个真正的接口,但错误的接口,我应该在那里放另一个接口)。
但我很难撤销它。
我试过:
# ovs-vsctl del-port br-ex INTERFACE_NAME
Run Code Online (Sandbox Code Playgroud)
但它告诉我 /etc/openvswitch/conf.db (或类似的东西)是只读的
然后我尝试了
# ovs-vsctl del-br br-ex
Run Code Online (Sandbox Code Playgroud)
然后它说你不能只删除一个端口,你需要删除整个网桥(或类似的东西)。这对我来说很奇怪,我认为该命令会删除桥......
那么有人知道删除我错误创建的端口的正确方法吗?
编辑:我以root身份尝试了所有这些。
EDIT2:我刚刚尝试在练习机器上做同样的事情,犯同样的错误,然后用以下方法修复它:
# ovs-vsctl del-port br-ex INTERFACE_NAME
Run Code Online (Sandbox Code Playgroud)
它起作用了,没有只读的废话,所以我真的不明白。有什么建议么?
从docker容器里面,我正在运行
# openssl s_client -connect rubygems.org:443 -state -nbio 2>&1 | grep "^SSL"
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:error in SSLv2/v3 read server hello A
Run Code Online (Sandbox Code Playgroud)
这就是我得到的全部
我无法从docker容器中连接到任何https站点.容器在openstack vm上运行.vm可以通过https连接.
有什么建议?
UPDATE
root@ce239554761d:/# curl -vv https://google.com
* Rebuilt URL to: https://google.com/
* Hostname was NOT found in DNS cache
* Trying 216.58.217.46...
* Connected to google.com (216.58.217.46) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
Run Code Online (Sandbox Code Playgroud)
然后它挂了.
而且,我现在正在获得间歇性的成功.
理智检查: …
我正在尝试使用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) 运行 OpenStack Newton,全新安装,在尝试启动实例时在计算节点上(在 nova-compute.log 中)收到此消息:
2017-04-04 19:28:47.546 31726 ERROR nova.compute.manager [req-af37e2ee-0ef9-4d4e-b3ce-d7a1bf27a780 - - - - -] [instance: 6ecaf72c-88bc-4f26-8907-dc19d7924327] An error occurred while refreshing the network cache.
2017-04-04 19:28:47.546 31726 ERROR nova.compute.manager [instance: 6ecaf72c-88bc-4f26-8907-dc19d7924327] Traceback (most recent call last):
2017-04-04 19:28:47.546 31726 ERROR nova.compute.manager [instance: 6ecaf72c-88bc-4f26-8907-dc19d7924327] File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 5766, in _heal_instance_info_cache
2017-04-04 19:28:47.546 31726 ERROR nova.compute.manager [instance: 6ecaf72c-88bc-4f26-8907-dc19d7924327] self.network_api.get_instance_nw_info(context, instance)
2017-04-04 19:28:47.546 31726 ERROR nova.compute.manager [instance: 6ecaf72c-88bc-4f26-8907-dc19d7924327] File "/usr/lib/python2.7/dist-packages/nova/network/api.py", line 369, in get_instance_nw_info
2017-04-04 19:28:47.546 31726 ERROR nova.compute.manager [instance: 6ecaf72c-88bc-4f26-8907-dc19d7924327] …Run Code Online (Sandbox Code Playgroud) OpenStack使用消息传递(默认情况下我认为是RabbitMQ?)来进行节点之间的通信.另一方面,Kubernetes(谷歌内部Borg的血统)使用RPC.Docker的swarm也使用RPC.两者都是gRPC/protofbuf,似乎也在谷歌内部大量使用.
我知道像Kafka这样的消息传递平台被广泛用于流数据和日志聚合.但是像OpenStack,Kubernetes,Docker Swarm等系统需要节点之间的特定交互,而RPC似乎是一个自然选择,因为它允许为特定操作定义API.
OpenStack在评估了消息与RPC之间的优缺点后是否选择了消息?是否有任何好的博客/系统评论比较使用消息传递与RPC的大规模系统的成功?在扩展的分布式系统中,消息传递是否比RPC具有任何优势?
I have the following OpenStack infrastructure:
This work fine, I can create network, router, vm, etc... Now, I want to add an OpenDaylight controller in the cloud infrastructure using the service NetVirt. I follow the officiel OpenDaylight guide: http://docs.opendaylight.org/projects/netvirt/en/latest/openstack-guide/openstack-with-netvirt.html#installing-opendaylight-on-an-existing-openstack
Every step in the installation is done without any probleme. I can see the open vSwitch on each nodes managed by my SDN controller. At the end, when i restart Neutron to test if everything …
我正在使用 terraform 在 OpenStack 上设置一个 docker swarm 集群,并使用 Ansible 在新创建的虚拟机上进行配置。我想首先docker swarm leave在虚拟机上执行,当我减少实例(虚拟机)数量并通过terraform apply. 当我一个一个地销毁实例时它会起作用,但是当同时销毁 2 个实例时它会出错。
错误:循环:module.swarm_cluster.openstack_compute_instance_v2.swarm-cluster-hosts[3](销毁),module.swarm_cluster.openstack_compute_instance_v2.swarm-cluster-hosts[2](销毁)
这是脚本:
resource "openstack_compute_instance_v2" "my_cluster"{
provisioner "remote-exec" {
when = destroy
inline = [ "sudo docker swarm leave" ]
}
connection {
type = "ssh"
user = var.ansible_user
timeout = "3m"
private_key = var.private_ssh_key
host = self.access_ip_v4
}
}
Run Code Online (Sandbox Code Playgroud)
地形:0.12
openstack ×10
docker ×2
rabbitmq ×2
amazon-ec2 ×1
apache-spark ×1
docker-swarm ×1
eucalyptus ×1
grpc ×1
https ×1
ip-address ×1
kubernetes ×1
lxc ×1
networking ×1
opendaylight ×1
openvswitch ×1
provisioning ×1
ssl ×1
sudo ×1
terraform ×1
ubuntu ×1