请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科社区 关注
思科社区

  思科 CCO 登录
 找回密码
 立即注册

扫一扫,访问微社区

搜索
热搜: 邮件服务器
查看: 679|回复: 0

【小目标,一个“译”】+ 用Sidecar安全代理保护Jaeger(2)

[复制链接]
发表于 2018-7-3 11:19:20 | 显示全部楼层 |阅读模式
现在,我们需要来指定具有代理配置条目的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支持、等都仍然是透明可用的。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分2 (2 评价)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver | 思科社区  

GMT+8, 2018-10-23 18:30 , Processed in 0.090206 second(s), 32 queries .

京ICP备09041801号-187

版权所有 :copyright:1992-2019 思科系统  重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表