8

jaeger-operator安装

 2 years ago
source link: https://tangxusc.github.io/2019/03/jaeger-operator%E5%AE%89%E8%A3%85/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

jaeger-operator安装

在一个成规模的微服务系统中,一个功能不单由这一个服务完成,而是多个服务协作来共同完成,但是如果其中一个服务出现了错误,对于错误的追踪,对于整个调用链的追踪便成为了难题.

好在外国佬遇到了这些问题,指定了opentracing规范,并且提供了例如zipkin,pinpoint,jaeger等工具供我们使用

jaeger组件如下:

architecture.png

1. elasticsearch

jaeger的存储是依赖cassandra或elasticsearch的,jaeger本身并不存储数据,在此处我们使用es来存储数据

$ kubectl apply -f https://gitee.com/tanx/kubernetes-test/raw/master/kubernetes/init-cn/efk-elasticsearch.yaml

elasticsearch 他妈的又需要存储支持,惊不惊喜,意不意外.

此处建议此es应和k8s中的日志收集使用一个es集群,方便管理,并且追踪数据并不需要支持事务等特性,符合日志存储模式.

2. jaeger operator

github中提供了operator的安装,直接使用就行

$ kubectl create namespace observability
$ kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/crds/jaegertracing_v1_jaeger_crd.yaml
$ kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/service_account.yaml
$ kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/role.yaml
$ kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/role_binding.yaml
$ kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/operator.yaml

注意:如果安装在其他命名空间中貌似不行… 起码我使用helm安装在jaeger命名空间中不行.

安装成功后等待几分钟就可以看到如下资源的成功运行

$ kubectl get all -n observability
NAME                                  READY   STATUS    RESTARTS   AGE
pod/jaeger-operator-69c987b98-grv9n   1/1     Running   0          23h

NAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/jaeger-operator   ClusterIP   10.108.199.153   <none>        8383/TCP   23h

NAME                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/jaeger-operator   1/1     1            1           23h

NAME                                        DESIRED   CURRENT   READY   AGE
replicaset.apps/jaeger-operator-69c987b98   1         1         1       23h

3. jaeger instance

创建了jaeger-operator后,就可以很简单启动jaeger的实例了

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: my-jaeger
spec:
  strategy: production
#  allInOne:
#    image: jaegertracing/all-in-one:latest
#    options:
#      log-level: debug
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: http://elasticsearch-logging.kube-system:9200
#  ingress:
#    enabled: true

其jaeger对象字段可在 github中查阅

$ kubectl apply -f https://gitee.com/tanx/kubernetes-test/raw/master/kubernetes/init/jaeger-instance.yaml

注意:jaeger-operator会自动给我们创建ingress等资源


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK