Установка
WARNING
Этот документ по развертыванию применим только к сценариям интеграции платформы контейнеров с системой трассировки.
Компоненты Tracing и Service Mesh являются взаимоисключающими. Если вы уже развернули компонент Service Mesh, пожалуйста, сначала удалите его.
Данное руководство предоставляет администраторам кластера процесс установки системы трассировки на кластер Alauda Container Platform.
Требования:
- У вас есть доступ к кластеру Alauda Container Platform с учётной записью, обладающей правами
platform-admin-system
.
- У вас установлен CLI
kubectl
.
- Компонент
Elasticsearch
настроен для хранения данных трассировки, включая URL доступа и информацию Basic Auth
.
Содержание
Установка Jaeger Operator
Установка Jaeger Operator через Веб-консоль
Вы можете установить Jaeger Operator из раздела Marketplace → OperatorHub в Alauda Container Platform, где перечислены доступные операторы.
Шаги
-
В режиме Administrator веб-консоли выберите кластер, в котором хотите развернуть Jaeger Operator, затем перейдите в Marketplace → OperatorHub.
-
Используйте строку поиска, чтобы найти Alauda build of Jaeger
в каталоге. Нажмите на заголовок Alauda build of Jaeger.
-
Ознакомьтесь с вводной информацией об операторе на странице Alauda build of Jaeger. Нажмите Install.
-
На странице Install:
- Выберите Manual для Upgrade Strategy. При стратегии одобрения
Manual
OLM создаст запросы на обновление. Как администратор кластера, вы должны вручную одобрять запросы OLM для обновления оператора до новой версии.
- Выберите канал stable (Default).
- Выберите Recommended для Installation Location. Установите оператор в рекомендуемое пространство имён
jaeger-operator
, чтобы оператор мог мониторить и быть доступным во всех пространствах имён кластера.
-
Нажмите Install.
-
Убедитесь, что в поле Status отображается Succeeded, чтобы подтвердить корректную установку Jaeger Operator.
-
Проверьте, что все компоненты Jaeger Operator успешно установлены. Войдите в кластер через терминал и выполните команду:
kubectl -n jaeger-operator get csv
Пример вывода
NAME DISPLAY VERSION REPLACES PHASE
jaeger-operator.vx.x.0 Jaeger Operator x.x.0 Succeeded
Если в поле PHASE
указано Succeeded
, значит оператор и его компоненты установлены успешно.
Развёртывание экземпляра Jaeger
Экземпляр Jaeger и связанные с ним ресурсы можно установить с помощью скрипта install-jaeger.sh
, который принимает три параметра:
--es-url
: URL доступа к Elasticsearch.
--es-user-base64
: имя пользователя Basic Auth
для Elasticsearch, закодированное в base64.
--es-pass-base64
: пароль Basic Auth
для Elasticsearch, закодированный в base64.
Скопируйте скрипт установки из DETAILS, войдите в кластер, где хотите установить, сохраните его как install-jaeger.sh
и выполните после предоставления прав на выполнение:
DETAILS
#!/bin/bash
set -euo pipefail
CLUSTER_NAME=$(kubectl get configmap global-info -n kube-public -o jsonpath='{.data.clusterName}')
echo "CLUSTER_NAME: ${CLUSTER_NAME}"
# default values
TARGET_NAMESPACE="cpaas-system"
JAEGER_INSTANCE_NAME="jaeger-prod"
JAEGER_BASEPATH_SUFFIX="/acp/jaeger"
JAEGER_ES_INDEX_PREFIX=acp-tracing-$CLUSTER_NAME
# get arg
while [ "$#" -gt 0 ]; do
case $1 in
--es-url=*)
ES_URL="${1#*=}"
;;
--es-user-base64=*)
ES_USER_BASE64="${1#*=}"
;;
--es-pass-base64=*)
ES_PASS_BASE64="${1#*=}"
;;
--target-namespace=*)
TARGET_NAMESPACE="${1#*=}"
;;
--jaeger-instance-name=*)
JAEGER_INSTANCE_NAME="${1#*=}"
;;
--jaeger-basepath-suffix=*)
JAEGER_BASEPATH_SUFFIX="${1#*=}"
;;
--jaeger-es-index-prefix=*)
JAEGER_ES_INDEX_PREFIX="${1#*=}"
;;
*)
echo "unknown argument: $1"
exit 1
;;
esac
shift
done
# print arg
echo "ES_URL: $ES_URL"
echo "ES_USER_BASE64: $ES_USER_BASE64"
echo "ES_PASS_BASE64: $ES_PASS_BASE64"
echo "TARGET_NAMESPACE: $TARGET_NAMESPACE"
echo "JAEGER_INSTANCE_NAME: $JAEGER_INSTANCE_NAME"
echo "JAEGER_BASEPATH_SUFFIX: $JAEGER_BASEPATH_SUFFIX"
echo "JAEGER_ES_INDEX_PREFIX: $JAEGER_ES_INDEX_PREFIX"
# get global-info from ConfigMap
ISSUER_URL=$(kubectl get configmap global-info -n kube-public -o jsonpath='{.data.oidcIssuer}')
CLIENT_ID=$(kubectl get configmap global-info -n kube-public -o jsonpath='{.data.oidcClientID}')
CLIENT_SECRET=$(kubectl get configmap global-info -n kube-public -o jsonpath='{.data.oidcClientSecret}')
CLIENT_SECRET_BASE64=$(echo -n "${CLIENT_SECRET}" | base64 -w0)
PLATFORM_URL=$(kubectl get configmap global-info -n kube-public -o jsonpath='{.data.platformURL}')
echo "PLATFORM_URL: ${PLATFORM_URL}"
JAEGER_BASEPATH="clusters/$CLUSTER_NAME$JAEGER_BASEPATH_SUFFIX"
_apply_resource() {
if [ -z "$1" ]; then
echo "Usage: _apply_resource <yaml_content>"
return 1
fi
local yaml_content="$1"
echo "$yaml_content" | kubectl apply -f -
}
_install_configmap() {
local yaml_content=$(cat <<EOF
apiVersion: v1
data:
OAUTH2_PROXY_CLIENT_ID: $CLIENT_ID
OAUTH2_PROXY_COOKIE_SECURE: "false"
OAUTH2_PROXY_EMAIL_DOMAINS: "*"
OAUTH2_PROXY_HTTP_ADDRESS: 0.0.0.0:4180
OAUTH2_PROXY_INSECURE_OIDC_ALLOW_UNVERIFIED_EMAIL: "true"
OAUTH2_PROXY_OIDC_ISSUER_URL: $ISSUER_URL
OAUTH2_PROXY_PROVIDER: oidc
OAUTH2_PROXY_PROXY_PREFIX: /$JAEGER_BASEPATH/oauth2
OAUTH2_PROXY_REDIRECT_URL: $PLATFORM_URL/$JAEGER_BASEPATH/oauth2/callback
OAUTH2_PROXY_SCOPE: openid profile email groups ext
OAUTH2_PROXY_SKIP_JWT_BEARER_TOKENS: "true"
OAUTH2_PROXY_SKIP_PROVIDER_BUTTON: "true"
OAUTH2_PROXY_SSL_INSECURE_SKIP_VERIFY: "true"
OAUTH2_PROXY_UPSTREAMS: http://127.0.0.1:16686
kind: ConfigMap
metadata:
name: $JAEGER_INSTANCE_NAME-oauth2-proxy
namespace: $TARGET_NAMESPACE
EOF
)
_apply_resource "$yaml_content"
}
_install_secret() {
local yaml_content=$(cat <<EOF
apiVersion: v1
data:
OAUTH2_PROXY_CLIENT_SECRET: $CLIENT_SECRET_BASE64
OAUTH2_PROXY_COOKIE_SECRET: $CLIENT_SECRET_BASE64
kind: Secret
metadata:
name: $JAEGER_INSTANCE_NAME-oauth2-proxy
namespace: $TARGET_NAMESPACE
type: Opaque
---
apiVersion: v1
data:
ES_PASSWORD: $ES_PASS_BASE64
ES_USERNAME: $ES_USER_BASE64
kind: Secret
metadata:
name: $JAEGER_INSTANCE_NAME-es-basic-auth
namespace: $TARGET_NAMESPACE
type: Opaque
EOF
)
_apply_resource "$yaml_content"
}
_install_sa() {
local yaml_content=$(cat <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: $JAEGER_INSTANCE_NAME-sa
namespace: $TARGET_NAMESPACE
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: $JAEGER_INSTANCE_NAME-role
namespace: $TARGET_NAMESPACE
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: $JAEGER_INSTANCE_NAME-rb
namespace: $TARGET_NAMESPACE
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: $JAEGER_INSTANCE_NAME-role
subjects:
- kind: ServiceAccount
name: $JAEGER_INSTANCE_NAME-sa
namespace: $TARGET_NAMESPACE
EOF
)
_apply_resource "$yaml_content"
}
_install_jaeger() {
local yaml_content=$(cat <<EOF
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: $JAEGER_INSTANCE_NAME
namespace: $TARGET_NAMESPACE
spec:
collector:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/name: $JAEGER_INSTANCE_NAME-collector
topologyKey: kubernetes.io/hostname
replicas: 1
resources:
limits:
cpu: "2"
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
imagePullSecrets:
- name: global-registry-auth
ingress:
enabled: false
labels:
service_name: jaeger
query:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/name: $JAEGER_INSTANCE_NAME-query
topologyKey: kubernetes.io/hostname
annotations:
oauth2-proxy.github.io/image: ""
oauth2-proxy.github.io/inject: "true"
oauth2-proxy.github.io/oidc-configmap: $JAEGER_INSTANCE_NAME-oauth2-proxy
oauth2-proxy.github.io/oidc-secret: $JAEGER_INSTANCE_NAME-oauth2-proxy
oauth2-proxy.github.io/proxyCPULimit: 100m
oauth2-proxy.github.io/proxyMemoryLimit: 128Mi
options:
query:
base-path: /$JAEGER_BASEPATH
replicas: 1
resources:
limits:
cpu: "1"
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
resources:
limits:
cpu: 100m
memory: 300Mi
requests:
cpu: 100m
memory: 300Mi
sampling:
options: {}
serviceAccount: $JAEGER_INSTANCE_NAME-sa
storage:
dependencies:
enabled: false
resources: {}
schedule: 55 23 * * *
elasticsearch:
name: elasticsearch
nodeCount: 3
redundancyPolicy: SingleRedundancy
esIndexCleaner:
enabled: true
numberOfDays: 7
resources: {}
schedule: 55 23 * * *
esRollover:
resources: {}
schedule: 0 0 * * *
options:
es.asm.cname: $JAEGER_INSTANCE_NAME-es-basic-auth
es.asm.cnamespace: $TARGET_NAMESPACE
es.index-prefix: $JAEGER_ES_INDEX_PREFIX
es.max-span-age: 168h0m0s
es.server-urls: $ES_URL
es.tls.enabled: true
es.tls.skip-host-verify: true
secretName: ""
type: elasticsearch
strategy: production
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
operator: Exists
- effect: NoSchedule
key: node-role.kubernetes.io/master
operator: Exists
ui:
options:
dependencies:
menuEnabled: false
EOF
)
_apply_resource "$yaml_content"
}
_install_pod_monitor() {
local yaml_content=$(cat <<EOF
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
labels:
monitoring: pods
prometheus: kube-prometheus
name: $JAEGER_INSTANCE_NAME-monitor
namespace: $TARGET_NAMESPACE
spec:
jobLabel: app.kubernetes.io/name
namespaceSelector:
matchNames:
- $TARGET_NAMESPACE
podMetricsEndpoints:
- interval: 60s
path: /metrics
port: admin-http
selector:
matchLabels:
app.kubernetes.io/instance: $JAEGER_INSTANCE_NAME
EOF
)
_apply_resource "$yaml_content"
}
_install_ingress() {
local alb_annotation=""
if [[ "$CLUSTER_NAME" == "global" ]]; then
alb_annotation=$(cat <<EOF
alb.ingress.cpaas.io/rewrite-request: |
{"headers_var":{"Authorization":"cookie_cpaas_id_token"}}
EOF
)
fi
local ingress_class=""
if [[ "$CLUSTER_NAME" != "global" ]]; then
ingress_class=" ingressClassName: cpaas-system"
fi
local yaml_content=$(cat <<EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: $JAEGER_INSTANCE_NAME-query
namespace: $TARGET_NAMESPACE
annotations:
nginx.ingress.kubernetes.io/enable-cors: "true"
$alb_annotation
spec:
$ingress_class
rules:
- http:
paths:
- path: /$JAEGER_BASEPATH
pathType: ImplementationSpecific
backend:
service:
name: $JAEGER_INSTANCE_NAME-query
port:
number: 4180
EOF
)
_apply_resource "$yaml_content"
}
# final install
_install_configmap
_install_secret
_install_sa
_install_jaeger
_install_pod_monitor
_install_ingress
echo "Jaeger UI access address: $PLATFORM_URL/$JAEGER_BASEPATH"
echo "Jaeger installation completed"
Пример запуска скрипта:
./install-jaeger.sh --es-url='https://xxx' --es-user-base64='xxx' --es-pass-base64='xxx'
Пример вывода скрипта:
CLUSTER_NAME: <cluster>
ES_URL: https://xxx
ES_USER_BASE64: xxx
ES_PASS_BASE64: xxx
TARGET_NAMESPACE: cpaas-system
JAEGER_INSTANCE_NAME: jaeger-prod
JAEGER_BASEPATH_SUFFIX: /acp/jaeger
JAEGER_ES_INDEX_PREFIX: acp-tracing-<cluster>
PLATFORM_URL: https://xxx
configmap/jaeger-prod-oauth2-proxy created
secret/jaeger-prod-oauth2-proxy created
secret/jaeger-prod-es-basic-auth created
serviceaccount/jaeger-prod-sa created
role.rbac.authorization.k8s.io/jaeger-prod-role created
rolebinding.rbac.authorization.k8s.io/jaeger-prod-rb created
jaeger.jaegertracing.io/jaeger-prod created
podmonitor.monitoring.coreos.com/jaeger-prod-monitor created
ingress.networking.k8s.io/jaeger-prod-query created
Jaeger UI access address: <platform-url>/clusters/<cluster>/acp/jaeger
Jaeger installation completed
Установка OpenTelemetry Operator
Установка OpenTelemetry Operator через Веб-консоль
Вы можете установить OpenTelemetry Operator из раздела Marketplace → OperatorHub в Alauda Container Platform, где перечислены доступные операторы.
Шаги
-
В режиме Administrator веб-консоли выберите кластер, в котором хотите развернуть OpenTelemetry Operator, затем перейдите в Marketplace → OperatorHub.
-
Используйте строку поиска, чтобы найти Alauda build of OpenTelemetry
в каталоге. Нажмите на заголовок Alauda build of OpenTelemetry.
-
Ознакомьтесь с вводной информацией об операторе на странице Alauda build of OpenTelemetry. Нажмите Install.
-
На странице Install:
- Выберите Manual для Upgrade Strategy. При стратегии одобрения
Manual
OLM создаст запросы на обновление. Как администратор кластера, вы должны вручную одобрять запросы OLM для обновления оператора до новой версии.
- Выберите канал alpha (Default).
- Выберите Recommended для Installation Location. Установите оператор в рекомендуемое пространство имён
opentelemetry-operator
, чтобы оператор мог мониторить и быть доступным во всех пространствах имён кластера.
-
Нажмите Install.
-
Убедитесь, что в поле Status отображается Succeeded, чтобы подтвердить корректную установку OpenTelemetry Operator.
-
Проверьте, что все компоненты OpenTelemetry Operator успешно установлены. Войдите в кластер через терминал и выполните команду:
kubectl -n opentelemetry-operator get csv
Пример вывода
NAME DISPLAY VERSION REPLACES PHASE
openTelemetry-operator.vx.x.0 OpenTelemetry Operator x.x.0 Succeeded
Если в поле PHASE
указано Succeeded
, значит оператор и его компоненты установлены успешно.
Развёртывание экземпляров OpenTelemetry
Экземпляры OpenTelemetry и связанные с ними ресурсы можно установить с помощью скрипта install-otel.sh
.
Скопируйте скрипт установки из DETAILS, войдите в кластер, где хотите установить, сохраните его как install-otel.sh
и выполните после предоставления прав на выполнение:
DETAILS
#!/bin/bash
set -euo pipefail
TARGET_NAMESPACE="cpaas-system"
# get global-info from ConfigMap
CLUSTER_NAME=$(kubectl get configmap global-info -n kube-public -o jsonpath='{.data.clusterName}')
echo "CLUSTER_NAME: ${CLUSTER_NAME}"
_apply_resource() {
if [ -z "$1" ]; then
echo "Usage: _apply_resource <yaml_content>"
return 1
fi
local yaml_content="$1"
echo "$yaml_content" | kubectl apply -f -
}
_install_rbac() {
local yaml_content=$(cat <<EOF
apiVersion: v1
imagePullSecrets:
- name: global-registry-auth
kind: ServiceAccount
metadata:
name: otel-collector
namespace: $TARGET_NAMESPACE
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: otel-collector:cpaas-system:cluster-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: otel-collector
namespace: $TARGET_NAMESPACE
EOF
)
_apply_resource "$yaml_content"
}
_install_otel_collector() {
local yaml_content=$(cat <<EOF
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
name: otel
namespace: $TARGET_NAMESPACE
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app: otel-collector
topologyKey: kubernetes.io/hostname
config:
exporters:
debug: {}
otlp:
balancer_name: round_robin
endpoint: dns:///jaeger-prod-collector-headless.$TARGET_NAMESPACE:4317
tls:
insecure: true
prometheus:
endpoint: 0.0.0.0:8889
extensions:
health_check:
endpoint: 0.0.0.0:13133
processors:
batch: {}
filter/metric_apis:
metrics:
datapoint:
- attributes["http.route"] == "/actuator/health" or attributes["uri"] == "/actuator/health"
- attributes["http.route"] == "/actuator/prometheus" or attributes["uri"] == "/actuator/prometheus"
transform:
metric_statements:
- context: datapoint
statements:
- delete_key(attributes, "inner.client.ms.name")
- delete_key(attributes, "inner.client.ms.namespace")
- delete_key(attributes, "inner.client.cluster.name")
- delete_key(attributes, "inner.client.env.type")
- set(attributes["namespace"], resource.attributes["k8s.namespace.name"])
- set(attributes["container"], resource.attributes["k8s.container.name"])
- set(attributes["service_name"], resource.attributes["service.name"])
- set(attributes["pod"], resource.attributes["k8s.pod.name"])
memory_limiter:
check_interval: 5s
limit_percentage: 85
spike_limit_percentage: 25
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
service:
extensions:
- health_check
pipelines:
metrics:
exporters:
- debug
- prometheus
processors:
- memory_limiter
- filter/metric_apis
- transform
- batch
receivers:
- otlp
traces:
exporters:
- debug
- otlp
processors:
- memory_limiter
- batch
receivers:
- otlp
telemetry:
logs:
level: info
metrics:
address: 0.0.0.0:8888
level: detailed
managementState: managed
mode: deployment
replicas: 1
resources:
limits:
cpu: "2"
memory: 1Gi
requests:
cpu: 250m
memory: 512Mi
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
serviceAccount: otel-collector
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
operator: Exists
- effect: NoSchedule
key: node-role.kubernetes.io/master
operator: Exists
upgradeStrategy: automatic
EOF
)
_apply_resource "$yaml_content"
}
_install_instrumentation() {
local yaml_content=$(cat <<EOF
apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
name: acp-common-java
namespace: $TARGET_NAMESPACE
spec:
env:
- name: SERVICE_CLUSTER
value: "$CLUSTER_NAME"
- name: OTEL_TRACES_EXPORTER
value: otlp
- name: OTEL_METRICS_EXPORTER
value: otlp
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: http://otel-collector.$TARGET_NAMESPACE:4317
- name: OTEL_SERVICE_NAME
value: \$(SERVICE_NAME).\$(SERVICE_NAMESPACE)
- name: OTEL_RESOURCE_ATTRIBUTES
value: service.namespace=\$(SERVICE_NAMESPACE),cluster.name=\$(SERVICE_CLUSTER)
sampler:
type: parentbased_traceidratio
argument: "1"
EOF
)
_apply_resource "$yaml_content"
}
_install_service_monitor() {
local yaml_content=$(cat <<EOF
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
monitoring: services
prometheus: kube-prometheus
name: otel-collector-monitoring
namespace: $TARGET_NAMESPACE
spec:
endpoints:
- interval: 60s
path: /metrics
port: monitoring
jobLabel: app.kubernetes.io/name
namespaceSelector:
matchNames:
- $TARGET_NAMESPACE
selector:
matchLabels:
app.kubernetes.io/instance: $TARGET_NAMESPACE.otel
operator.opentelemetry.io/collector-service-type: monitoring
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
monitoring: services
prometheus: kube-prometheus
name: otel-collector
namespace: $TARGET_NAMESPACE
spec:
endpoints:
- honorLabels: true
interval: 60s
path: /metrics
port: prometheus
jobLabel: app.kubernetes.io/name
namespaceSelector:
matchNames:
- $TARGET_NAMESPACE
selector:
matchLabels:
app.kubernetes.io/instance: $TARGET_NAMESPACE.otel
operator.opentelemetry.io/collector-service-type: base
EOF
)
_apply_resource "$yaml_content"
}
_install_rbac
_install_otel_collector
_install_instrumentation
_install_service_monitor
echo "OpenTelemetry installation completed"
Пример запуска скрипта:
Пример вывода скрипта:
CLUSTER_NAME: cluster-xxx
serviceaccount/otel-collector created
clusterrolebinding.rbac.authorization.k8s.io/otel-collector:cpaas-system:cluster-admin created
opentelemetrycollector.opentelemetry.io/otel created
instrumentation.opentelemetry.io/acp-common-java created
servicemonitor.monitoring.coreos.com/otel-collector-monitoring created
servicemonitor.monitoring.coreos.com/otel-collector created
OpenTelemetry installation completed
Включение переключателя функций
Система трассировки находится в фазе Alpha и требует ручного включения переключателя функции acp-tracing-ui
в разделе Feature Switch.
Затем перейдите в представление Container Platform, и откройте Observability → Tracing, чтобы просмотреть функцию трассировки.
Удаление Tracing
Удаление экземпляра OpenTelemetry
Войдите в установленный кластер и выполните следующие команды для удаления экземпляра OpenTelemetry и связанных ресурсов.
kubectl -n cpaas-system delete servicemonitor otel-collector-monitoring
kubectl -n cpaas-system delete servicemonitor otel-collector
kubectl -n cpaas-system delete instrumentation acp-common-java
kubectl -n cpaas-system delete opentelemetrycollector otel
kubectl delete clusterrolebinding otel-collector:cpaas-system:cluster-admin
kubectl -n cpaas-system delete serviceaccount otel-collector
Удаление OpenTelemetry Operator
Вы можете удалить OpenTelemetry Operator через режим Administrator в веб-консоли.
Шаги
- В разделе Marketplace → OperatorHub используйте строку поиска для поиска
Alauda build of OpenTelemetry
.
- Нажмите на заголовок Alauda build of OpenTelemetry, чтобы открыть детали.
- На странице деталей Alauda build of OpenTelemetry нажмите кнопку Uninstall в правом верхнем углу.
- В окне Uninstall "opentelemetry-operator"? нажмите Uninstall.
Удаление экземпляра Jaeger
Войдите в установленный кластер и выполните следующие команды для удаления экземпляра Jaeger и связанных ресурсов.
kubectl -n cpaas-system delete ingress jaeger-prod-query
kubectl -n cpaas-system delete podmonitor jaeger-prod-monitor
kubectl -n cpaas-system delete jaeger jaeger-prod
kubectl -n cpaas-system delete rolebinding jaeger-prod-rb
kubectl -n cpaas-system delete role jaeger-prod-role
kubectl -n cpaas-system delete serviceaccount jaeger-prod-sa
kubectl -n cpaas-system delete secret jaeger-prod-oauth2-proxy
kubectl -n cpaas-system delete secret jaeger-prod-es-basic-auth
kubectl -n cpaas-system delete configmap jaeger-prod-oauth2-proxy
Удаление Jaeger Operator
Вы можете удалить Jaeger Operator через режим Administrator в веб-консоли.
Шаги
- В разделе Marketplace → OperatorHub используйте строку поиска для поиска
Alauda build of Jaeger
.
- Нажмите на заголовок Alauda build of Jaeger, чтобы открыть детали.
- На странице деталей Alauda build of Jaeger нажмите кнопку Uninstall в правом верхнем углу.
- В окне Uninstall "jaeger-operator"? нажмите Uninstall.