在 Red Hat OpenShift 上管理 Instana 代理
安装代理后,请根据需要进行配置和管理。 请参阅以下列表,了解 Red Hat OpenShift 上所有可用的代理配置选项。
检查 Pod 状态
安装代理后,可以使用以下命令检查代理部署中 pod 的状态:
kubectl get pods -n instana-agent
kubectl get agent instana-agent -n instana-agent -o yaml | yq ".status"
在良好的部署中,命名空间中所有 pod 的 "STATUS都必须是 "Running。 如下面的示例所示,"instana-agent自定义资源也应显示 "status: Running
$ kubectl get pods -n instana-agent
NAME READY STATUS RESTARTS AGE
controller-manager-6478cb4c6f-8s29b 1/1 Running 0 70m
instana-agent-8ftnj 1/1 Running 0 70m
instana-agent-9w4vc 1/1 Running 0 70m
instana-agent-k8sensor-5bbf568976-5pjk2 1/1 Running 0 3h2m
instana-agent-k8sensor-5bbf568976-h96hr 1/1 Running 0 3h2m
instana-agent-k8sensor-5bbf568976-lnbsg 1/1 Running 0 3h2m
instana-agent-zpmrj 1/1 Running 0 70m
$ kubectl get agent instana-agent -n instana-agent -o yaml | yq ".status"
conditions:
- lastTransitionTime: "2024-08-06T08:12:03Z"
message: most recent reconcile of agent CR completed without issue
observedGeneration: 2
...
observedGeneration: 2
oldVersionsUpdated: true
operatorVersion: 0.0.1-dev
status: Running
配置代理程序
您可以根据安装代理的方式,通过两种不同的方法配置适用于 Kubernetes 和 Red Hat OpenShift 的 Instana 代理。
配置通过 operator 安装的代理
要配置通过操作员安装的 Instana 代理,请完成以下步骤:
打开自定义资源文件 YAML
instana-agent.customresource.yaml。将配置保存在 "
spec.agent.configuration_yaml下。 请参阅以下示例:spec: agent: configuration_yaml: | # Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1'运行以下命令以应用更改:
kubectl apply -f instana-agent.customresource.yaml
有关 YAML 文件的详细示例,请参见 instana_v1_extended_instanaagent.yaml。
有关代理配置的更多信息,请参阅 《使用代理配置文件配置主机代理》。
配置通过 Helm 图表安装的代理
要配置通过 Helm 图表安装的 Instana 代理,请选择以下任一方法:
使用标记 "
--set agent.configuration_yaml=<config>在命令行中指定配置。将配置添加到Helm图表配置文件 "
values.yaml中。 使用 "-f标记将文件传递给Helminstall(安装过程中)或Helmupgrade(安装后)命令。
有关所有配置参数的详细列表,请参阅 Instana Helm Chart。
自定义 Container Registry
根据您的Red Hat OpenShift环境,您可能需要自定义Red Hat OpenShift Container Registry。
添加图片流
如果无法从IBM Cloud Container Registryicr.io) 提取映像,则需要手动添加两个映像流。 在Red Hat OpenShift Container Registry中,转到 "instana-agent命名空间并添加以下图像流:
Name: instana-agent
Image: icr.io/instana/agent:latest
生成的图像流为 "docker-registry.default.svc:5000/instana-agent/instana-agent:latest。
Name: k8sensor
Image: icr.io/instana/k8sensor:latest
生成的图像流为 "docker-registry.default.svc:5000/instana-agent/k8sensor:latest。
在 YAML 中使用各自的新映像流。
使用 ConfigMap 自定义监控
更新代理安装
根据您的安装方式,您可以通过多种方式更新适用于 Red Hat OpenShift 的 Instana 代理。
更新交换机安装
更新代理安装涉及两个步骤:
- 更新操作员
- 更新图像
若要通过 OLM 将操作员更新至最新版本,请按照 Red Hat OpenShift 文档中 “手动批准待处理的操作员更新 ”一节所述的步骤进行操作。
您还可以将操作员配置为自动更新。 如需更多信息,请参阅《 更改操作员的更新通道》。
若要通过 Instana 用户界面手动更新操作员,请执行以下步骤:
在 Instana 用户界面的首页上,点击 “代理与收集器 ”。 在 “ Instana ”的“代理”选项卡中,选择 “安装代理 ”。
在代理部署目录页面上,单击瓦片OpenShift- 操作员。
复制并运行命令以部署新操作员。 请参见以下命令示例:
kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml注意: 若要将操作员更新至特定版本,请运行以下命令:
有关可用操作员版本的列表,请参阅 《 Instana 代理操作员》的发行说明。kubectl apply -f https://github.com/instana/instana-agent-operator/releases/download/<operator_version>/instana-agent-operator.yaml
更新操作员后,请继续更新图像。
更新 Helm 图表安装
更新代理安装涉及两个步骤:
- 更新 Helm 图表
- 更新图像
要更新代理 Helm 图表,请运行以下命令:
helm pull --repo https://agents.instana.io/helm --untar instana-agent
kubectl apply -f instana-agent/crds
oc adm policy add-scc-to-user privileged -z instana-agent -n instana-agent
oc adm policy add-scc-to-user anyuid -z instana-agent-remote -n instana-agent
helm upgrade --namespace instana-agent instana-agent \
--repo https://agents.instana.io/helm instana-agent \
--reuse-values
--version <helm-version> 添加该标志。 有关可用的 Helm 图表版本列表,请参阅 Instana 代理 Helm 图表的发布说明。instana-agent/crds 文件夹。 因此,该 kubectl apply -f instana-agent/crds 步骤无需执行。更新操作员后,请继续更新图像。
更新 Instana 代理镜像
instana-agent DaemonSet和 "k8sensor部署设置为在 pod 启动时提取最新映像。 要强制更新,请运行以下命令:
kubectl rollout restart ds instana-agent -n instana-agent
kubectl rollout restart deployment k8sensor -n instana-agent
Instana 未提供自动更新这些图片的机制。 您可以选择符合自身需求的解决方案,例如 CronJobs 为 restart 工作负载分配足够的权限,或者使用更高级的 OpenShift 工具( 如imagestreams ),详见 GitOps。
使用“代理管理”仪表板管理代理
为受监控的应用程序配置网络访问
您必须配置以下类型应用程序的网络访问权限,以便它们与代理进行通信:
- Node.js
- Go
- Ruby
- Python
- .NET Core
这些应用程序需要知道代理的监听 IP 地址。 代理会自动监听主机 IP。 您可以使用以下 Downward API 代码片段,将环境变量中的主机 IP 传递给应用程序 Pod:
spec:
containers:
env:
- name: INSTANA_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
监控控制平面节点(原称主节点)
监控 Kubernetes NGINX Ingress
向多个后端报告
若要使用 helm 和操作员添加其他后端,请运行以下命令。 您可以使用其他后端来配置您的 Instana 代理,也可以留空。
使用 helm :
helm install instana-agent \ --repo https://agents.instana.io/helm \ --namespace instana-agent \ --create-namespace \ --set agent.key=my-key \ --set agent.endpointHost='<your_host_agent_endpoint>' \ --set agent.endpointPort=443 \ --set cluster.name='<your_cluster_name>' \ --set zone.name='zone-name' \ --set "agent.additionalBackends[0].endpointHost=<your_host_agent_endpoint>" \ --set "agent.additionalBackends[0].key=<your_agent_key>" \ --set "agent.additionalBackends[0].endpointPort=443" \ --set "agent.additionalBackends[1].endpointHost=<your_other_host_agent_endpoint>" \ --set "agent.additionalBackends[1].key=<your_other_agent_key>" \ --set "agent.additionalBackends[1].endpointPort=443" \ instana-agent使用操作符:
apiVersion: instana.io/v1 kind: InstanaAgent metadata: name: instana-agent namespace: instana-agent spec: zone: name: edited-zone # (optional) name of the zone of the host cluster: name: my-cluster agent: endpointHost: <your_host_agent_endpoint> endpointPort: "443" env: {} key: <your_agent_key> additionalBackends: - endpointHost: <your_host_agent_endpoint> endpointPort: "443" key: <your_agent_key> configuration_yaml: | # You can leave this empty, or use this to configure your instana agent. # See https://github.com/instana/instana-agent-operator/blob/main/config/samples/instana_v1_extended_instanaagent.yaml for the extended version.
若要启用从 Kubernetes 代理向多个后端发送报告的功能,请参阅 Docker 代理配置。
配置机密
您可以使用 "秘密 "来存储和管理凭证、令牌或密钥等敏感数据。 更多详情请参阅 Kubernetes secrets。