CentOS 7 पर कुबेदम के साथ कुबेरनेट्स तैनात करें

अवलोकन

यह लेख आपको कुछ समय में कुबेदेम के साथ कुबेरनेट क्लस्टर बनाने और चलाने में मदद करने के लिए है। यह मार्गदर्शिका दो सर्वर, एक मास्टर और एक कार्यकर्ता को तैनात करेगी, हालाँकि आप जितने चाहें उतने सर्वर तैनात कर सकते हैं।

Kubeadm क्या है?

Kubeadm, Kubernetes द्वारा विकसित एक उपकरण है जो आपको सर्वोत्तम व्यवहार का पालन करके न्यूनतम व्यवहार्य क्लस्टर प्राप्त करने और चलाने की अनुमति देता है। यह केवल आपके क्लस्टर बूटस्ट्रैप करेगा, न कि प्रावधान मशीनें। एडनस, कुबेरनेट्स डैशबोर्ड, मॉनिटरिंग सॉल्यूशंस और कुछ चीजें जैसे कुबेदम आपके लिए कुछ नहीं करेगा।

आवश्यक शर्तें

जिन सर्वरों को हम तैनात करेंगे, उनके लिए कुछ आवश्यकताएँ हैं। एक या अधिक मशीनें एक डिब / आरपीएम-संगत ओएस चला रही हैं। हम CentOS का उपयोग करेंगे।

  • प्रति मशीन 2 जीबी या अधिक रैम
  • 2 सीपीयू या अधिक मास्टर पर

क्लस्टर में सभी मशीनों के बीच पूर्ण नेटवर्क कनेक्टिविटी

इस गाइड में तैनात दो सर्वर निम्नलिखित हैं: - CentOS 7 (वर्कर नोड) के साथ 1 CPU 2GB RAM - CentOS 7 (मास्टर नोड) के साथ 2 CPU 4GB RAM

दोनों सर्वर पर रैम की इस मात्रा के साथ, कुबेरनेट को सांस लेने के लिए बहुत जगह मिलेगी।

कार्यकर्ता और मास्टर को कॉन्फ़िगर करना

यहां हमें मास्टर और वर्कर नोड दोनों पर कदम उठाने होंगे:

  • यम अद्यतन और संकुल
  • कर्ता स्थापित करें
  • सेलिनक्स को अक्षम करें
  • स्वैप अक्षम करें
  • फ़ायरवॉल को अक्षम करें
  • IPTables अद्यतन करें
  • क्यूबलेट / कुबेदम / कुब्तेल स्थापित करें

डॉकटर को स्थापित करना

हम 1.14इस ट्यूटोरियल में कुबेरनेट्स के संस्करण का उपयोग करेंगे । इस संस्करण के लिए, कुबेरनेट्स डॉकर संस्करण चलाने की सलाह देते हैं 18.06.2। कुबेरनेट्स के अपने संस्करण के लिए अनुशंसित डॉकर संस्करण की जांच करना सुनिश्चित करें

हम डॉक रिपॉजिटरी को यम में जोड़ रहे हैं और विशेष रूप से स्थापित कर रहे हैं 18.06.2। एक बार डॉकटर स्थापित हो जाने के बाद, हमें कुबेरनेट्स द्वारा सुझाई गई सेटिंग्स में docker डेमन को कॉन्फ़िगर करना होगा।

###Add yum-utils, if not installed already
yum install yum-utils

###Add Docker repository.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

###Install Docker CE.
yum update && yum install docker-ce-18.06.2.ce

###Create /etc/docker directory.
mkdir /etc/docker

###Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

###Restart Docker
systemctl daemon-reload
systemctl enable docker.service
systemctl restart docker

SELinux अक्षम करें

चूंकि हम CentOS का उपयोग कर रहे हैं इसलिए हमें SELinux को निष्क्रिय करना होगा। यह आवश्यक है कि कंटेनरों को होस्ट फाइल सिस्टम तक पहुंचने की अनुमति दी जाए।

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disable/' /etc/selinux/config

स्वैप अक्षम करें

क्यूबलेट को ठीक से काम करने की अनुमति देने के लिए स्वैप को अक्षम करना होगा।

sed -i '/swap/d' /etc/fstab
swapoff -a

फ़ायरवॉल को अक्षम करें

Kubernetes इनबाउंड और आउटबाउंड ट्रैफ़िक को संभालने के लिए IPTables का उपयोग करता है - इसलिए हम फ़ायरवॉल को अक्षम करने वाले किसी भी मुद्दे से बचने के लिए।

systemctl disable firewalld
systemctl stop firewalld

IPTables अद्यतन करें

कुबेरनेट्स की सिफारिश है कि हम यह सुनिश्चित करते हैं कि net.bridge.bridge-nf-call-iptablesयह 1 पर सेट हो। यह उन मुद्दों के कारण है जहां REHL / CentOS 7 में ट्रैफिक के साथ गलत तरीके से आईपीएल को दरकिनार करने के कारण गलत तरीके से फिर से चलाने के मुद्दे हैं।

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

क्यूबलेट / कुबेदम / कुब्तेल स्थापित करें

हम yum को kubernetes रेपो को जोड़ने की आवश्यकता होगी। एक बार जब हम ऐसा कर लेते हैं तो हमें बस इंस्टॉल कमांड चलाने और क्यूबलेट को सक्षम करने की आवश्यकता होती है।

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet

अब हमने अपने मास्टर और वर्कर नोड दोनों को पूरी तरह से कॉन्फ़िगर कर लिया है। अब हम अपने मास्टर नोड को इनिशियलाइज़ कर सकते हैं और अपने वर्कर को मास्टर में शामिल कर सकते हैं!

नोट यदि आप अधिक कार्यकर्ता नोड्स जोड़ना चाहते हैं तो उपरोक्त प्रक्रिया उन सभी नोड्स पर भी की जानी चाहिए।

मास्टर नोड सेटअप

हम निम्नलिखित कमांड को चलाकर अपने मास्टर नोड को इनिशियलाइज़ करना चाहते हैं। आप नीचे दिए गए आदेश में अपने मास्टर नोड के आईपी पते को स्थानापन्न करना चाहेंगे। इसके अतिरिक्त, हम फ़्लानलाइन नेटवर्क ओवरले को स्थापित करने के बाद पॉड-नेटवर्क-सिड्र में पास करेंगे, जो बाद में हमारे लिए आसान हो जाएगा।

kubeadm init --apiserver-advertise-address=YOUR_IP_HERE --pod-network-cidr=10.244.0.0/16

इसे पूरा करने में थोड़ा समय लग सकता है लेकिन एक बार यह पूरा हो जाने के बाद आपको आउटपुट के अंत में भी कुछ ऐसा ही दिखाई देगा।

kubeadm join YOUR_IP:6443 --token 4if8c2.pbqh82zxcg8rswui \
--discovery-token-ca-cert-hash sha256:a0b2bb2b31bf7b06bb5058540f02724240fc9447b0e457e049e59d2ce19fcba2

यह कमांड आपके कार्यकर्ता नोड्स को क्लस्टर में शामिल होने के लिए निष्पादित करने की आवश्यकता है, इसलिए इसका ध्यान रखें।

अगला अप फलालैन है। फलालैन वह है जो फली को फली संचार की अनुमति देता है। कई अन्य प्रकार के नेटवर्क ओवरले हैं जिन्हें आप इंस्टॉल कर सकते हैं लेकिन सादगी के लिए यह गाइड फ़्लेनेल का उपयोग करेगा।

kube/configफ़ाइल को अपने पर कॉपी करें $Homeताकि आप kubectlकमांड निष्पादित कर सकें ।

mkdir $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config

मास्टर नोड पर एक अंतिम चरण फलालैन को स्थापित करना है। निम्न आदेश चलाएँ।

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

आपके द्वारा कॉपी किए गए इस कॉन्‍फ़िगरेशन से आप रन कर पाएंगे kubectl get csऔर प्रतिक्रिया पा सकेंगे ।

NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}

आपका मास्टर नोड सेट है और जाने के लिए तैयार है। कार्यकर्ता नोड पर!

कार्यकर्ता नोड

इस बिंदु पर कोई अतिरिक्त काम नहीं है जो कार्यकर्ता नोड पर आवश्यक है। हमें बस इतना करना है kubeadm joinकि हम अपने kubeadm initआउटपुट से प्राप्त कमांड को चलाएं ।

यदि किसी संयोग से आपने कुबेदम ज्वाइन कर लिया है तो आप कमांड को रन करके मास्टर नोड पर एक और उत्पन्न कर सकते हैं kubeadm token create --print-join-command

एक बार जब आप kubeadm join कमांड चलाते हैं, यदि आप kubectl get nodesमास्टर पर चलते हैं तो आपको निम्न के समान आउटपुट दिखाई देगा।

NAME          STATUS   ROLES    AGE    VERSION
k8-master   Ready    master   107m   v1.14.2
k8-worker   Ready    <none>   45m    v1.14.2

समेट रहा हु

ठीक वैसे ही जैसे आपने kubeadm का उपयोग करके एक कुबेरनेट क्लस्टर को बूटस्ट्रैप किया है। आप निजी नेटवर्क के साथ भी ऐसा कर सकते हैं। वल्चर, साथ ही अन्य क्लाउड प्रदाता, निजी नेटवर्क के लिए अनुमति देते हैं। इसके अलावा, यदि आप अपने क्लस्टर के खिलाफ अपने स्थानीय मशीन से kubectl कमांड निष्पादित करना चाहते हैं, तो आप इसे स्थानीय स्तर पर स्थापित kubectl द्वारा पूरा कर सकते हैं और .kube/configक्लस्टर से फ़ाइल को अपनी स्थानीय मशीन में खींच सकते हैं $HOME/.kube/config

उम्मीद है कि यह मार्गदर्शिका आपको कुबेदम को आगे बढ़ाने में मदद करती है और आपको कुछ ही समय में कुबेरनेट के साथ खेलने में मदद करती है!

उपयोगी कड़ियाँ:



कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ

CentOS 7 पर RockMongo स्थापित करें

CentOS 7 पर RockMongo स्थापित करें

RockMongo एक वेब-आधारित MongoDB प्रबंधन उपकरण है जो MySQL प्रबंधन उपकरण के समान है: phpMyAdmin। यह ट्यूटोरियल इंस्टॉलिन की प्रक्रिया को कवर करेगा

CentOS 7 पर बुक किए गए समयबद्धक को कैसे स्थापित करें

CentOS 7 पर बुक किए गए समयबद्धक को कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? आवश्यकताएँ एक Vultr CentOS 7 सर्वर उदाहरण। एक sudo यूजर। चरण 1: सिस्टम को पहले अपडेट करें, अपने सिस्टम सर्वर को वें में अपडेट करें

CentOS 7 पर नेटडाटा स्थापित करना

CentOS 7 पर नेटडाटा स्थापित करना

एक अलग प्रणाली का उपयोग? नेटडाटा रियल-टाइम सिस्टम मेट्रिक्स मॉनिटरिंग के क्षेत्र में एक उभरता हुआ सितारा है। एक ही तरह के अन्य उपकरणों की तुलना में, नेटडाटा:

CentOS 7 पर स्टारबाउंड सर्वर कैसे स्थापित करें

CentOS 7 पर स्टारबाउंड सर्वर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? इस ट्यूटोरियल में, बीमार समझा जा रहा है कि CentOS 7 पर एक स्टारबाउंड सर्वर को कैसे सेटअप किया जाए। आवश्यक शर्तें आपको इस गेम को खुद पर बनाना होगा।

CentOS 7 पर Django कैसे स्थापित करें

CentOS 7 पर Django कैसे स्थापित करें

वेब एप्लिकेशन लिखने के लिए Django एक लोकप्रिय पायथन फ्रेमवर्क है। Django के साथ, आप तेजी से अनुप्रयोगों का निर्माण कर सकते हैं, पहिया को फिर से बनाए बिना। अगर आप चाहते हैं

CentOS 6 पर SA-MP सैन एंड्रियास मल्टीप्लेयर सर्वर सेटअप करें

CentOS 6 पर SA-MP सैन एंड्रियास मल्टीप्लेयर सर्वर सेटअप करें

एक अन्य Vultr ट्यूटोरियल में आपका स्वागत है। यहां, आप सीखेंगे कि एसएएमपी सर्वर कैसे स्थापित करें और चलाएं। यह गाइड CentOS 6 के लिए लिखा गया था

CentOS 7 पर Revive Adserver इनस्टॉल करना

CentOS 7 पर Revive Adserver इनस्टॉल करना

Revive Adserver एक स्वतंत्र और खुला स्रोत विज्ञापन सेवारत प्रणाली है जिसका उपयोग वेबसाइटों पर, ऐप्स में और / या वीडियो खिलाड़ियों में विज्ञापनों को प्रबंधित करने के लिए किया जा सकता है। इस लेख में,

CentOS 7 पर पार्स सर्वर कैसे स्थापित करें

CentOS 7 पर पार्स सर्वर कैसे स्थापित करें

पार्स सर्वर पार्स बैकेंड सेवा के लिए खुला स्रोत विकल्प है जिसे बंद किया जा रहा है। यदि आप इस सेवा के प्रशंसक हैं, तो आप अभी भी वें का आनंद ले सकते हैं

CentOS 7 पर एल्ग स्थापित करें

CentOS 7 पर एल्ग स्थापित करें

एक अलग प्रणाली का उपयोग? एल्ग एक खुला स्रोत सोशल नेटवर्किंग इंजन है जो परिसर के सामाजिक नेटवर्क जैसे सामाजिक वातावरण के निर्माण की अनुमति देता है

CentOS 7 पर डायस्पोरा के साथ अपने सामाजिक नेटवर्क का निर्माण करें

CentOS 7 पर डायस्पोरा के साथ अपने सामाजिक नेटवर्क का निर्माण करें

एक अलग प्रणाली का उपयोग? डायस्पोरा एक गोपनीयता-जागरूक, ओपन सोर्स सोशल नेटवर्क है। इस ट्यूटोरियल में, आप सीखेंगे कि डायस्पोरा पो को कैसे सेट और कॉन्फ़िगर करें

CentOS पर Z और Zsh के साथ उत्पादकता बढ़ाएँ

CentOS पर Z और Zsh के साथ उत्पादकता बढ़ाएँ

परिचय लिनक्स सिस्टम पर काम करने का मतलब है कि कोई कमांड लाइन का उपयोग अधिक बार नहीं कर रहा है। स्वागत के रूप में बार-बार लंबी निर्देशिका के नाम टाइप करना

कैसे एक Vultr LEMP सर्वर पर OpenCart स्थापित करें

कैसे एक Vultr LEMP सर्वर पर OpenCart स्थापित करें

ओपनकार्ट एक लोकप्रिय ओपन सोर्स शॉपिंग कार्ट सॉल्यूशन है जिसे उत्कृष्ट कार्यक्षमता, उपयोग में आसानी और उपस्थिति प्रदान करने के लिए डिज़ाइन किया गया है। OpenCart के साथ, आप सीए

CentOS 7 पर विकास के लिए Sails.js सेटअप करें

CentOS 7 पर विकास के लिए Sails.js सेटअप करें

एक अलग प्रणाली का उपयोग? परिचय Sails.js Node.js के लिए MVC फ्रेमवर्क है, जो रूबी ऑन रेल्स के समान है। यह आधुनिक अनुप्रयोगों को विकसित करने के लिए बनाता है

कैसे CentOS 7 पर स्रोत से Nginx संकलन करने के लिए

कैसे CentOS 7 पर स्रोत से Nginx संकलन करने के लिए

एक अलग प्रणाली का उपयोग? NGINX को HTTP / HTTPS सर्वर, रिवर्स प्रॉक्सी सर्वर, मेल प्रॉक्सी सर्वर, लोड बैलेंसर, TLS टर्मिनेटर, या कैचिन के रूप में उपयोग किया जा सकता है

CentOS 7 पर dotCMS कैसे स्थापित करें

CentOS 7 पर dotCMS कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? dotCMS जावा में लिखा एक ओपन सोर्स एंटरप्राइज ग्रेड कंटेंट मैनेजमेंट सिस्टम है। इसमें लगभग हर सुविधा आवश्यक टी होती है

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ