Kubernetes లో Linux sysctls ఎలా ఉపయోగించాలి

Kubernetes Lo Linux Sysctls Ela Upayogincali



ఈ పోస్ట్ Kubernetes లో Linux sysctl అంటే ఏమిటి మరియు దానిని Kubernetes యొక్క క్లస్టర్‌లో ఎలా ఉపయోగించవచ్చో చర్చిస్తుంది. sysctl అనేది Linux ఆపరేటింగ్ సిస్టమ్‌లోని ఇంటర్‌ఫేస్, ఇది రన్‌టైమ్‌లో కెర్నల్ యొక్క పారామితులను సవరించడానికి నిర్వాహకుడిని అనుమతిస్తుంది. ఇక్కడ, మేము Kubernetes ప్లాట్‌ఫారమ్‌లో Linux sysctls ఎలా ఉపయోగించాలో ప్రదర్శిస్తాము. Kubernetesలో sysctlsని ఉపయోగించడం కోసం kubectl ఆదేశాలను అమలు చేస్తున్నప్పుడు మీరు ఎలాంటి అవుట్‌పుట్‌ను ఆశించవచ్చో అర్థం చేసుకోవడంలో మీకు సహాయపడటానికి మేము ఒక సాధారణ ఉదాహరణను ప్రదర్శిస్తాము.

sysctls అంటే ఏమిటి?

sysctls అనేది లైనక్స్‌లోని ఇంటర్‌ఫేస్, ఇది కంటైనర్‌లోని నేమ్‌స్పేస్ కోసం రన్‌టైమ్‌లో కెర్నల్ పారామితులను సర్దుబాటు చేయడానికి ఉపయోగించబడుతుంది. ఈ పారామితులను /proc/sys/ వర్చువల్ ప్రాసెస్ ఫైల్‌లో కనుగొనవచ్చు మరియు అవి వర్చువల్ మెమరీ, నెట్‌వర్కింగ్, కెర్నల్ మొదలైన వివిధ సబ్‌సిస్టమ్‌లను కవర్ చేస్తాయి. నేమ్‌స్పేస్డ్ sysctls మాత్రమే పాడ్‌లపై స్వతంత్రంగా సెట్ చేయబడతాయి మరియు Kubernetes sysctl సెట్టింగ్‌లను బహిర్గతం చేస్తుంది. నేమ్‌స్పేస్ లేని నోడ్ లెవల్ sysctls నోడ్ ట్యూనింగ్ ఆపరేటర్ వంటి sysctls సెట్టింగ్‌ల యొక్క ఇతర పద్ధతితో సెట్ చేయబడాలి. అంతేకాకుండా, సురక్షితమైన sysctls మాత్రమే డిఫాల్ట్‌గా వైట్‌లిస్ట్ చేయబడతాయి, అయితే అసురక్షిత sysctls వినియోగదారుకు అందుబాటులో ఉండేలా నోడ్‌లో మాన్యువల్‌గా ప్రారంభించబడాలి. ఇప్పుడు, Kubernetes లో Linux sysctls ఎలా ఉపయోగించాలో అర్థం చేసుకుందాం.







ముందస్తు అవసరాలు

మీరు Kubernetesలో Linux sysctlsని ఎలా ఉపయోగించాలో తెలుసుకోవడానికి ముందు, మీరు మీ సిస్టమ్‌లో ఈ క్రింది సాధనాలను ఇన్‌స్టాల్ చేశారని నిర్ధారించుకోండి:



    • కుబెర్నెట్స్ వెర్షన్ 1.23 లేదా ఏదైనా ఇతర తాజా వెర్షన్
    • ఉబుంటు 20.04 లేదా ఏదైనా ఇతర తాజా వెర్షన్
    • పాడ్ మద్దతు కోసం Sysctls
    • Kubectl కమాండ్ లైన్ సాధనం
    • మినీక్యూబ్ క్లస్టర్

మీ సిస్టమ్ ముందస్తు అవసరాలను తీరుస్తోందని ఊహిస్తూ, మేము అమలు విభాగానికి తరలిస్తున్నాము.



Kubernetes లో Linux sysctls ఎలా ఉపయోగించాలి?

Linux ఆపరేటింగ్ సిస్టమ్ అనేది నెట్‌వర్క్ స్టాక్‌లోని sysctls నాబ్‌ల ద్వారా కెర్నల్‌లను ట్యూన్ చేయడానికి మిమ్మల్ని అనుమతించే ప్లాట్‌ఫారమ్. కొన్ని sysctls దాని స్వంత కాన్ఫిగరేషన్‌తో పాడ్ కోసం నేమ్‌స్పేస్ చేయబడ్డాయి, మరికొన్ని మొత్తం సిస్టమ్‌కు చెల్లుబాటు అవుతాయి. Kubernetes sysctls ఇంటర్‌ఫేస్‌ను రెండు వర్గాలుగా వర్గీకరించారు:





    • నేమ్‌స్పేస్డ్ vs నోడ్-లెవల్ సిస్క్ట్‌లు
    • సురక్షిత vs అసురక్షిత వ్యవస్థలు

నేమ్‌స్పేస్డ్ vs నోడ్-లెవల్ సిస్క్ట్‌లు:

Linux కెర్నల్‌లో, చాలా sysctls నేమ్‌స్పేస్‌తో ఉంటాయి, ఇది వాటిని ఒక నోడ్‌లోని వివిధ పాడ్‌ల మధ్య స్వతంత్రంగా సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. కుబెర్నెటెస్ పాడ్‌లో నేమ్‌స్పేస్డ్ సిస్‌క్ట్‌లు సులభంగా యాక్సెస్ చేయబడతాయి. కొన్ని నేమ్‌స్పేస్డ్ సిస్‌క్ట్‌లు క్రింది విధంగా ఉన్నాయి:



    • fs.mqueue.*
    • కెర్నల్ .msg*
    • kernel.shm*
    • kernel.sem

నోడ్ స్థాయి sysctls నేమ్‌స్పేస్ చేయబడలేదు మరియు క్లస్టర్ అడ్మినిస్ట్రేటర్ వాటిని మాన్యువల్‌గా సెట్ చేయాలి. క్లస్టర్ అడ్మినిస్ట్రేటర్ ఒక ప్రత్యేక కంటైనర్‌తో డెమోన్ సెట్‌ని ఉపయోగిస్తుంది లేదా /etc/sysctls.conf నోడ్ యొక్క Linux పంపిణీని సవరించవచ్చు. నోడ్ ట్యూనింగ్ ఆపరేటర్‌ను నోడ్ స్థాయి సిస్‌క్ట్‌లను సెట్ చేయడానికి కూడా ఉపయోగించవచ్చు.

సేఫ్ vs అసురక్షిత వ్యవస్థలు:

sysctls యొక్క రెండు సమూహాలు ఉన్నాయి: సురక్షితమైన మరియు అసురక్షిత. సురక్షితమైన సిస్క్ట్‌లు సరిగ్గా నేమ్‌స్పేస్ చేయబడ్డాయి మరియు అవి ఒకే నోడ్‌లోని పాడ్‌లలో పూర్తిగా వేరుచేయబడతాయి. సురక్షిత sysctls డిఫాల్ట్‌గా ప్రారంభించబడతాయి మరియు పాడ్ స్పెసిఫికేషన్‌ను సవరించడం ద్వారా పాడ్‌లో ఉపయోగించవచ్చు. అయితే, అసురక్షిత sysctls డిఫాల్ట్‌గా నిలిపివేయబడ్డాయి మరియు వాటిని క్లస్టర్ అడ్మినిస్ట్రేటర్ మాన్యువల్‌గా ప్రారంభించాలి. సురక్షితమైన సిస్క్ట్‌లు వారి పొరుగువారిని సరిగ్గా నేమ్‌స్పేస్ చేసినందున ప్రభావితం చేయవు. అసురక్షిత సిస్‌క్ట్‌లు సిస్టమ్‌ను ఓవర్‌లోడ్ చేయడం వంటి వాటి పొరుగువారిపై ఊహించని విధంగా ప్రభావం చూపుతాయి. sysctls యొక్క సురక్షిత సెట్ క్రింది విధంగా ఉంది:

    • net.ipv4.ping_group_range
    • net.ipv4.ip_local_port_range
    • kernel.shm_rmid_forced
    • net.ipv4.tcp_syncookies

ఇక్కడ గమనించాల్సిన విషయం ఏమిటంటే, sysctl సురక్షితంగా భావించబడాలంటే కేవలం నేమ్‌స్పేస్ మాత్రమే సరిపోదు.

ఇప్పుడు మనం రెండు సిస్క్ట్‌ల వర్గాలను అర్థం చేసుకున్నాము, కుబెర్నెటీస్‌లో ఈ సిస్‌క్ట్‌లను ఎలా ఉపయోగించాలో తెలుసుకుందాం. ఇక్కడ, సురక్షితమైన మరియు అసురక్షిత sysctls రెండింటినీ ఎలా ఉపయోగించాలో మరియు Kubernetesలో అసురక్షిత sysctlsని మాన్యువల్‌గా ఎలా ప్రారంభించాలో మేము మీకు మార్గనిర్దేశం చేస్తాము.

దశ # 1: మినీక్యూబ్ క్లస్టర్‌ను ప్రారంభించండి

Kubernetes ప్లాట్‌ఫారమ్‌ను కొన్ని క్లస్టర్‌ల ద్వారా ఉపయోగించవచ్చు మరియు మేము ఇక్కడ మినీక్యూబ్ క్లస్టర్‌ని ఉపయోగిస్తున్నాము. minikube క్లస్టర్‌ను ప్రారంభించడానికి, మీరు క్రింద ఇచ్చిన ఆదేశాన్ని ఉపయోగించవచ్చు:

> minikube ప్రారంభించండి


ఇది minikube క్లస్టర్‌ను ప్రారంభిస్తుంది, ఇక్కడ మీరు kubectl ఆదేశాలను అమలు చేయవచ్చు మరియు Kubernetes ప్లాట్‌ఫారమ్‌లో Linux sysctlsని ఉపయోగించవచ్చు. మీరు ఈ ఆదేశాన్ని అమలు చేసినప్పుడు, మీరు క్రింద ఇవ్వబడిన దానికి సమానమైన అవుట్‌పుట్‌ను పొందుతారు:

దశ # 2: sysctls యొక్క పారామితులను తనిఖీ చేయండి

/proc/sys/ వర్చువల్ ప్రాసెస్ ఫైల్‌లో ఉన్న కెర్నల్ పారామితులను సవరించడానికి sysctls ఇంటర్‌ఫేస్ ఉపయోగించబడుతుంది. అన్ని పారామితులను జాబితా చేయడానికి, క్రింద ఇవ్వబడిన ఆదేశాన్ని ఉపయోగించవచ్చు:

> సుడో sysctl -ఎ


ఈ ఆదేశం /proc/sys/ వర్చువల్ ప్రాసెస్ ఫైల్ నుండి అన్ని కెర్నల్ పారామితులను జాబితా చేస్తుంది. దిగువ స్నాప్‌షాట్‌లో ఇవ్వబడిన నమూనా అవుట్‌పుట్‌ను చూడండి:

దశ # 3: అసురక్షిత sysctls ప్రారంభించండి

అసురక్షిత sysctls మాన్యువల్‌గా ప్రారంభించబడాలి ఎందుకంటే అవి డిఫాల్ట్‌గా నిలిపివేయబడ్డాయి. క్లస్టర్ అడ్మిన్ ప్రతి నోడ్ ఆధారంగా అసురక్షిత sysctlsని మాన్యువల్‌గా ప్రారంభిస్తుంది. అసురక్షిత వ్యవస్థలను నిలిపివేసిన పాడ్‌లు ప్రారంభించబడవు కానీ షెడ్యూల్ చేయబడతాయి. క్లస్టర్ అడ్మిన్ అసురక్షిత sysctlsని అనుమతించినప్పుడు కొన్ని నిర్దిష్ట షరతులు (రన్ టైమ్ అప్లికేషన్ ట్యూనింగ్, అధిక పనితీరు మొదలైనవి) ఉన్నాయి. నోడ్-బై-నోడ్ ప్రాతిపదికన అసురక్షిత sysctls ప్రారంభించడానికి, మీరు క్రింద ఇచ్చిన kubectl ఆదేశాన్ని ఉపయోగించవచ్చు:

> kubectl –allowed-unsafe-sysctls \


kubectl కమాండ్‌ని ఉపయోగించడం ద్వారా అసురక్షిత sysctlsని ఎనేబుల్ చేయడానికి ఇది చాలా ప్రాథమిక మరియు సులభమైన మార్గం.


అంతేకాకుండా, minikube అదనపు-కాన్ఫిగరేషన్ ఫ్లాగ్‌ని ఉపయోగించడం ద్వారా అసురక్షిత sysctls ప్రారంభించబడతాయి. దిగువ ఇచ్చిన ఆదేశాన్ని ఉపయోగించి ఇది చేయవచ్చు:

> minikube ప్రారంభం –extra-config=”kubectl.allowed-unsafe-sysctls=kernel.msg * ,net.core.somaxconn”...


minikube క్లస్టర్ ద్వారా అసురక్షిత sysctlsని ఎనేబుల్ చెయ్యడానికి ఈ ఆదేశం మిమ్మల్ని అనుమతిస్తుంది. అయితే, ఇది నేమ్‌స్పేస్డ్ సిస్‌క్ట్‌లను మాత్రమే ఎనేబుల్ చేయగలదు. దిగువ స్నాప్‌షాట్‌లో ఇవ్వబడిన నమూనా అవుట్‌పుట్‌ను చూడండి:

ముగింపు

ఈ వ్యాసం మాకు Linux sysctls ఇంటర్‌ఫేస్ యొక్క అవలోకనాన్ని అందించింది. మేము Linux sysctl అంటే ఏమిటి మరియు దానిని కుబెర్నెట్స్ వాతావరణంలో ఎలా ఉపయోగించవచ్చో చర్చించాము. sysctls యొక్క రెండు సమూహాలు ఉన్నాయి: సురక్షితమైనది మరియు సురక్షితం కాదు. sysctls యొక్క సురక్షిత సమూహం డిఫాల్ట్‌గా ప్రారంభించబడుతుంది, అయితే సురక్షితం కాని sysctls సమూహం డిఫాల్ట్‌గా నిలిపివేయబడుతుంది. సరళమైన మరియు సులభమైన ఉదాహరణ సహాయంతో, మేము kubectl కమాండ్ మరియు minikube –extra-config ఫ్లాగ్ ఉపయోగించి అసురక్షిత sysctls ఎలా ప్రారంభించాలో నేర్చుకున్నాము.