第 7 章 手动注入 sidecar

对于 Deployment 以外的控制器类型(如 StatefulSetsDaemonSet 等),您可以在规格中手动定义 Jaeger Agent sidecar。

以下片段显示了您可以在 Jaeger Agent sidecar 的 containers 部分中包含的手动定义:

StatefulSet 的 sidecar 定义示例

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: example-statefulset
  namespace: example-ns
  labels:
    app: example-app
spec:

    spec:
      containers:
        - name: example-app
          image: acme/myapp:myversion
          ports:
            - containerPort: 8080
              protocol: TCP
        - name: jaeger-agent
          image: registry.redhat.io/distributed-tracing/jaeger-agent-rhel7:<version>
           # The agent version must match the operator version
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 5775
              name: zk-compact-trft
              protocol: UDP
            - containerPort: 5778
              name: config-rest
              protocol: TCP
            - containerPort: 6831
              name: jg-compact-trft
              protocol: UDP
            - containerPort: 6832
              name: jg-binary-trft
              protocol: UDP
            - containerPort: 14271
              name: admin-http
              protocol: TCP
          args:
            - --reporter.grpc.host-port=dns:///jaeger-collector-headless.example-ns:14250
            - --reporter.type=grpc

然后,Jaeger Agent 可以通过 localhost 上的默认位置来访问。

7.1. 升级 Jaeger

Operator Lifecycle Manager (OLM) 控制集群中 Operator 的安装、升级和基于角色的访问控制 (RBAC)。OLM 在 OpenShift Container Platform 中默认运行。OLM 可以查询可用的 Operator 以及已安装的 Operator 的升级。如需了解有关 OpenShift Container Platform 如何处理升级的更多信息,请参阅 Operator Lifecycle Manager 文档。

Jaeger Operator 使用的更新方法是将受管 Jaeger 实例升级到与 Operator 相关的版本。安装新版本的 Jaeger Operator 时,由 Operator 管理的所有 Jaeger 应用程序实例都会升级到 Operator 的版本。例如,如果安装了 1.10 版本(包括 Operator 和后端组件),Operator 升级到了 1.11 版本,那么 Operator 就会在 Operator 升级完成后扫描运行 Jaeger 实例并将其升级到 1.11。