k8s 部署servicemonitor 监听pod (示例)

这里提供一个经过测试的示例YAML模板,用于在Kubernetes中部署一个Node.js应用程序,并将其指标收集并发送到Prometheus:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nodejs-app
  labels:
    app: nodejs-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nodejs-app
  template:
    metadata:
      labels:
        app: nodejs-app
    spec:
      containers:
        - name: nodejs-app
          image: nodejs-app:latest
          ports:
            - name: http
              containerPort: 3000
          env:
            - name: PROMETHEUS_PORT
              value: "9090"
---
apiVersion: v1
kind: Service
metadata:
  name: nodejs-app
  labels:
    app: nodejs-app
spec:
  selector:
    app: nodejs-app
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 3000
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: nodejs-app-monitor
  labels:
    app: nodejs-app
spec:
  selector:
    matchLabels:
      app: nodejs-app
  endpoints:
    - port: http
      interval: 30s
      path: /metrics


这个示例使用Deployment来创建一个Pod,其中包含一个名为nodejs-app的容器。容器运行Node.js应用程序,它在端口3000上暴露指标。这个容器还定义了一个名为PROMETHEUS_PORT的环境变量,用于指定Prometheus的端口号。Service将流量转发到Pod中的端口3000上,ServiceMonitor使用标签选择器选择要监视的Pod,并将其指标上传到Prometheus。在这个示例中,ServiceMonitor将每30秒轮询一次/metrics路径,并将指标发送到Prometheus的默认端口(9090)。

请注意,这个示例中的环境变量和路径可能需要根据你的应用程序做出一些调整。另外,你需要根据你的实际情况对Pod、Service和ServiceMonitor的名称、标签和选择器进行适当修改。你还需要在Kubernetes集群中安装和配置Prometheus和kube-prometheus-stack等监控相关的组件,以确保这个模板能够正常工作。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!您可以使用 Kubernetes(简称 k8s)部署 Tomcat 应用。下面是一个简单的步骤: 1. 首先,确保您已经安装好 Kubernetes 集群,并且连接到该集群。 2. 创建一个 Tomcat 的 Deployment 配置文件。您可以创建一个名为 `tomcat-deployment.yaml` 的文件,并添加以下内容: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: tomcat-deployment spec: replicas: 1 selector: matchLabels: app: tomcat template: metadata: labels: app: tomcat spec: containers: - name: tomcat image: tomcat:latest ports: - containerPort: 8080 ``` 其中,`image` 字段指定了使用的 Tomcat 镜像,这里使用的是 `tomcat:latest`。`containerPort` 字段指定了容器监听的端口。 3. 使用以下命令来创建 Deployment: ``` kubectl apply -f tomcat-deployment.yaml ``` 这将会在 Kubernetes 集群中创建一个名为 `tomcat-deployment` 的 Deployment,并启动一个 Tomcat Pod。 4. 等待一段时间,直到 Pod 处于运行状态。您可以使用以下命令来查看 Pod 的状态: ``` kubectl get pods ``` 5. 创建一个 Service,将外部流量路由到 Tomcat Pod。您可以创建一个名为 `tomcat-service.yaml` 的文件,并添加以下内容: ```yaml apiVersion: v1 kind: Service metadata: name: tomcat-service spec: selector: app: tomcat ports: - protocol: TCP port: 8080 targetPort: 8080 type: LoadBalancer ``` 这里使用的是 LoadBalancer 类型的 Service,可以通过外部 IP 访问 Tomcat。 6. 使用以下命令来创建 Service: ``` kubectl apply -f tomcat-service.yaml ``` 7. 等待一段时间,直到 Service 创建成功并分配了外部 IP。您可以使用以下命令来查看 Service 的状态: ``` kubectl get services ``` 现在,您应该可以使用外部 IP 来访问 Tomcat 应用了。 请注意,这只是一个简单的示例,实际部署可能需要根据您的需求进行调整。希望对您有帮助!如果您还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值