jaeger-operator安装
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.
jaeger-operator安装
在一个成规模的微服务系统中,一个功能不单由这一个服务完成,而是多个服务协作来共同完成,但是如果其中一个服务出现了错误,对于错误的追踪,对于整个调用链的追踪便成为了难题.
好在外国佬遇到了这些问题,指定了opentracing
规范,并且提供了例如zipkin
,pinpoint
,jaeger
等工具供我们使用
jaeger组件如下:
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等资源
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK