我试图部署一个角应用程序在OpenShift与Istio作为服务网格。服务yaml:
- apiVersion: v1
kind: Service
metadata:
labels:
app: angularapp
service: angularapp
version: v1
name: angularapp
spec:
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8080
selector:
name: angularapp
到目前为止,一切都与http连接一起工作。为了切换到https连接,我将Red Hat Openshift服务Mesh operator安装提供的istio ingressgateway路由配置为使用passthrough
spec:
host: istio-ingressgateway-istio-system.apps.xxx.xx.xxxxxxx.opentlc.com
tls:
insecureEdgeTerminationPolicy: None
termination: passthrough
以及istio的网关资源:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: testnamespace-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: "router-certs"
hosts:
- "*"
VirtualService指向angular app的8080端口:
route:
- destination:
host: angularapp
port:
number: 8080
问题:TLS配置工作,暴露的istio入口网关网址确实有https连接。但是,API Gateway在触发对上述istio URL的请求时会发出此错误:
由于配置错误,执行失败:无法识别的SSL消息,纯文本连接?
奇怪的是,它只发生一半的时间,另一半工作,即使在每次运行后清除浏览器缓存。请注意,只有istio入口网关URL具有https连接,而作为独立服务的angular应用程序仅具有http连接。
抱歉啰嗦,希望在这里得到一些帮助。谢谢你!
通过添加段解决了这个问题:
port:
targetPort: https
tls:
termination: passthrough
到istio入口路由配置作为istio入口服务默认配置监听portName: https
name: https
port: 443
protocol: TCP
targetPort: 8080
通过直通终端,加密的流量直接发送到目的地,而不需要路由器提供TLS终端。因此,不需要密钥或证书。
因为您的后端服务是http,所以应该使用
termination: edge
参考:https://docs.openshift.com/container-platform/3.9/architecture/networking/routes.html
API 网关的配置 利用工程发布的配置,将 我们前面章节中写的服务消费者工程上传至Git,然后发布 部署至 服务器的Tomcat上。 登录 Aliyun 账户,进入 API网关控制台,点击 分组管理 - 杭州节点,点击创建分组,填写分组名称与描述,点击创建。 点击刚刚创建的分组,进入分组详情,如需绑定域名,请点击页面上的绑定域名,并对域名的CNAME 进行解析。 在分组列表页面上,点击 API 管
Web API 网关配置 API网关(API Gateway),提供API托管服务,提供涵盖API发布、管理、运维、售卖的全生命周期管理。辅助用户简单、快速、低成本、低风险的实现微服务聚合、前后端分离、系统集成,向合作伙伴、开发者开放功能和数据。 我们这一章节就通过 调用我们上面写好的服务消费者接口,将其封装成Web API,并将其调用。
现在我的要求是,每当我通过API获取数据时,我必须将其保存到2-3个不同的地方(例如,保存到我自己的数据库中,保存到某个BI服务中,有时还保存到日志数据库中)。 我不知道是否可以将单个资源和单个方法绑定到多个lambda函数中。因此,我的替代方法是,因为我已经知道如何通过订阅SNS主题来触发多个lambda函数,我想如果我能从API网关发布到SNS主题,剩下的就容易了。我现在的想法是: 但问题是,
换句话说,我的API网关将使用API网关中定义的相同的资源处理对的请求和对的另一个请求,而不必在API网关中定义和资源。
让我们说,我正在开发博客平台,用户可以注册帐户,支付订阅和创建自己的博客。平台由以下微服务组成: 帐户-服务 auth-service 订阅-服务 博客-服务 API-网关 我正在考虑实现api-gw模式,其中除了api-gw之外的所有微服务都将部署到专用网络中(在那里,它们将能够通过message broker直接以同步或异步方式相互通信),并且它们将只通过api-gw公开可用。 null 我的
让我抓狂的一件事是AWS有大量关于ARN格式的文档,但没有任何类型的生成器让您确信ARN是正确的。 在IAM中,我试图设置一个策略来允许访问API网关,我已经阅读了以下文档: http://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html#api-使用iam策略的网关控制访问 http://docs.aws.