浏览 5.2k
近年来,Kubernetes
●
●
1.
2.
$ make clean
$ make DOCKERFILE=DockerfileWithOpentracing PREFIX=YOUR-PRIVATE-REGISTRY/nginx-ingress
$ make clean
$ make DOCKERFILE=DockerfileWithOpentracingForPlus PREFIX=YOUR-PRIVATE-REGISTRY/nginx-plus-ingress
3.
containers:
- image: IMAGE_WITH_OPENTRACING
$ kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-config
namespace: nginx-ingress
data:
opentracing: "True"
opentracing-tracer: "/usr/local/lib/libjaegertracing_plugin.so"
opentracing-tracer-config: |
{
"service_name": "nginx-ingress",
"sampler": {
"type": "const",
"param": 1
},
"reporter": {
"localAgentHostPort": "jaeger-agent.default.svc.cluster.local:6831"
}
}
$ kubectl apply –f nginx-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: app1-config
data:
nginx.conf: |-
user nginx;
worker_processes 1;
load_module modules/ngx_http_opentracing_module.so;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
opentracing_load_tracer /usr/local/lib/libjaegertracing_plugin.so
/etc/jaeger-config.json;
opentracing on;
server {
listen 80;
server_name example.com;
location / {
opentracing_propagate_context;
proxy_set_header Host $host;
proxy_pass http://app2-svc:80;
}
}
}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: jaeger-config-app1
data:
jaeger-config.json: |-
{
"service_name": "app1",
"sampler": {
"type": "const",
"param": 1
},
"reporter": {
"localAgentHostPort": "jaeger-agent.default.svc.cluster.local:6831"
}
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: app1
spec:
replicas: 1
selector:
matchLabels:
app: app1
template:
metadata:
labels:
app: app1
spec:
containers:
- name: app1
image: opentracing/nginx-opentracing
ports:
- containerPort: 80
volumeMounts:
- name: config-app1
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
readOnly: true
- name: config-jaeger
mountPath: /etc/jaeger-config.json
subPath: jaeger-config.json
readOnly: true
volumes:
- name: config-app1
configMap:
name: app1-config
- name: config-jaeger
configMap:
name: jaeger-config-app1
---
apiVersion: v1
kind: Service
metadata:
name: app1-svc
spec:
ports:
- port: 80
targetPort: 80
selector:
app: app1
运行以下命令部署第一个应用:
$ kubectl apply –f app1.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: app2-config
data:
nginx.conf: |-
user nginx;
worker_processes 1;
load_module modules/ngx_http_opentracing_module.so;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
opentracing_load_tracer /usr/local/lib/libjaegertracing_plugin.so
/etc/jaeger-config.json;
opentracing on;
server {
listen 80;
server_name example.com;
location / {
opentracing_propagate_context;
opentracing_tag app app2;
return 200 "Success!\n";
}
}
}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: jaeger-config-app2
data:
jaeger-config.json: |-
{
"service_name": "app2",
"sampler": {
"type": "const",
"param": 1
},
"reporter": {
"localAgentHostPort": "jaeger-agent.default.svc.cluster.local:6831"
}
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: app2
spec:
replicas: 1
selector:
matchLabels:
app: app2
template:
metadata:
labels:
app: app2
spec:
containers:
- name: app2
image: opentracing/nginx-opentracing
ports:
- containerPort: 80
volumeMounts:
- name: config-app2
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
readOnly: true
- name: config-jaeger
mountPath: /etc/jaeger-config.json
subPath: jaeger-config.json
readOnly: true
volumes:
- name: config-app2
configMap:
name: app2-config
- name: config-jaeger
configMap:
name: jaeger-config-app2
---
apiVersion: v1
kind: Service
metadata:
name: app2-svc
spec:
ports:
- port: 80
targetPort: 80
selector:
app: app2
$ kubectl apply -f app2.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: opentracing-ingress
annotations:
nginx.org/location-snippets: |
opentracing_propagate_context;
spec:
rules:
- host: example.com
http:
paths:
- path: /
backend:
serviceName: app1-svc
servicePort: 80
$ kubectl apply -f opentracing-ingress.yaml
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
app1-68fd9db45c-szqpr 1/1 Running 0 53m
app2-67c7788789-lvbgw 1/1 Running 0 53m
$ curl --resolve example.com:IC_HTTP_PORT:IC_IP_ADDRESS http://example.com:IC_HTTP_PORT/ --insecure
Success!
$ kubectl port-forward JAEGER_POD 16686:16686
按点赞数排序
按时间排序