pinpoint server 2.5.4 YAML for k8s

2024. 10. 17. 15:39·CloudNative/Observability & Analysis

previously, docker image 빌드를 해보았다.

https://fullmooney.tistory.com/56

 

pinpoint server 2.5.4 base image build for k8s

pinpoint 는 docker-compose로 배포되고 있어서, kubernetes 환경에 설치방법에 대한 가이드가 없는 것으로 보였다. docker-compose로 구성은 아주 간단히 잘 되었지만, 주로 PaaS를 사용하고 있기 때문에 설치

fullmooney.tistory.com

 

이 이미지들로 k8s 배포를 위해 YAML을 작성해 보자.

ConfigMap

먼저 configMap YAML 생성을 해본다. 

pinpoint docker-compose github에서 받아온 .env를 활용한다. 

https://github.com/pinpoint-apm/pinpoint-docker/blob/master/.env

 

pinpoint-docker/.env at master · pinpoint-apm/pinpoint-docker

Official Dockerized components of the Pinpoint. Contribute to pinpoint-apm/pinpoint-docker development by creating an account on GitHub.

github.com

 

kubectl 로 파일 생성해서 출력해보니 잘 만들어졌다. 

% kubectl create cm pinpoint-cm --from-env-file=.env -o yaml --dry-run=client > pinpoint-cm.yaml
% cat pinpoint-cm.yaml 
apiVersion: v1
data:
  ADMIN_PASSWORD: admin
  AGENT_DEBUG_LEVEL: INFO
  AGENT_ID: app-in-docker
  AGENTEVENT_TTL: "5184000"
  AGENTINFO_TTL: "31536000"
  AGENTLIFECYCLE_TTL: "5184000"
  AGENTSTATV2_TTL: "5184000"
  ALARM_MAIL_DEBUG: "false"
  ALARM_MAIL_SENDER_ADDRESS: pinpoint_operator@pinpoint.com
  ALARM_MAIL_SERVER_PASSWORD: password
  ALARM_MAIL_SERVER_PORT: "587"
  ALARM_MAIL_SERVER_URL: smtp.gmail.com
  ALARM_MAIL_SERVER_USERNAME: username
  ALARM_MAIL_SMTP_AUTH: "false"
  ALARM_MAIL_SMTP_PORT: "25"
  ALARM_MAIL_SMTP_STARTTLS_ENABLE: "false"
  ALARM_MAIL_SMTP_STARTTLS_REQUIRED: "false"
  ALARM_MAIL_TRANSPORT_PROTOCOL: smtp
  APIMETADATA_TTL: "31536000"
  APP_NAME: quickapp
  APP_PORT: "8085"
  APPINDEX_TTL: "31536000"
  APPMAPSTATCALLERV2_TTL: "5184000"
  APPMAPSTATCALLEV2_TTL: "5184000"
  APPMAPSTATSELFV2_TTL: "5184000"
  APPSTATAGGRE_TTL: "5184000"
  APPTRACEINDEX_TTL: "5184000"
  BATCH_FLINK_SERVER: pinpoint-flink-jobmanager
  BATCH_LOGGING_LEVEL_ROOT: INFO
  BATCH_SERVER_PORT: "8079"
  CLUSTER_ENABLE: "true"
  COLLECTOR_FIXED_IP: pinpoint-collector
  COLLECTOR_IP: pinpoint-collector
  COLLECTOR_LOGGING_LEVEL_ROOT: INFO
  COLLECTOR_RECEIVER_BASE_PORT: "9994"
  COLLECTOR_RECEIVER_GRPC_AGENT_PORT: "9991"
  COLLECTOR_RECEIVER_GRPC_SPAN_PORT: "9993"
  COLLECTOR_RECEIVER_GRPC_STAT_PORT: "9992"
  COLLECTOR_RECEIVER_SPAN_UDP_PORT: "9996"
  COLLECTOR_RECEIVER_STAT_UDP_PORT: "9995"
  COLLECTOR_SPAN_PORT: "9996"
  COLLECTOR_STAT_PORT: "9995"
  COLLECTOR_TCP_PORT: "9994"
  CONFIG_SENDUSAGE: "true"
  CONFIG_SHOW_APPLICATIONSTAT: "true"
  FLINK_CLUSTER_ENABLE: "true"
  FLINK_CLUSTER_ZOOKEEPER_ADDRESS: zoo1
  FLINK_WEB_PORT: "8081"
  HOSTAPPMAPV2_TTL: "5184000"
  JDBC_DRIVERCLASSNAME: com.mysql.jdbc.Driver
  MYSQL_DATABASE: pinpoint
  MYSQL_PASSWORD: admin
  MYSQL_ROOT_PASSWORD: root123
  MYSQL_USER: admin
  PINPOINT_AGENT_NAME: pinpoint-agent
  PINPOINT_BATCH_NAME: pinpoint-batch
  PINPOINT_COLLECTOR_NAME: pinpoint-collector
  PINPOINT_FLINK_NAME: pinpoint-flink
  PINPOINT_HBASE_NAME: pinpoint-hbase
  PINPOINT_METRIC_KAFKA_BOOTSTRAP_SERVERS: pinpoint-kafka:9092
  PINPOINT_MODULES_WEB_LOGIN: ""
  PINPOINT_NETWORK_SUBNET: 172.24.0.0/27
  PINPOINT_VERSION: latest
  PINPOINT_WEB_NAME: pinpoint-web
  PINPOINT_ZOOKEEPER_ADDRESS: zoo1
  PROFILER_SAMPLING_CONTINUE_THROUGHPUT: "0"
  PROFILER_SAMPLING_COUNTING_SAMPLING_RATE: "1"
  PROFILER_SAMPLING_NEW_THROUGHPUT: "0"
  PROFILER_SAMPLING_PERCENT_SAMPLING_RATE: "100"
  PROFILER_SAMPLING_TYPE: COUNTING
  PROFILER_TRANSPORT_AGENT_COLLECTOR_PORT: "9991"
  PROFILER_TRANSPORT_METADATA_COLLECTOR_PORT: "9991"
  PROFILER_TRANSPORT_MODULE: GRPC
  PROFILER_TRANSPORT_SPAN_COLLECTOR_PORT: "9993"
  PROFILER_TRANSPORT_STAT_COLLECTOR_PORT: "9992"
  SPRING_DATA_REDIS_HOST: pinpoint-redis
  SPRING_DATA_REDIS_PASSWORD: ""
  SPRING_DATA_REDIS_PORT: "6379"
  SPRING_DATA_REDIS_USERNAME: default
  SPRING_DATASOURCE_HIKARI_JDBCURL: jdbc:mysql://pinpoint-mysql:3306/pinpoint?characterEncoding=UTF-8
  SPRING_DATASOURCE_HIKARI_PASSWORD: admin
  SPRING_DATASOURCE_HIKARI_USERNAME: admin
  SPRING_METADATASOURCE_HIKARI_JDBCURL: jdbc:mysql://pinpoint-mysql:3306/pinpoint?characterEncoding=UTF-8
  SPRING_METADATASOURCE_HIKARI_PASSWORD: admin
  SPRING_METADATASOURCE_HIKARI_USERNAME: admin
  SPRING_PINOTDATASOURCE_PINOT_JDBCURL: jdbc:pinot://pinot-controller:9000
  SPRING_PINOTDATASOURCE_PINOT_PASSWORD: admin
  SPRING_PINOTDATASOURCE_PINOT_USERNAME: admin
  SPRING_PROFILES: release
  SQLMETADATA_TTL: "15552000"
  STRINGMETADATA_TTL: "15552000"
  TRACEV2_TTL: "5184000"
  WEB_LOGGING_LEVEL_ROOT: INFO
  WEB_SECURITY_AUTH_ADMIN: '"eve:baz"'
  WEB_SECURITY_AUTH_JWT_SECRETKEY: __PINPOINT_JWT_SECRET__
  WEB_SECURITY_AUTH_USER: '"alice:foo,bob:bar"'
  WEB_SERVER_PORT: "8080"
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: pinpoint-cm

PVC

다음으로 mysql-data, hbase-data PVC YAML을 작성하고 nfs storageClass로 PV를 provisioning한다.

대략 10Gb, 30Gb 정도로 생성하였다.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-data
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: nfs-client
  volumeMode: Filesystem

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: hbase-data
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 30Gi
  storageClassName: nfs-client
  volumeMode: Filesystem

Pinpoint YAML

zookeeper

이제 각 서비스의 YAML을 작성해보자.

먼저 zookeeper이다.  zookeeper helm으로 cluster 구성하지 않고, docker compose와 동일하게 각 zoo1, zoo2, zoo3을 각각 deployment로 replica 1로 작성하였다.

kind: Deployment
apiVersion: apps/v1
metadata:
  name: zoo1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zoo1
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: zoo1
    spec:
      containers:
        - name: zoo1
          image: 'docker.io/zookeeper:3.4.13'
          ports:
            - containerPort: 2181
              protocol: TCP
            - containerPort: 2888
              protocol: TCP
            - containerPort: 3888
              protocol: TCP
          env:
            - name: ZOO_MY_ID
              value: '1'
            - name: ZOO_SERVERS
              value: >-
                server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888
                server.3=zoo3:2888:3888
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 1
  progressDeadlineSeconds: 600
 
---
 
kind: Deployment
apiVersion: apps/v1
metadata:
  name: zoo2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zoo2
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: zoo2
    spec:
      containers:
        - name: zoo2
          image: 'docker.io/zookeeper:3.4.13'
          ports:
            - containerPort: 2181
              protocol: TCP
            - containerPort: 2888
              protocol: TCP
            - containerPort: 3888
              protocol: TCP
          env:
            - name: ZOO_MY_ID
              value: '2'
            - name: ZOO_SERVERS
              value: >-
                server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888
                server.3=zoo3:2888:3888
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 1
  progressDeadlineSeconds: 600
 
---
 
kind: Deployment
apiVersion: apps/v1
metadata:
  name: zoo3
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zoo3
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: zoo3
    spec:
      containers:
        - name: zoo3
          image: 'docker.io/zookeeper:3.4.13'
          ports:
            - containerPort: 2181
              protocol: TCP
            - containerPort: 2888
              protocol: TCP
            - containerPort: 3888
              protocol: TCP
          env:
            - name: ZOO_MY_ID
              value: '3'
            - name: ZOO_SERVERS
              value: >-
                server.1=zoo1:2888:3888 server.2=zoo2:2888:3888
                server.3=0.0.0.0:2888:3888
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 1
  progressDeadlineSeconds: 600

 

서비스는 다음과 같다.

kind: Service
apiVersion: v1
metadata:
  name: zoo1
  labels:
    app: zoo1
spec:
  ports:
    - name: tcp-clients
      protocol: TCP
      port: 2181
      targetPort: 2181
    - name: replication
      protocol: TCP
      port: 2888
      targetPort: 2888
    - name: election
      protocol: TCP
      port: 3888
      targetPort: 3888
  selector:
    app: zoo1
 
---
 
kind: Service
apiVersion: v1
metadata:
  name: zoo2
  labels:
    app: zoo2
spec:
  ports:
    - name: tcp-clients
      protocol: TCP
      port: 2181
      targetPort: 2181
    - name: replication
      protocol: TCP
      port: 2888
      targetPort: 2888
    - name: election
      protocol: TCP
      port: 3888
      targetPort: 3888
  selector:
    app: zoo2
 
---
 
kind: Service
apiVersion: v1
metadata:
  name: zoo3
  labels:
    app: zoo3
spec:
  ports:
    - name: tcp-clients
      protocol: TCP
      port: 2181
      targetPort: 2181
    - name: replication
      protocol: TCP
      port: 2888
      targetPort: 2888
    - name: election
      protocol: TCP
      port: 3888
      targetPort: 3888
  selector:
    app: zoo3

Mysql

이제 mysql 을 작성한다. 

kind: Deployment
apiVersion: apps/v1
metadata:
  name: pinpoint-mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pinpoint-mysql
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: pinpoint-mysql
    spec:
      volumes:
        - name: mysql-data
          emptyDir: {}
      containers:
        - resources: {}
          terminationMessagePath: /dev/termination-log
          name: pinpoint-mysql
          ports:
            - containerPort: 3306
              protocol: TCP
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: mysql-data
              mountPath: /var/lib/mysql
          terminationMessagePolicy: File
          envFrom:
            - configMapRef:
                name: pinpoint-cm
          image: docker.io/mooneyred/pinpoint-mysql:8.0.ubuntu
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
      
 ---
 kind: Service
apiVersion: v1
metadata:
  name: pinpoint-mysql
spec:
  ports:
    - protocol: TCP
      port: 3306
      targetPort: 3306
  selector:
    app: pinpoint-mysql

hbase

다음으로 hbase statefulset이다.

kind: StatefulSet
apiVersion: apps/v1
metadata:
  annotations:
    kubernetes.io/instance: pinpoint
  name: pinpoint-hbase
  labels:
    app: pinpoint-hbase
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pinpoint-hbase
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: pinpoint-hbase
    spec:
      volumes:
        - name: hbase-data
          persistentVolumeClaim:
            claimName: hbase-data
        - name: zookeeper
          emptyDir: {}
      containers:
        - resources: {}
          terminationMessagePath: /dev/termination-log
          name: pinpoint-hbase
          ports:
            - containerPort: 60000
              protocol: TCP
            - containerPort: 16010
              protocol: TCP
            - containerPort: 60020
              protocol: TCP
            - containerPort: 16030
              protocol: TCP
            - containerPort: 16201
              protocol: TCP
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: hbase-data
              mountPath: /home/pinpoint/hbase
            - name: zookeeper
              mountPath: /home/pinpoint/zookeeper
          terminationMessagePolicy: File
          envFrom:
            - configMapRef:
                name: pinpoint-cm
          image: docker.io/mooneyred/pinpoint-hbase:2.5.4.ubuntu
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  serviceName: ''
  podManagementPolicy: OrderedReady
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      partition: 0
  revisionHistoryLimit: 2
  
  ---
  kind: Service
apiVersion: v1
metadata:
  name: pinpoint-hbase-0
spec:
  ports:
    - name: master
      protocol: TCP
      port: 60000
      targetPort: 60000
    - name: master2
      protocol: TCP
      port: 16010
      targetPort: 16010
    - name: regionserver
      protocol: TCP
      port: 60020
      targetPort: 60020
    - name: regionserver2
      protocol: TCP
      port: 16030
      targetPort: 16030
    - name: hbase
      protocol: TCP
      port: 16201
      targetPort: 16201
  selector:
    app: pinpoint-hbase

jobmanager / taskmanager

이어서 jobmanager와 taskmanager는 하나의 pod에 컨테이너가 같이 올라가도록 pinpoint-flink라는 이름의 statefulSet YAML을 작성한다.

kind: StatefulSet
apiVersion: apps/v1
metadata:
  annotations:
    kubernetes.io/instance: pinpoint
  name: pinpoint-flink
  labels:
    app: pinpoint-flink
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pinpoint-flink
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: pinpoint-flink
    spec:
      containers:
        - name: pinpoint-flink-jobmanager
          image: docker.io/mooneyred/pinpoint-jobmanager:2.5.4.ubuntu
          ports:
            - containerPort: 6123
              protocol: TCP
            - containerPort: 8081
              protocol: TCP
          env:
            - name: JOB_MANAGER_RPC_ADDRESS
              value: localhost
            - name: PINPOINT_ZOOKEEPER_ADDRESS
              value: zoo1
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always
        - name: pinpoint-flink-taskmanager
          image: docker.io/mooneyred/pinpoint-taskmanager:2.5.4.ubuntu
          ports:
            - containerPort: 6121
              protocol: TCP
            - containerPort: 6122
              protocol: TCP
            - containerPort: 19994
              protocol: TCP
          env:
            - name: JOB_MANAGER_RPC_ADDRESS
              value: localhost
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  serviceName: ''
  podManagementPolicy: OrderedReady
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      partition: 0
  revisionHistoryLimit: 2
 
---
 
kind: Service
apiVersion: v1
metadata:
  name: pinpoint-flink-0
spec:
  ports:
    - name: jobmanager
      protocol: TCP
      port: 6123
      targetPort: 6123
    - name: dashobard
      protocol: TCP
      port: 8081
      targetPort: 8081
    - name: ipc
      protocol: TCP
      port: 6121
      targetPort: 6121
    - name: blobserver
      protocol: TCP
      port: 6122
      targetPort: 6122
    - name: taskmanager
      protocol: TCP
      port: 19994
      targetPort: 19994
  selector:
    app: pinpoint-flink

collector

collector YAML은 다음과 같다.

kind: Deployment
apiVersion: apps/v1
metadata:
  name: pinpoint-collector
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pinpoint-collector
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: pinpoint-collector
    spec:
      volumes:
        - name: hbase-data
          persistentVolumeClaim:
            claimName: hbase-data
        - name: zookeeper
          emptyDir: {}
      containers:
        - resources: {}
          terminationMessagePath: /dev/termination-log
          name: pinpoint-collector
          ports:
            - containerPort: 9991
              protocol: TCP
            - containerPort: 9992
              protocol: TCP
            - containerPort: 9993
              protocol: TCP
            - containerPort: 9994
              protocol: TCP
            - containerPort: 9995
              protocol: TCP
            - containerPort: 9996
              protocol: TCP
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: hbase-data
              mountPath: /home/pinpoint/hbase
            - name: zookeeper
              mountPath: /home/pinpoint/zookeeper
          terminationMessagePolicy: File
          envFrom:
            - configMapRef:
                name: pinpoint-cm
          image: docker.io/mooneyred/pinpoint-collector:2.5.4.ubuntu
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

---
 
kind: Service
apiVersion: v1
metadata:
  name: pinpoint-collector
spec:
  ports:
    - name: collector-receiver-grpc-agent-port
      protocol: TCP
      port: 9991
      targetPort: 9991
    - name: collector-receiver-grpc-stat-port
      protocol: TCP
      port: 9992
      targetPort: 9992
    - name: collector-receiver-grpc-span-port
      protocol: TCP
      port: 9993
      targetPort: 9993
    - name: collector-receiver-base-port
      protocol: TCP
      port: 9994
      targetPort: 9994
    - name: collector-receiver-stat-tcp-port
      protocol: TCP
      port: 9995
      targetPort: 9995
    - name: collector-receiver-span-tcp-port
      protocol: TCP
      port: 9996
      targetPort: 9996
    - name: collector-receiver-stat-udp-port
      protocol: UDP
      port: 9995
      targetPort: 9995
    - name: collector-receiver-span-udp-port
      protocol: UDP
      port: 9996
      targetPort: 9996
  selector:
    app: pinpoint-collector

web

마지막으로 web이다.

kind: StatefulSet
apiVersion: apps/v1
metadata:
  name: pinpoint-web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pinpoint-web
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: pinpoint-web
    spec:
      containers:
        - resources: {}
          terminationMessagePath: /dev/termination-log
          name: pinpoint-web
          env:
            - name: WEB_SERVER_PORT
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: WEB_SERVER_PORT
            - name: SPRING_PROFILES_ACTIVE
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_PROFILES
            - name: PINPOINT_ZOOKEEPER_ADDRESS
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: PINPOINT_ZOOKEEPER_ADDRESS
            - name: CLUSTER_ENABLE
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: CLUSTER_ENABLE
            - name: ADMIN_PASSWORD
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: ADMIN_PASSWORD
            - name: CONFIG_SENDUSAGE
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: CONFIG_SENDUSAGE
            - name: LOGGING_LEVEL_ROOT
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: WEB_LOGGING_LEVEL_ROOT
            - name: CONFIG_SHOW_APPLICATIONSTAT
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: CONFIG_SHOW_APPLICATIONSTAT
            - name: JDBC_DRIVERCLASSNAME
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: JDBC_DRIVERCLASSNAME
            - name: JDBC_URL
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATASOURCE_HIKARI_JDBCURL
            - name: JDBC_USERNAME
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATASOURCE_HIKARI_USERNAME
            - name: JDBC_PASSWORD
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATASOURCE_HIKARI_PASSWORD
            - name: SPRING_DATASOURCE_HIKARI_JDBCURL
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATASOURCE_HIKARI_JDBCURL
            - name: SPRING_DATASOURCE_HIKARI_USERNAME
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATASOURCE_HIKARI_USERNAME
            - name: SPRING_DATASOURCE_HIKARI_PASSWORD
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATASOURCE_HIKARI_PASSWORD
            - name: SPRING_METADATASOURCE_HIKARI_JDBCURL
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_METADATASOURCE_HIKARI_JDBCURL
            - name: SPRING_METADATASOURCE_HIKARI_USERNAME
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_METADATASOURCE_HIKARI_USERNAME
            - name: SPRING_METADATASOURCE_HIKARI_PASSWORD
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_METADATASOURCE_HIKARI_PASSWORD
            - name: SPRING_DATA_REDIS_HOST
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATA_REDIS_HOST
            - name: SPRING_DATA_REDIS_PORT
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATA_REDIS_PORT
            - name: SPRING_DATA_REDIS_USERNAME
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATA_REDIS_USERNAME
            - name: SPRING_DATA_REDIS_PASSWORD
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: SPRING_DATA_REDIS_PASSWORD
            - name: PINPOINT_MODULES_WEB_LOGIN
              valueFrom:
                configMapKeyRef:
                  name: pinpoint-cm
                  key: PINPOINT_MODULES_WEB_LOGIN
          securityContext:
            capabilities:
              drop:
                - MKNOD
          ports:
            - containerPort: 9997
              protocol: TCP
            - containerPort: 8080
              protocol: TCP
          imagePullPolicy: IfNotPresent
          terminationMessagePolicy: File
          image: docker.io/mooneyred/pinpoint-web:2.5.4.ubuntu
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  serviceName: pinpoint
  podManagementPolicy: OrderedReady
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      partition: 0
  revisionHistoryLimit: 1

---
 
kind: Service
apiVersion: v1
metadata:
  name: pinpoint-web
spec:
  ports:
    - name: web
      protocol: TCP
      port: 8080
      targetPort: 8080
  selector:
    app: pinpoint-web

 

docker-compose에서는 depends_on 이라고 해서 배포 순서를 정해놨는데 다 이유가 있다. 위 YAML을 두서없이 막 배포하면 제대로 실행되지 않는다. 운좋게 잘 배포했을수도 있지만..

 

다음 시간에 배포 순서에 맞게 배포해보고, 배포시 트러블슈팅을 해보자.

728x90

'CloudNative > Observability & Analysis' 카테고리의 다른 글

jib maven 으로 pinpoint agent 배포  (0) 2024.10.18
pinpoint server 2.5.4 k8s deploy  (2) 2024.10.18
pinpoint server 2.5.4 base image build for k8s  (1) 2024.10.17
pinpoint APM docker-compose  (2) 2024.08.07
datadog  (1) 2024.08.07
'CloudNative/Observability & Analysis' 카테고리의 다른 글
  • jib maven 으로 pinpoint agent 배포
  • pinpoint server 2.5.4 k8s deploy
  • pinpoint server 2.5.4 base image build for k8s
  • pinpoint APM docker-compose
yunapapa
yunapapa
working on the cloud
    250x250
  • yunapapa
    supermoon
    yunapapa
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 개발 (20)
        • java (17)
        • web (2)
        • MSX (1)
        • Go (0)
      • CloudNative (50)
        • App Definition & Developeme.. (17)
        • Orchestration & Management (4)
        • Runtime (3)
        • Provisioning (7)
        • Observability & Analysis (14)
        • event review (5)
      • AWS (7)
      • 환경관련 (17)
      • 취미생활 (0)
        • 맛집 (0)
        • 게임 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • CNCF Past Events
    • Kubernetes Korea Group
  • 공지사항

  • 인기 글

  • 태그

    helm
    springboot
    APM
    Pinpoint
    dop-c02
    OpenShift
    티스토리챌린지
    오블완
    k8s
    kubernetes
    gitlab
    Java
    AWS
    istio
    devops
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
yunapapa
pinpoint server 2.5.4 YAML for k8s
상단으로

티스토리툴바