ডিস্ট্রিবিউটেড প্রোফাইলিংয়ের জন্য XProf Kubernetes স্থাপনা

এই ডকুমেন্টটি বর্ণনা করে যে কীভাবে Kubernetes-এ একটি বিতরণকৃত সেটআপে XProf স্থাপন করা যায়, কর্মীদের জন্য পৃথক স্থাপনা এবং একটি সমষ্টিগত ব্যবহার করে।

কুবারনেটের জন্য XProf অ্যাগ্রিগেটর ওয়ার্কার আর্কিটেকচার

পূর্বশর্ত

কুবারনেটস কনফিগারেশন

নিম্নলিখিত YAML কনফিগারেশনগুলি XProf কর্মী এবং একটি সমষ্টির জন্য Kubernetes স্থাপনা এবং পরিষেবাগুলিকে সংজ্ঞায়িত করে।

অ্যাগ্রিগেটর ডিপ্লয়মেন্ট একটি একক রেপ্লিকা চালায় যা ব্যবহারকারীর অনুরোধ গ্রহণ করে এবং রাউন্ড-রবিন নীতি ব্যবহার করে কর্মীদের প্রতিলিপিগুলিতে প্রোফাইলিং কাজগুলি বিতরণ করে। --worker_service_address ফ্ল্যাগ কর্মীদের পরিষেবাতে অনুরোধ পাঠানোর জন্য অ্যাগ্রিগেটরকে কনফিগার করে।

কর্মী স্থাপনা একাধিক প্রতিলিপি চালায়, প্রতিটি প্রতিলিপি --grpc_port ফ্ল্যাগের মাধ্যমে একটি gRPC পোর্ট উন্মুক্ত করে যাতে অ্যাগ্রিগেটর থেকে প্রক্রিয়াকরণের কাজগুলি শোনা যায়।

সমষ্টিকারক

apiVersion: apps/v1
kind: Deployment
metadata:
  name: xprof-aggregator-deployment
  labels:
    app: xprof-aggregator-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: xprof-aggregator-app
  template:
    metadata:
      labels:
        app: xprof-aggregator-app
    spec:
      containers:
      - name: aggregator-container
        image: <your-xprof-docker-image>
        imagePullPolicy: Always
        env:
        - name: GRPC_LB_POLICY
          value: "round_robin"
        - name: GRPC_DNS_RESOLVER
          value: "native"
        args:
          - "--port=10000"
          - "--worker_service_address=dns:///xprof-worker-service.default.svc.cluster.local:8891"
          - "-gp=50051"
          - "--hide_capture_profile_button"
        ports:
        - containerPort: 10000

---
apiVersion: v1
kind: Service
metadata:
  name: xprof-agg-service
  labels:
    app: xprof-aggregator-app
spec:
  selector:
    app: xprof-aggregator-app
  clusterIP: None
  ports:
  - protocol: TCP
    port: 80
    targetPort: 10000

কর্মী

apiVersion: apps/v1
kind: Deployment
metadata:
  name: xprof-worker-deployment
  labels:
    app: xprof-worker-app
spec:
  replicas: 4
  selector:
    matchLabels:
      app: xprof-worker-app
  template:
    metadata:
      labels:
        app: xprof-worker-app
    spec:
      containers:
      - name: worker-container
        image: <your-xprof-docker-image>
        imagePullPolicy: Always
        args:
          - "--port=9999"
          - "-gp=8891"
          - "--hide_capture_profile_button"
        ports:
        - containerPort: 8891

---
apiVersion: v1
kind: Service
metadata:
  name: xprof-worker-service
  labels:
    app: xprof-worker-app
spec:
  selector:
    app: xprof-worker-app
  clusterIP: None
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8891