Cluster Monitoring এবং Security Configuration প্রোজেক্ট
এই প্রোজেক্টের উদ্দেশ্য হলো OpenShift ক্লাস্টার মনিটরিং এবং সিকিউরিটি কনফিগারেশন সেটআপ করা। এটি একটি বাস্তবিক প্রোজেক্ট যেখানে ক্লাস্টারের স্বাস্থ্য, পারফরম্যান্স এবং নিরাপত্তা নিশ্চিত করতে সাহায্য করবে।
১. Prerequisites
- OpenShift CLI (oc): OpenShift ক্লাস্টারের সাথে কাজ করার জন্য।
- Jenkins: CI/CD Pipeline পরিচালনার জন্য (যদি ব্যবহার করতে চান)।
- Prometheus এবং Grafana: ক্লাস্টার মনিটরিংয়ের জন্য।
২. Cluster Monitoring Setup
১. Prometheus Setup
OpenShift ক্লাস্টারে Prometheus ডিফল্ট ইনস্টল থাকে। আপনি CLI ব্যবহার করে Prometheus-এর স্টেটাস চেক করতে পারেন:
oc get pods -n openshift-monitoring
২. Custom PrometheusRules তৈরি করুন
আপনি আপনার ক্লাস্টারের জন্য কিছু কাস্টম অ্যালার্ট রুলস তৈরি করতে পারেন। নিচে একটি উদাহরণ PrometheusRule দেওয়া হলো:
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: high-cpu-usage
namespace: openshift-monitoring
spec:
groups:
- name: cpu-alerts
rules:
- alert: HighCpuUsage
expr: sum(rate(node_cpu_seconds_total{mode!="idle"}[5m])) by (instance) > 0.8
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU usage detected on node"
description: "CPU usage for node {{ $labels.instance }} has been above 80% for more than 5 minutes."
৩. Grafana Dashboard তৈরি করুন
Grafana ব্যবহার করে আপনি একটি ড্যাশবোর্ড তৈরি করতে পারেন যা আপনার ক্লাস্টারের স্বাস্থ্য এবং পারফরম্যান্স দেখাবে।
- Grafana UI-তে লগইন করুন।
- Create > Dashboard-এ ক্লিক করুন এবং নতুন প্যানেল যোগ করুন।
- Query ট্যাবে যান এবং Prometheus থেকে মেট্রিক চয়ন করুন, যেমন CPU, মেমোরি, এবং নেটওয়ার্ক ট্রাফিক।
- বিভিন্ন প্যানেল তৈরি করে আপনার ড্যাশবোর্ড সাজান।
৩. Security Configuration
১. User and Role Management
OpenShift-এ ইউজার এবং রোল ম্যানেজমেন্ট অত্যন্ত গুরুত্বপূর্ণ। নিচে কিছু সাধারণ পদক্ষেপ উল্লেখ করা হলো:
- নতুন গ্রুপ তৈরি করুন:
oc adm groups new developers
- ইউজারকে গ্রুপে অ্যাড করুন:
oc adm groups add-users developers alice bob
- রোল অ্যাসাইন করুন:
oc adm policy add-role-to-group edit developers -n my-project
২. Network Policy কনফিগারেশন
নেটওয়ার্ক পলিসি ব্যবহার করে ক্লাস্টারে কিভাবে পডগুলি যোগাযোগ করতে পারে তা নিয়ন্ত্রণ করুন।
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-app-traffic
namespace: my-project
spec:
podSelector:
matchLabels:
app: my-app
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
role: frontend
৩. Pod Security Policy (PSP)
Pod Security Policy ব্যবহার করে পডের জন্য নিরাপত্তা নীতি প্রয়োগ করুন।
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restricted
spec:
privileged: false
allowPrivilegeEscalation: false
runAsUser:
rule: MustRunAs
ranges:
- min: 1000
max: 2000
seLinux:
rule: RunAsAny
supplementalGroups:
rule: RunAsAny
fsGroup:
rule: RunAsAny
৪. Monitoring এবং Security Configuration Testing
১. Monitoring Test:
- Prometheus UI-তে যান:
http://<prometheus-url>-এ প্রবেশ করুন এবং অ্যালার্টগুলি চেক করুন। - Grafana Dashboard চেক করুন: তৈরি করা ড্যাশবোর্ডে যান এবং সমস্ত প্যানেলের তথ্য পর্যবেক্ষণ করুন।
২. Security Configuration Test:
- গ্রুপ এবং রোল পরীক্ষা করুন: নতুন ইউজারদের জন্য অ্যাক্সেস পরীক্ষা করুন।
- Network Policy পরীক্ষা করুন: নির্ধারিত নেটওয়ার্ক পলিসি কার্যকর কিনা তা যাচাই করুন।
- Pod Security Policy পরীক্ষা করুন: কিভাবে পডগুলির নিরাপত্তা নিশ্চিত করা হয়েছে তা পরীক্ষা করুন।
উপসংহার
এই প্রোজেক্টে, আমরা OpenShift ক্লাস্টারের Monitoring এবং Security Configuration সেটআপ করেছি। Prometheus এবং Grafana ব্যবহার করে ক্লাস্টারের স্বাস্থ্য পর্যবেক্ষণ করা হয়েছে, এবং ইউজার ও রোল ম্যানেজমেন্ট, নেটওয়ার্ক পলিসি, এবং Pod Security Policy দ্বারা নিরাপত্তা কনফিগার করা হয়েছে। এইসব কার্যক্রম নিশ্চিত করে যে ক্লাস্টারটি নিরাপদ এবং স্থিতিশীল।
Read more