帮助手册

通过 init 容器在 Kubernetes 中添加 APM Insight PHP 代理

以下步骤将指导您使用 init 容器方法,将 APM Insight PHP 代理集成到 Kubernetes 部署中。

步骤 1:

创建一个空 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. 步骤 1 中创建的 volume 挂载到您的应用容器中。
  2. 向应用容器添加以下环境变量:
    • S247_LICENSE_KEY
    • ZPA_APPLICATION_NAME
  3. 从 postStart 生命周期钩子运行安装脚本,并重启您的 Web 服务器。
    注意 重启 Web 服务器时,对于基于 Apache 的服务器,请使用命令 /etc/init.d/apache2 reloadkill -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

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!