“使用Consul或Eureka在Docker上运行”?

时间:2018-07-21 07:26:01

标签: kubernetes istio

我正在尝试在3节点K8s集群上运行Istio演示应用程序+领事。

我正在遵循本指南:https://istio.io/docs/guides/bookinfo/中的“使用Consul或Eureka在Docker上运行”部分

但是Istio的领事演示失败了:

root@kubemaster:~/istio-0.8.0# docker-compose -f samples/bookinfo/consul/bookinfo.yaml up -d
ERROR: Network consul_istiomesh declared as external, but could not be   found. Please create the network manually using `docker network create consul_istiomesh` and try again.

但是随后我按照错误消息的建议创建了网络:

root@kubemaster:~/istio-0.8.0# docker network create consul_istiomesh 
b137f18c35c21b7bb3129cf5f3984c81fe270dfec35906c1611ffe249ef336c1

但随后出现此错误:

root@kubemaster:~/istio-0.8.0# docker-compose -f samples/bookinfo/consul/bookinfo.yaml up -d
Creating consul_productpage-v1_1
Creating consul_reviews-v3_1
Creating consul_details-v1_1
Creating consul_reviews-v1_1
Creating consul_ratings-v1_1
Creating consul_reviews-v2_1

ERROR: for productpage-v1  user specified IP address is supported only when connecting to networks with user configured subnets
Traceback (most recent call last):
File "/usr/local/bin/docker-compose", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", 
line 63, in main
log.error(e.msg)
AttributeError: 'ProjectError' object has no attribute 'msg'

该怎么办?

1 个答案:

答案 0 :(得分:0)

  

该怎么办?

尽管从技术上讲,您可以将手动管理的Docker容器与Kubernetes托管的容器混合使用,但这不是真正正确的方法,除非您绝对需要这样做...如果您的istio在Kubernetes中运行,则将docker-compose重写为k8s清单(或使用转换工具的帮助)要牢记诸如服务引用等之类的差异。

话虽如此,您可以并行运行它们(如果需要),但必须考虑到公开的端点/服务,并且解开网络设置会有些麻烦。

因此您可以做两件事:

  • 调整docker-compose和istio k8s服务清单以彼此对话或
  • 将docker-compose重写为k8s清单并在集群中运行所有内容