通过 init 容器在 Kubernetes 中添加 APM Insight PHP 代理
以下步骤将指导您使用 init 容器方法,将 APM Insight PHP 代理集成到 Kubernetes 部署中。
创建一个空 volume,用于在 init 容器流程中复制代理文件。
volumes:
- name: apminsight-volume
步骤 2:
在您的 helm chart 或部署 YAML 文件中添加以下 initContainers 命令:
initContainers:
- name: init-apminsight
image: site24x7/apminsight-phpagent:latest
imagePullPolicy: Always
command:
["unzip", "/opt/apminsight.zip", "-d", "/opt"]
volumeMounts:
- name: apminsight-volume
mountPath: /opt/apminsight
步骤 3:
- 将步骤 1 中创建的 volume 挂载到您的应用容器中。
- 向应用容器添加以下环境变量:
- S247_LICENSE_KEY
- ZPA_APPLICATION_NAME
- 从 postStart 生命周期钩子运行安装脚本,并重启您的 Web 服务器。
注意 重启 Web 服务器时,对于基于 Apache 的服务器,请使用命令 /etc/init.d/apache2 reload 或 kill -USR1 1;对于基于 NGINX 或 FPM 的服务器,请使用命令 kill -USR2 1。
containers:
- name: php-app
image: my-php-app:8.2-alpine3.18-apache
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "chmod +x /apm/DockerInstallAgentPHP.sh && /apm/DockerInstallAgentPHP.sh && kill -USR1 1"]
env:
- name: S247_LICENSE_KEY
value: "your-license-key"
- name: ZPA_APPLICATION_NAME
value: "name-for-your-application"
ports:
- containerPort: 80
volumeMounts:
- mountPath: /apm
name: apminsight-volume
供参考的 YAML 部署文件示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-app
spec:
selector:
matchLabels:
app: php-app
template:
metadata:
labels:
app: php-app
spec:
volumes:
- name: apminsight-volume
initContainers:
- name: init-apminsight
image: site24x7/apminsight-phpagent:latest
imagePullPolicy: Always
command:
["unzip", "/opt/apminsight.zip", "-d", "/opt"]
volumeMounts:
- name: apminsight-volume
mountPath: /opt/apminsight
containers:
- name: php-app
image: my-php-app:8.2-alpine3.18-apache
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "chmod +x /apm/DockerInstallAgentPHP.sh && /apm/DockerInstallAgentPHP.sh && kill -USR1 1"]
env:
- name: S247_LICENSE_KEY
value: "your-license-key"
- name: ZPA_APPLICATION_NAME
value: "name-for-your-application"
ports:
- containerPort: 80
volumeMounts:
- mountPath: /apm
name: apminsight-volume
---
apiVersion: v1
kind: Service
metadata:
name: php-app-service
spec:
type: NodePort
selector:
app: php-app
ports:
- port: 8080
targetPort: 80
nodePort: 31000
相关文章
如何在 Docker 容器中安装各类 APM Insight 代理
Java | .NET | PHP | Node.js | Python
如何在 Kubernetes 环境中安装各类 APM Insight 代理
Java | .NET | PHP | Node.js | Python
-
本页内容
- YAML 部署文件示例
- 相关文章
