antony@notes:~/ops-automation$ cat "Installing-the-Red-Hat-build-of-OpenTelemetry-by-using-the-CLI.md"
Installing the Red Hat build of OpenTelemetry by using the CLI
Installing the Red Hat build of OpenTelemetry by using the CLI
可以從命令列安裝 Red Hat 版的 OpenTelemetry。
1. 本篇文章 Openshift 環境資訊
- Openshift version:
4.18.22
1. 先決條件
- 具備 cluster-admin 角色的叢集管理員,且已啟用 OpenShift CLI(oc)的工作階段。
2. 開始安裝 Red Hat 版 OpenTelemetry Operator:
執行下列指令,為 Red Hat 版 OpenTelemetry Operator 建立專案:
oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: labels: kubernetes.io/metadata.name: openshift-opentelemetry-operator openshift.io/cluster-monitoring: "true" name: openshift-opentelemetry-operator EOF執行下列指令,建立 OperatorGroup:
oc apply -f - << EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-opentelemetry-operator namespace: openshift-opentelemetry-operator spec: upgradeStrategy: Default EOF執行下列指令,建立 Subscription:
oc apply -f - << EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: opentelemetry-product namespace: openshift-opentelemetry-operator spec: channel: stable installPlanApproval: Automatic name: opentelemetry-product source: cs-redhat-operator-index sourceNamespace: openshift-marketplace EOF執行下列指令,檢查該 Operator 的狀態:
oc get csv -n openshift-opentelemetry-operator執行結果 :
NAME DISPLAY VERSION REPLACES PHASE opentelemetry-operator.v0.127.0-2 Red Hat build of OpenTelemetry 0.127.0-2 opentelemetry-operator.v0.127.0-1 Succeeded
3. 建立的 OpenTelemetry Collector instance,建立一個您選擇的允許專案(permitted project):
若要建立不含 metadata 的專案,請執行下列指令:
oc new-project opentelemetry若要建立包含 metadata 的專案,請執行下列指令:
oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: opentelemetry EOF:::info 備註
可以在同一個叢集上的不同專案中,建立多個 OpenTelemetry Collector instance 。 :::
建立與切換工作目錄
mkdir -p "${HOME}"/wulin/openTelemetr; cd "${HOME}"/wulin/openTelemetr自訂 OpenTelemetryCollector 自訂資源 (CR)
nano openTelemetryCollector.yaml檔案內容如下:
apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel namespace: opentelemetry spec: mode: deployment config: receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 processors: batch: send_batch_size: 10000 timeout: 10s memory_limiter: check_interval: 1s limit_percentage: 50 spike_limit_percentage: 30 exporters: debug: {} service: pipelines: traces: receivers: [otlp] processors: [memory_limiter,batch] exporters: [debug]為 OpenTelemetryCollector 部署所選擇的project。不允許使用
openshift-前綴開頭的 project 名稱。請執行以下指令以建立自訂後的 CR:
oc -n opentelemetry apply -f openTelemetryCollector.yaml請執行以下指令,以驗證 OpenTelemetry Collector Pod 的
status.phase為Running,且其條件的type為Ready:oc -n opentelemetry get pod \ -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=opentelemetry.otel \ -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.phase}{"\t"}{.status.conditions[?(@.type=="Ready")].status}{"\n"}{end}'執行結果 :
otel-collector-75bfc8d889-4klkq Running True請執行以下指令以取得 OpenTelemetry Collector 服務:
oc -n opentelemetry get service \ -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=opentelemetry.otel執行結果 :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE otel-collector ClusterIP 10.98.50.143 <none> 14250/TCP,14268/TCP,6831/UDP,6832/UDP,9411/TCP 3m51s otel-collector-headless ClusterIP None <none> 14250/TCP,14268/TCP,6831/UDP,6832/UDP,9411/TCP 3m51s otel-collector-monitoring ClusterIP 10.98.180.38 <none> 8888/TCP 3m51s自動建立所需的 RBAC 資源
某些收集器 (Collector) 元件需要設定 RBAC 資源。
將下列權限新增至
opentelemetry-operator-controller-manage服務帳戶,如此一來 Red Hat build of OpenTelemetry Operator 就能自動建立它們:oc apply -f - << EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: generate-processors-rbac rules: - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles verbs: - create - delete - get - list - patch - update - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: generate-processors-rbac roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: generate-processors-rbac subjects: - kind: ServiceAccount name: opentelemetry-operator-controller-manager namespace: openshift-opentelemetry-operator EOF