
A:参见服务编排文档 标签概览。
Q:我部署了一个 web 类型容器,如何才能访问到这个容器里面的内容?
A:容器技术没有黑魔法反复出现您当前的网络存在链路层劫持,一个容器就是一个或者一组进程,进程应该暴露端口,用户能够访问到容器里面的内容。容器抽象出了容器的端口,与主机的端口相映射。我们可以借助访问与容器映射了的主机端口访问到容器。
Q:为了做到高可用,我们会使用多个同样用途的容器,只提供一个访问的端点,这在容器服务中是怎样做到的呢?
A:如下图图示,我们提供了一个 routing 服务(通过 服务 > 变更配置 > 简单路由配置 进行配置),routing 服务会默认在集群的每个结点部署一个 routing (创建集群之后,您会在容器列表中发现,属于 acsrouting 应用)容器,所有请求先走集群的(创建集群会默认创建一个负载均衡实例)负载均衡前端80端口 > 节点9080端口 > routing 容器 80 端口。routing 容器的底层实现是一个 HAProxy 负载均衡软件,类似 Nginx,提供负载均衡功能。routing 容器是按照 HTTP 协议中的 “HOST” header 指定的域名来转发到不同的容器后端的(在同一个集群中,容器与容器之间是网络互通的)。您在进行路由配置时,一定要注意负载均衡的端口、节点 VM 的端口与容器端口的区分跟联系。

Q:如何帮暴露公网的服务添加域名,并支持 HTTP 协议?
A:参见链接 给暴露公网的服务添加域名。

Q:如何将 HTTP 协议转化成 HTTPS 协议?
A:参见链接 将暴露的 HTTP 服务修改为 HTTPS 服务。
Q:如何将 HTTP 请求跳转为 HTTPS 请求?
A:首先我们应区别请求的协议是 HTTP 还是 HTTPS。如果是 HTTP 协议,则通过 301 或者 302 跳转至 HTTPS。但是当 HTTP 请求跟 HTTPS 请求分别借助负载均衡的 80 和 443 端口转发至后端相同的端口(例如 9080 端口)时,后端的容器是没有办法区分该请求的协议是 HTTP 还是 HTTPS 协议的。解决的方法是,通过额外暴露一个端口(例如 8080 端口)将 HTTP 的请求走如下链路:负载均衡前端 80 端口 > 节点主机 vm8080 端口 > 专门用作跳转处理的容器,例如 Nginx 80 端口 > 返回 302 跳转。
Q:为什么负载均衡 HTTP 协议的端口显示异常?
A:负载均衡的 HTTP 协议端口健康体检失败,就会显示异常。健康检测的原理很简单,就是发送一个 HTTP 的 HEAD 请求(与 GET 请求类似,但是只应该返回响应头就能),用户必须配置 HTTP 请求的域名,默认是 IP,如果请求返回 200,负载均衡才觉得健康检查是正常的。检查方法是避开负载均衡,直接在您的主机节点上借助 curl 命令探测请求是否正确返回 200。
Q:为什么负载均衡 HTTPS 协议的端口显示异常?
A:负载均衡的 HTTPS 协议端口健康体检失败,就会显示异常。健康检测的原理很简单,就是发送一个 HTTP 的 HEAD 请求(与 GET 请求类似,但是只应该返回响应头就能),用户必须配置 HTTP 请求的域名,默认是 IP反复出现您当前的网络存在链路层劫持,如果请求返回 200,负载均衡才觉得健康检测是正常的。用户即使配置的是 HTTPS 协议端口,请注意一定要在配置健康检查的之后配置请求的域名,否则默认健康检查是会失败的(默认配置的 IP 请求到 routing 容器,routing 容器不知道该转发到什么后端,返回 503 报错)。检查方法是避开负载均衡,直接在您的主机节点上借助 curl 命令探测请求是否正确返回 200,如果没有返回,请检查应用的正确性。

Q:集群是否支持绑定内网负载均衡,是否支持解绑?
A:集群支持绑定至多一个负载均衡实例,同时支持解绑定,参见 为集群绑定和解绑负载均衡。
Q:集群支持绑定多个集群级别的负载均衡吗?
A:目前不支持。用户可以借助自动建立负载均衡绑定到集群结点的 9080 端口,当结点伸缩扩容时,用户必须自己维护自己建立的负载均衡的后端服务器,例如添加以及降低后端服务器。
Q:同一个集群内,容器跟容器之间怎样通信?
A:同一个集群内,容器访问另外一个容器,可以直接使用容器名只是外部域名进行访问。
Q: 同一个集群内,容器跟容器之间如何进行服务发现跟负载均衡?
A:通过路由服务代理进行转发和看到。参见例子 基于容器服务推动 Docker 微服务间的负载均衡和手动服务发现的方式。

Q:路由服务访问链路的难题,如何排查?
A:排查方法参见 访问链路问题排查。
Q:既可以借助应用模板的 aliyun.routing.port_$container_port 进行简洁路由配置,也可以借助服务的更改配置进行简洁路由配置,区别是哪个?
A:本质是一样的。通过应用模板的 aliyun.routing.port_$container_port 进行简单路由配置会体现在服务的 变更配置 的 web 路由规则上,但是反过来则不会。通过服务的 变更配置 进行简洁路由配置,只是方便用户在控制台使用,同时便于错误检测和校验。其实现也就是把这个表单变成应用模板的一个 label,然后再去升级服务的配置。
Q: 我希望对负载均衡做更多的配置,默认的路由服务不支持,怎么办?
A:我们提供了一个自定义代理的镜像 registry.aliyuncs.com/acs/proxy,该镜像的底层推动是 HAProxy,支持对 HAProxy 各种定义的参数化配置,同时支持动态的服务发现,即依据服务的健康状况,正确地路由到健康的容器中。
Q:使用简单路由后,如何获得客户端的来源真实 IP?
A:所有经过简单路由的请求,都会在请求的 request header 中加入 x-forwarded-for。

x-forwarded-for: <客户端来源 IP> x-forwarded-for: <中间代理的 IP> 说明 该 header 可能会有多行,需要获取多行中第一行的 x-forwarded-for 来获得客户端真实 IP。
点击查看更多云市场产品,也可以搜索更多关于服务器常见问题
点击查看更多云市场产品,也可以搜索更多关于域名常见问题
点击查看更多云市场产品,也可以搜索更多关于服务器常见问题
用户在建立集群时需选定NAS的挂载点跟远程目录。假如用户的配置信息如下:
ClusterId=ehpc-mrZSoWfz8M # E-HPC集群ID VolumeMountpoint=045324a6dd-meb81.cn-hangzhou.nas.aliyuncs.com # NAS挂载点 RemotePath=/ # 远程目录
在新建立的集群的节点上(比如计算节点),我们mount的逻辑如下:
根据集群名称,在远程目录下建立二级,三级目录 /ehpc-mrZSoWfz8M/opt /ehpc-mrZSoWfz8M/home 会做如下挂载: / 挂载到 /ehpcdata /ehpc-mrZSoWfz8M/home 挂载到 /home /ehpc-mrZSoWfz8M/opt 挂载到 /opt 注:NAS上的远程目录必须预先建立,因此一般远程目录设定为默认根目录: RemotePath=/
点击查看更多云市场产品,也可以搜索更多关于服务器常见问题
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-140896-1.html
当前必须完全抛售美国国债
去查查马云