取消
显示结果 
搜索替代 
您的意思是: 
cancel
2375
查看次数
8
有帮助
0
评论
julianchen
Spotlight
Spotlight
现在,我们需要来指定具有代理配置条目的ConfigMap。要做到这一点,我们应当给该模板添加一个新的顶层项目。在这里,我们建议您将其放置得越接近于其被使用之处越好。例如,就放在query-deployment的前面:
- apiVersion: v1
kind: ConfigMap
metadata:
name: ${JAEGER_SERVICE_NAME}-configuration
labels:
app: jaeger
jaeger-infra:security-proxy-configuration
data:
proxy: |
{
"target-url":"http://localhost:16686"
"bind-address":"0.0.0.0"
"http-port":"8080"
"applications": [
{
"base-path":"/"
"adapter-config": {
"realm":"jaeger"
"auth-server-url": "${REDHAT_SSO_URL}"
"ssl-required":"external"
"resource":"proxy-jaeger"
"credentials": {
"secret":"THE-SECRET-FROM-INSTALLATION-FILE"
}
}

"constraints": [
{
"pattern":"/*"
"roles-allowed": [
"user"
]
}
]
}
]
}
请注意:我们只允许具有user角色的用户登录我们的Jaeger用户界面。在真实的场景中,您可能想要调整之,以适应您自己的设置。例如,您的用户数据可能来自LDAP,而您只想允许来自特定LDAP组的用户去访问Jaeger的用户界面
各个credentials中的secret应当与我们从本练习最开始的Keycloak中所获得的secret相匹配。颇具好奇心的读者您也许会注意到我们在auth-server-url属性下所提到了模板参数REDHAT_SSO_URL。改变您的Keycloak服务器,或是我们指定一个模板参数,都能允许我们在部署时对它进行设置。在该模板的parameters部分,我们可以添加以下属性:
- description:The URL to the Red Hat SSO / Keycloak server
displayName: Red Hat SSO URL
name: REDHAT_SSO_URL
required: true
value: http://THE-URL-FROM-THE-INSTALLATION-FILE:8080/auth
可见这个值应该是一个您的浏览器和sidecar都能访问到的位置,就像您主机的局域网IP地址(192.x.10.x)一样。显然,使用Localhost/127.x是无法工作的。
作为最后一步我们需要更改服务引导请求到端口8080(即为代理)而不是16686。你可以更改服务名为query-service的属性targetPort,将其设置到8080:
- apiVersion: v1
kind: Service
metadata:
name: ${JAEGER_SERVICE_NAME}-query
labels:
app: jaeger
jaeger-infra: query-service
spec:
ports:
- name: jaeger-query
port: 80
protocol: TCP
targetPort: 8080
selector:
jaeger-infra: query-pod
type: LoadBalancer
作为参考,您可以在博客链接--https://github.com/jaegertracing/jaeger-openshift/blob/KeycloakSecuringUI/production/jaeger-production-template.yml里看到完整的模板文件。

部署
现在我们已经一切准备就绪了,那么就开始部署Jaeger到我们的OpenShift集群上吧。请您在前续步骤里存储了YAML文件的相同目录中,运行以下的命令。我们在此引用到的名称是jaeger-production-template.yml:
oc process -fjaeger-production-template.yml | oc create -n jaeger -f -
在开始运行的头几分钟内,如果podjaeger-queryjaeger-collector出现失败的话并无大碍,Cassandra(译者注:Cassandra是一套开源分布式数据库管理系统,用于储存特别大的数据)仍将会完成启动。最终,该服务也会启动并运行。
一旦准备好了接收服务,请点击路径(route)的URL(https://jaeger-query-jaeger.127.0.0.1.nip.io)。一个由Keycloak服务器所提供的登录界面就会呈现在您眼前。请使用您在前续步骤中设置好的凭证进行登录,之后您就可以顺利到达Jaeger的用户界面了。

结论
在这个练习中,我们了解到了如何为Jaeger的查询pod添加一个sidecar作为安全代理。它让所有的入向请求都传递到sidecar,而Keycloak的所有特性,例如:双因素认证、服务帐户、单点登录、暴力攻击保护、LDAP支持、等都仍然是透明可用的。
入门指南

使用上面的搜索栏输入关键字、短语或问题,搜索问题的答案。

我们希望您在这里的旅程尽可能顺利,因此这里有一些链接可以帮助您快速熟悉思科社区:









快捷链接