stackify/retraceStackify Retrace Container旨在解决无法在Docker主机系统安装Stackify Linux Agent时,通过Docker或Kubernetes容器环境部署Retrace的需求。Retrace是应用性能监控工具,该容器化方案支持在容器集群中实现Retrace的集成与运行,适用于Docker和Kubernetes环境。
--restart always确保服务持续运行适用于无法在Docker主机安装Stackify Linux Agent的容器化环境,需对应用进行性能监控的场景,包括独立Docker容器部署和Kubernetes集群部署。
通过以下配置部署Retrace DaemonSet,确保集群中每个节点运行Retrace容器。
YOUR_ACTIVATION_KEY、YOUR_ENVIRONMENT_NAME、YOUR_KUBERNETES_CLUSTER_NAME替换为实际值image: stackify/retrace为私有仓库地址yaml--- apiVersion: v1 kind: ServiceAccount metadata: name: stackify namespace: default automountServiceAccountToken: true --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: stackify rules: - apiGroups: [""] resources: - "pods" - "services" verbs: ["get", "list"] --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: stackify roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: stackify subjects: - kind: ServiceAccount name: stackify namespace: default --- apiVersion: apps/v1 kind: DaemonSet metadata: name: stackify-retrace spec: template: metadata: labels: app: stackify-retrace spec: serviceAccountName: stackify containers: - name: stackify-retrace image: stackify/retrace securityContext: runAsUser: 0 env: - name: STACKIFY_KEY value: "YOUR_ACTIVATION_KEY" - name: STACKIFY_ENV value: "YOUR_ENVIRONMENT_NAME" - name: STACKIFY_K8S_CLUSTER_NAME value: "YOUR_KUBERNETES_CLUSTER_NAME" volumeMounts: - name: hostfs mountPath: /hostfs readOnly: true - name: stackify mountPath: /var/stackify readOnly: false volumes: - name: hostfs hostPath: path: / - name: stackify hostPath: path: /var/stackify type: DirectoryOrCreate
Google Cloud环境
确保用户具有创建ServiceAccount的权限:
bashkubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user $(gcloud config get-value account)
Kubernetes版本<1.9
将DaemonSet的apiVersion修改为:
yamlapiVersion: extensions/v1beta1
为应用Pod配置Stackify卷和卷挂载,集成对应语言的Stackify Profiler(忽略"Install Retrace"步骤)。
支持的应用类型及Profiler文档:
Pod配置示例:
yamlvolumes: - name: stackify hostPath: path: /var/stackify type: DirectoryOrCreate
yamlvolumeMounts: - mountPath: /usr/local/stackify name: stackify
完整应用Pod配置示例:
yamlapiVersion: v1 kind: ReplicationController metadata: name: pod-name spec: replicas: 1 selector: app: app-name template: metadata: name: template-name labels: app: app-name spec: containers: - name: container-name image: application-image volumeMounts: - mountPath: /usr/local/stackify name: stackify volumes: - name: stackify hostPath: path: /var/stackify type: DirectoryOrCreate
向应用发送请求,在Retrace仪表板中确认监控数据正常显示。
bashdocker volume create stackify
bashdocker run -d --restart always \ -e "STACKIFY_KEY=YOUR_ACTIVATION_KEY" \ -e "STACKIFY_ENV=YOUR_ENVIRONMENT_NAME" \ -v stackify:/var/stackify \ -v /:/hostfs:ro \ --user 0:0 \ stackify/retrace:latest
注意:替换
YOUR_ACTIVATION_KEY和YOUR_ENVIRONMENT_NAME为实际值
配置应用容器挂载stackify卷,集成对应语言的Stackify Profiler(忽略"Install Retrace"步骤):
bashdocker run -v stackify:/usr/local/stackify [application-image]
向应用发送请求,在Retrace仪表板中确认监控数据正常显示。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务