ఈ పోస్ట్లో, మేము Ansible టూల్లో Kubernetes ప్లగిన్ను ఎలా ఉపయోగించాలో నేర్చుకుంటాము. అన్సిబుల్లో, పెద్ద సంఖ్యలో కంటైనర్లను నిర్వహించడం కష్టం. కానీ కంటైనర్లను నిర్వహించేటప్పుడు అన్సిబుల్లో కుబెర్నెట్లను ఉపయోగించడం సహాయపడుతుంది. ఈ గైడ్లో, కుబెర్నెట్స్ ఇన్వెంటరీ సోర్స్ అంటే ఏమిటి మరియు అది అన్సిబుల్లో ఎలా పనిచేస్తుందో తెలుసుకుందాం.
Google సులభంగా యాక్సెస్ చేయగల నిర్వహణ సాఫ్ట్వేర్ని K8s అని కూడా పిలుస్తారు, దీనిని జీరో-డౌన్టైమ్ ఇన్స్టాలేషన్ ఫీచర్లు, ఆటోమేటెడ్ రివర్షన్ మరియు స్కేలబిలిటీతో కూడిన మెషీన్ల రిమోట్ సెట్లో వర్చువలైజ్డ్ కాన్ఫిగరేషన్లను నిర్వహించడానికి ఉపయోగించబడుతుంది, ఇది కుబెర్నెట్స్ ప్లగ్ఇన్కు అత్యంత అనుకూలతను అందిస్తుంది. అన్సిబుల్లో ఆర్కిటెక్చర్. అవసరమైన కార్యాచరణ కోసం REST APIల లభ్యత ద్వారా, కుబెర్నెట్స్ ప్రాథమిక లక్ష్యం అనేక కంటైనర్లను నియంత్రించడంలో అనుబంధించబడిన సంక్లిష్టతలను దాచడం.
Kubernetes కాన్ఫిగరేషన్ క్లయింట్-సర్వర్పై ఆధారపడి ఉంటుంది. అయితే, డిఫాల్ట్గా, నియంత్రిత హోస్ట్గా పనిచేసే ఒక ప్రధాన సర్వర్ మాత్రమే ఉంది. కుబెర్నెట్స్లో, మేము కుబెర్నెట్స్ కాన్ఫిగరేషన్ కోసం మల్టీ-మెయిన్ కంట్రోలర్లను కూడా ఉపయోగించవచ్చు. నియంత్రణ వ్యవస్థలకు K8s ఇన్వెంటరీ మూలం అప్పుడప్పుడు అవసరం మరియు పాడ్లను నియంత్రించడానికి రిమోట్ హోస్ట్లో సేవలను కాన్ఫిగర్ చేస్తుంది. కానీ ఎలా చేయాలో నిర్దిష్ట సూచనలను పొందడంలో ఇబ్బందులు ఉన్నాయి. ఫలితంగా, డొమైన్లోని పాడ్లను సంగ్రహించే మరియు కుబెర్నెట్స్ ఇన్వెంటరీ సోర్స్ను ఉత్పత్తి చేసే అన్సిబుల్ ప్లేబుక్ను ఎలా తయారు చేయాలనే దానిపై మేము ఈ ట్యుటోరియల్ని అమలు చేస్తాము.
అన్సిబుల్లో కుబెర్నెటెస్ ఇన్వెంటరీ సోర్స్ను ఉపయోగించడం కోసం ముందస్తు అవసరాలు
Ansibleలో Kubernetes ఇన్వెంటరీ సోర్స్ని ఉపయోగించడానికి, ఈ గైడ్లో స్టేజ్ ప్రాసెస్ సూచనలు లేదా ఆదేశాలు ఉన్నాయి. మీరు దానిలో ముందుకు వెళ్లాలనుకుంటే మీకు అవసరమైన ప్రిపరేషన్ ఉందని నిర్ధారించుకోండి:
- Ansible దృష్టాంతంలో పని చేయడానికి, మేము మొదట సర్వర్లో Ansible సాధనాన్ని సెటప్ చేస్తాము మరియు మీరు Ansible వెర్షన్ 2.11.7ని కలిగి ఉన్నారని నిర్ధారించుకోండి, తద్వారా మేము సులభంగా Kubernetes ప్లగ్ఇన్ను ఉపయోగించవచ్చు.
- Kubernetes ప్లగ్ఇన్ని అంచనా వేయడానికి, మాకు అంతర్నిర్మిత Kubernetes క్లస్టర్తో కూడిన రిమోట్ సర్వర్ పరికరం అవసరం.
- రిమోట్ హోస్ట్ ప్రస్తుతం Ansible సూచనలు మరియు ప్లేబుక్లను అలాగే బిల్ట్ ఇన్వెంటరీ ఫైల్ను అమలు చేయడానికి కాన్ఫిగర్ చేయబడింది. టార్గెట్ రిమోట్ పరికరం పేరు K8s మాస్టర్ నోడ్.
- పైథాన్ యొక్క సంస్కరణ 3.6 లేదా అంతకంటే ఎక్కువ, ఇది తప్పనిసరిగా అన్సిబుల్ కంట్రోలర్ పరికరంలో ఇన్స్టాల్ చేయబడాలి. ఇది టార్గెట్ రిమోట్ హోస్ట్ పరికరంలో కూడా ఉంటుంది.
- పైథాన్ ఓపెన్షిఫ్ట్ మాడ్యూల్ వెర్షన్ 0.6 లేదా అంతకంటే ఎక్కువ. మాకు వెర్షన్ 3.11 లేదా అంతకంటే ఎక్కువ pyYAML మాడ్యూల్ కూడా అవసరం. రెండు మాడ్యూల్లు తప్పనిసరిగా రిమోట్ సర్వర్ పరికరంలో అలాగే కంట్రోలర్ పరికరంలో సెటప్ చేయబడాలి.
ఉదాహరణ:
మేము అన్సిబుల్లో కుబెర్నెట్లను అమలు చేసే మొదటి ఉదాహరణ ఇక్కడ ఉంది. అలా చేయడానికి, మేము Kubernetes ఇన్వెంటరీ మూలాన్ని అమలు చేయడానికి ఏదైనా Ansible వాతావరణాన్ని ఉపయోగిస్తాము. క్రింది లిస్టెడ్ ప్రక్రియలు Kubernetes ఇన్వెంటరీ ప్లగిన్ ఉపయోగించి క్రింది దృష్టాంతంలో నిర్వహించబడతాయి:
- అన్సిబుల్లోని K8s క్లస్టర్లో కొత్త నేమ్స్పేస్ని అమలు చేయడం.
- Ansible ప్లేబుక్ ఉపయోగించి nginx పాడ్ సృష్టి.
- Ansibleలో nginx విస్తరణ సృష్టి.
భావనలు మరియు అమలును సులభంగా అర్థం చేసుకోవడానికి, మేము అనేక దశల్లో ఉదాహరణను అమలు చేస్తాము.
దశ 1: K8s క్లస్టర్లో కొత్త నేమ్స్పేస్ని అన్సిబుల్లో అమలు చేయండి
మొదటి దశలో, మేము ప్లేబుక్ని సృష్టిస్తాము, తద్వారా మేము కంటెంట్ను “.yml” ఆకృతిలో Ansibleలో వ్రాయగలము. ప్లేబుక్ని సృష్టించడానికి, మేము ఉపయోగించే కింది ఆదేశం:
[ రూట్ @ మాస్టర్ అన్సిబుల్ ] # నానో nginx_pod.yml
ఇప్పుడు, “pod.yml” ప్లేబుక్ సృష్టించబడింది మరియు Ansible యొక్క కొత్త టెర్మినల్లోకి ప్రారంభించబడింది. మేము స్క్రిప్ట్ రాయడం ప్రారంభిస్తాము. ప్లేబుక్లో, మేము మొదట “v1” అయిన Ansible పాడ్లో ఉపయోగించే API సంస్కరణను నిర్వచించాము. మేము నిర్వచించే నేమ్స్పేస్ “అన్సిబుల్-నేమ్స్పేస్”. అప్పుడు, మేము ansible-namespace యొక్క మెటాడేటాను జాబితా చేస్తాము. మెటాడేటాలో, మేము nginx సాఫ్ట్వేర్ను మరియు దానిలో విలువ ఫ్రంటెండ్ స్థాయిని కలిగి ఉన్న లేబుల్ని ఉపయోగిస్తాము. ప్లేబుక్ యొక్క స్పెక్లో, కంటైనర్లో నిల్వ చేయబడిన పేరు మరియు చిత్రాన్ని మేము జాబితా చేస్తాము; రెండూ దానిలో nginxని కలిగి ఉంటాయి.
దశ 2: Ansibleలో మానిఫెస్ట్ పత్రాన్ని సృష్టించండి
ఇప్పుడు, మేము '.yml' ఆకృతిలో విస్తరణ పత్రం అయిన Ansible యొక్క అదే డైరెక్టరీలో మరొక పత్రాన్ని సృష్టిస్తాము. మానిఫెస్ట్ పత్రాన్ని సృష్టించడానికి, అన్సిబుల్ టెర్మినల్లో కింది ఆదేశాన్ని ఉపయోగించండి:
[ రూట్ @ మాస్టర్ అన్సిబుల్ ] # నానో nginx_deployment.yml
మానిఫెస్ట్ డాక్యుమెంట్లో, మేము ముందుగా “యాప్/వి1” యాప్ వెర్షన్ని మళ్లీ నిర్వచించాము. అప్పుడు, అది ఏ రకమైన ఫైల్, ఇది విస్తరణ ఫైల్ కాదా అని మేము తెలియజేస్తాము. అప్పుడు, మేము నేమ్స్పేస్ని నిర్వచించాము, ఇది యాన్సిబుల్-నేమ్స్పేస్. అమలును రూపొందించడానికి, ansible-namespace లోపల రెండు ప్రతిరూపాలు పాడ్ సంఖ్యను చూపుతాయి. nginx చిత్రాలు 1.14.2 పాడ్లో ప్రారంభించబడ్డాయి. మ్యాచ్లేబుల్స్ పరామితి పాడ్ల ట్యాగ్లను మరియు స్పెక్ పారామీటర్ కింద వాటి స్పెసిఫికేషన్లను అందిస్తుంది. పాడ్లపై ఉన్న ట్యాగ్లు కాన్ఫిగరేషన్ సమాచారంలో పేర్కొన్న వాటికి సరిపోలితే, అమలు అన్సిబుల్లోని మానిఫెస్ట్ డాక్యుమెంట్లో జరుగుతుంది.
దశ 3: అన్సిబుల్లో కుబెర్నెట్స్ ఇంప్లిమెంటేషన్ కోసం ప్లేబుక్ని సృష్టించండి
ఇప్పుడు, మేము అన్సిబుల్లో మరొక ప్లేబుక్ని సృష్టించాలనుకుంటున్నాము. ఈ ప్లేబుక్లో, మేము దానిలోని కుబెర్నెట్స్ యొక్క కార్యాచరణను అమలు చేస్తాము. ప్లేబుక్ని సృష్టించడానికి కింది ఆదేశాన్ని ఉపయోగించండి:
[ రూట్ @ మాస్టర్ అన్సిబుల్ ] # నానో kubernetes_main.yml
ప్లేబుక్ మునుపటి ప్లేబుక్ మరియు మానిఫెస్ట్ డాక్యుమెంట్ అన్సిబుల్లో నిల్వ చేయబడిన అదే డైరెక్టరీలో సృష్టించబడింది. ప్లేబుక్లో, మేము ముందుగా అమలు చేయాలనుకుంటున్న ప్లేబుక్ యొక్క కార్యాచరణను నిర్వచించాము. కనెక్షన్ని నిర్మించడానికి, మేము టార్గెట్ చేయాలనుకుంటున్న రిమోట్ హోస్ట్లను అందిస్తాము. ఇక్కడ, మేము 'అన్ని' హోస్ట్లను లక్ష్యంగా చేసుకుంటాము. తరువాత, అది నిల్వ చేయబడిన మార్గాన్ని ఉపయోగించి Ansible లో పైథాన్ ఇంటర్ప్రెటర్ని తనిఖీ చేయడానికి మేము వేరియబుల్ను నిర్వచించాము. ఇప్పుడు, మేము ప్లేబుక్లోని టాస్క్లను నిర్వచించాము. ముందుగా, మేము minikube పరికరం యొక్క స్థితిని తనిఖీ చేస్తాము. తర్వాత, మేము ప్లేబుక్లో కొత్త కుబెర్నెట్స్ నేమ్స్పేస్ని సృష్టిస్తాము. తర్వాత, nginx_pod.yml మరియు nginx_deployment .ymlని రిమోట్ పరికరానికి నకిలీ చేయండి.
ఈ yml డాక్యుమెంట్ల ద్వారా, మేము రిమోట్ పరికరంలో పాడ్ అమలును రూపొందిస్తాము. ఆపై, మేము రిమోట్ పరికరంలో పేర్కొన్న ప్రదేశంలో Kubernetes పాడ్ ఉందో లేదో తనిఖీ చేస్తాము.
ప్లేబుక్ ముగింపు తర్వాత, మేము ఇప్పుడు ఇన్వెంటరీ ఫైల్ను రూపొందిస్తాము, తద్వారా మేము అన్సిబుల్ కంట్రోలర్ మరియు టార్గెట్ రిమోట్ హోస్ట్ మధ్య కనెక్షన్ని చేస్తాము.
అన్నీ:హోస్ట్లు:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ********
ansible_connection: ssh
ansible_port: 22
[ రూట్ @ మాస్టర్ అన్సిబుల్ ] # ansible-playbook kubernates_main.yml
లక్ష్య మెషీన్లో పనులు విజయవంతంగా ఉంచబడినట్లు మనం చూసే కావలసిన అవుట్పుట్ ఇక్కడ ఉంది:
టాస్క్ను టార్గెట్ మెషీన్లో ఉంచిన తర్వాత, “అన్సిబుల్-నేమ్స్పేస్” కుబెర్నెట్స్ క్లస్టర్లో ఉందో లేదో మేము తనిఖీ చేస్తాము. మేము ఈ క్రింది 'grep' ఆదేశాన్ని ఉపయోగిస్తాము:
[ రూట్ @ మాస్టర్ అన్సిబుల్ ] # kubectl నేమ్స్పేస్ పొందండి | grep ansible-namespace
మీరు Kubernetes క్లస్టర్ యొక్క నేమ్స్పేస్లో సృష్టించిన పాడ్ని తనిఖీ చేయాలనుకుంటే, తనిఖీ చేయడానికి క్రింది ఆదేశాన్ని వ్రాయండి:
[ రూట్ @ మాస్టర్ అన్సిబుల్ ] # kubectl పాడ్లను పొందండి --నేమ్స్పేస్ యాన్సిబుల్-నేమ్స్పేస్
మీరు మునుపటి అవుట్పుట్లో చూసినట్లుగా, మేము పరికరంలో నడుస్తున్న పాడ్లను పొందుతాము. ఇప్పుడు, మేము Kubernetes క్లస్టర్లో చేసిన విస్తరణను తనిఖీ చేస్తాము. ఇప్పటికే చేసిన విస్తరణలను తనిఖీ చేయడానికి క్రింది ప్రకటనను ఉపయోగించండి:
[ రూట్ @ మాస్టర్ అన్సిబుల్ ] # kubectl విస్తరణలను పొందండి --namespace ansible-namespace
ముగింపు
మేము Ansible లో Kubernetes ఇన్వెంటరీ మూలం ఏమిటో తెలుసుకున్నాము. అన్సిబుల్లో కుబెర్నెట్స్ ఇన్వెంటరీని ఎలా ఉపయోగించాలో కూడా మేము నేర్చుకున్నాము. అప్పుడు, మేము ఒక ఉదాహరణను అమలు చేసాము, తద్వారా మేము Ansibleలో Kubernetes ఇన్వెంటరీ సోర్స్ యొక్క పని గురించి మరింత స్పష్టంగా తెలుసుకుంటాము.