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

পূর্বশর্ত
- একটি কুবেরনেটেস ক্লাস্টার।
- XProf এর একটি ডকার ছবি। 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