amazon-web-services - WSO2 Kuberentes AWS 部署

标签 amazon-web-services amazon-ec2 wso2 kubernetes wso2-am

这是我遇到的问题。
我正在尝试部署开源的 WSO2 API Manager。

可以在此处找到有关如何执行此操作的文档:
https://github.com/wso2/kubernetes-artifacts/tree/master/wso2am

Dockerfiles:
https://github.com/wso2/dockerfiles/tree/master/wso2am

我所做的是构建 kuberenetes 所需的 docker 镜像。
我将这些 docker 镜像部署到 EC2 容器服务。

然后更新 wso2 kuberenetes 规范文件( Controller )以使用我推送到 EC2 容器服务的镜像。

然后我进入 Kubernetes:
kubernetes-artifacts/wso2am 并运行“./deploy -d”

它比运行等待启动脚本,但它只是不断循环并且永远不会“发现”它已经启动。

root@aw-kubernetes:~/wso2kubernetes/kubernetes-artifacts/wso2am# ./deploy.sh -d
Deploying MySQL Governance DB Service...
service "mysql-govdb" created
Deploying MySQL Governance DB Replication Controller...
replicationcontroller "mysql-govdb" created
Deploying MySQL User DB Service...
service "mysql-userdb" created
Deploying MySQL User DB Replication Controller...
replicationcontroller "mysql-userdb" created
Deploying APIM database Service...
service "mysql-apim-db" created
Deploying APIM database Replication Controller...
replicationcontroller "mysql-apim-db" created
Deploying wso2am api-key-manager Service...
You have exposed your service on an external port on all nodes in your
cluster.  If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:32013,tcp:32014,tcp:32015) to serve traffic.

See http://releases.k8s.io/release-1.3/docs/user-guide/services-firewalls.md for more details.
service "wso2am-api-key-manager" created
Deploying wso2am api-store Service...
You have exposed your service on an external port on all nodes in your
cluster.  If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:32018,tcp:32019) to serve traffic.

See http://releases.k8s.io/release-1.3/docs/user-guide/services-firewalls.md for more details.
service "wso2am-api-store" created
Deploying wso2am api-publisher Service...
You have exposed your service on an external port on all nodes in your
cluster.  If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:32016,tcp:32017) to serve traffic.

See http://releases.k8s.io/release-1.3/docs/user-guide/services-firewalls.md for more details.
service "wso2am-api-publisher" created
Deploying wso2am gateway-manager Service...
You have exposed your service on an external port on all nodes in your
cluster.  If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:32005,tcp:32006,tcp:32007,tcp:32008) to serve traffic.

See http://releases.k8s.io/release-1.3/docs/user-guide/services-firewalls.md for more details.
service "wso2am-gateway-manager" created
Deploying wso2am api-key-manager Replication Controller...
replicationcontroller "wso2am-api-key-manager" created
Waiting wso2am to launch on http://172.20.0.30:32013
.......

我试图注释掉“/wait-until-server-starts.sh”脚本并让它启动一切。但仍然无法访问 API Manager。

由于我完全陷入困境,因此真的可以对此有所了解。
我已经尝试了我能想到的一切。

如果 WSO2 团队中的任何人或做过这件事的人可以提供帮助,那将不胜感激。
我现在的理论是,也许这从未测试过将​​其部署到 AWS,而只是部署到本地设置?但我可能是错的。

任何帮助将不胜感激!

编辑:
从 kubectl 日志等中添加一些输出,而它在等待服务器启动的循环中我看到了这些东西:
root@aw-kubernetes:~# kubectl get pods
NAME                           READY     STATUS    RESTARTS   AGE
mysql-apim-db-b6b0u            1/1       Running   0          11m
mysql-govdb-0b0ud              1/1       Running   0          11m
mysql-userdb-fimc6             1/1       Running   0          11m
wso2am-api-key-manager-0pse8   1/1       Running   0          11m

还做一个 kubectl 日志显示一切正常启动:
[2016-07-21 18:46:59,049]  INFO - StartupFinalizerServiceComponent Server           :  WSO2 API Manager-1.10.0
[2016-07-21 18:46:59,049]  INFO - StartupFinalizerServiceComponent WSO2 Carbon started in 34 sec
[2016-07-21 18:46:59,262]  INFO - CarbonUIServiceComponent Mgt Console URL  : https://wso2am-api-key-manager:32014/carbon/
[2016-07-21 18:46:59,262]  INFO - CarbonUIServiceComponent API Publisher Default Context : http://wso2am-api-key-manager:32014/publisher
[2016-07-21 18:46:59,263]  INFO - CarbonUIServiceComponent API Store Default Context : http://wso2am-api-key-manager:32014/store

最佳答案

@Alex 这是 WSO2 Kubernetes Artifacts v1.0.0 版本中的一个问题。我们已经在主分支 [1] 中修复了这个问题。

问题是部署过程试图使用 Kubernetes 节点的私有(private) IP 地址来验证 WSO2 API-M 服务器套接字。我们更新了脚本以使用公共(public)/外部 IP 地址(如果它们可通过 Kubernetes CLI 获得)。为此,您可能需要根据 [2] 在 AWS 上设置 Kubernetes。

[1] https://github.com/wso2/kubernetes-artifacts/commit/53cc6979965ebed8800b803bb3454f3b758b8c05
[2] http://kubernetes.io/docs/getting-started-guides/aws/

关于amazon-web-services - WSO2 Kuberentes AWS 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38511803/

相关文章:

amazon-web-services - lambda 中的 AWS SQS 操作在冷启动时花费的时间太长

amazon-web-services - 如何在一个 EC2 实例上运行多个应用程序?

asp.net - 使用elastic beanstalk部署Asp.net Web应用程序问题

command-line - 尝试安装 AWS CLI,卡在一个步骤上

amazon-s3 - 从 Amazon S3 下载 Assets 的速度取决于哪些因素?

amazon-s3 - 由于本地机器的时钟偏差导致 S3 RequestTimeTooSkewed 错误

amazon-ec2 - <CoreOS, cloud-config> 在 Docker Private Registry 准备好之前如何设置 'Wait'?

wso2 - 属性名称中带有空格的 JSON 有效负载‏

osgi - 在调解器中使用 OSGi 服务

WSO2 API 管理器 CORS