Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Percona XtraDB क्लस्टर Kubernetes ऑपरेटर का अवलोकन

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

Percona XtraDB क्लस्टर ऑपरेटर Percona XtraDB क्लस्टर के विशिष्ट कार्यों को स्वचालित करने का एक साफ-सुथरा तरीका है, जैसे कि Percona द्वारा निर्मित और अनुरक्षित Kubernetes के भीतर परिनियोजन, स्केलिंग, बैकअप और अपग्रेड। यह क्लस्टर को एक स्टेटफुलसेट में एक परसेंट वॉल्यूम के साथ तैनात करता है, जो हमें क्लस्टर में प्रत्येक पॉड के लिए एक सुसंगत पहचान बनाए रखने और हमारे डेटा को बनाए रखने की अनुमति देता है।

इस ब्लॉग पोस्ट में, हम Google क्लाउड प्लेटफ़ॉर्म पर Percona XtraDB क्लस्टर कुबेरनेट्स ऑपरेटर द्वारा ऑर्केस्ट्रेटेड कंटेनरीकृत वातावरण में Percona XtraDB क्लस्टर 8.0 की तैनाती का परीक्षण करने जा रहे हैं।

Google क्लाउड पर Kubernetes क्लस्टर बनाना

इस पूर्वाभ्यास में, हम Google क्लाउड पर कुबेरनेट्स क्लस्टर का उपयोग करने जा रहे हैं क्योंकि कुबेरनेट्स को चलाना और चलाना अपेक्षाकृत सरल और आसान है। अपने Google क्लाउड प्लेटफ़ॉर्म डैशबोर्ड में लॉगिन करें -> कंप्यूट -> कुबेरनेट्स इंजन -> क्लस्टर बनाएं, और आपको निम्न संवाद के साथ प्रस्तुत किया जाएगा:

बस Kubernetes क्लस्टर नाम दर्ज करें, अपना पसंदीदा क्षेत्र चुनें और "CREATE" पर क्लिक करें " (पृष्ठ के निचले भाग में)। 5 मिनट में, 3-नोड कुबेरनेट्स क्लस्टर तैयार हो जाएगा। अब, अपने वर्कस्टेशन पर, gcloud SDK इंस्टॉल करें जैसा कि इस गाइड में दिखाया गया है और फिर Kubernetes कॉन्फ़िगरेशन को अपने वर्कस्टेशन में खींचें:

$ gcloud कंटेनर क्लस्टर get-credentials my-k8s-cluster --zone asia-northeast1-a --project s9s-qaFetching क्लस्टर एंडपॉइंट और auth data.kubeconfig प्रविष्टि my-k8s-cluster के लिए जेनरेट की गई। 

इस समय आपको कुबेरनेट्स क्लस्टर से जुड़ने में सक्षम होना चाहिए। सत्यापित करने के लिए निम्न आदेश चलाएँ:

$ kubectl नोड्स प्राप्त करेंनाम स्थिति भूमिकाएँ आयु संस्करणgke-my-k8s-cluster-default-pool-b80902cd-gp09 तैयार  139m v1.16.13-gke.401gke-my-k8s-cluster-default-pool -b80902cd-jdc3 तैयार  139m v1.16.13-gke.401gke-my-k8s-cluster-default-pool-b80902cd-rdv8 तैयार  139m v1.16.13-gke.401 

उपरोक्त आउटपुट का अर्थ है कि हम Kubernetes मास्टर से कनेक्ट करने और Kubernetes क्लस्टर नोड्स को पुनः प्राप्त करने में सक्षम हैं। अब, हम कुबेरनेट्स वर्कलोड चलाने के लिए तैयार हैं।

कुबेरनेट्स पर एक Percona XtraDB क्लस्टर परिनियोजित करना

कार्यभार परिनियोजन के लिए, हम Percona XtraDB क्लस्टर ऑपरेटर दस्तावेज़ीकरण में बताए गए निर्देशों का पालन करने जा रहे हैं। मूल रूप से, हम कस्टम संसाधन, नाम स्थान, भूमिका-आधारित अभिगम नियंत्रण और कुबेरनेट्स ऑपरेटर बनाने के लिए अपने वर्कस्टेशन पर निम्न कमांड चलाते हैं:

$ git क्लोन -b v1.6.0 https://github.com/percona/percona-xtradb-cluster-operator$ cd percona-xtradb-cluster-operator/$ kubectl apply -f परिनियोजन/crd। yaml$ kubectl नाम स्थान बनाएँ pxc$ kubectl config सेट-संदर्भ $(kubectl config current-context) --namespace=pxc$ kubectl क्लस्टररोलबाइंडिंग क्लस्टर-व्यवस्थापक-बाइंडिंग --clusterrole=cluster-admin --user=$(gcloud config get -मूल्य कोर/खाता)$ kubectl लागू -f परिनियोजन/rbac.yaml$ kubectl लागू -f परिनियोजन/ऑपरेटर.yaml 

अगला, हमें अपने पासवर्ड तैयार करने होंगे (इसे कुबेरनेट्स टर्म में सीक्रेट्स कहा जाता है) बेस 64 एन्कोडेड फॉर्मेट में डिप्लॉय/secrets.yaml के अंदर के मानों को अपडेट करके। आप https://www.base64encode.org/ जैसे ऑनलाइन टूल का उपयोग कर सकते हैं या निम्न जैसे कमांड-लाइन टूल का उपयोग कर सकते हैं:

$ echo -n 'mypassword' | base64bXlwYXNzd29yZA== 

फिर, जैसा कि नीचे दिखाया गया है, परिनियोजन/secrets.yaml को अपडेट करें:

bXlwYXNzd29yZA==मॉनिटर:bXlwYXNzd29yZA==मॉनिटर:bXlwYXNzd29yZA==मॉनिटर:bXlwYXNzd29yZA==WXLwYXNzd29yZA=wYX=YXdYXNzd29yZA=WYX=YXdYXNzd29yZA=WYX=YXDYXNzd29yZA=WYX=YXdYXNzd29yZA=WYX ==ऑपरेटर:bXlwYXNzd29yZA==

उपरोक्त गुप्त प्रबंधन का एक सुपर सरलीकरण है, जहां हम सभी उपयोगकर्ताओं के लिए सभी पासवर्ड समान होने के लिए सेट करते हैं। उत्पादन में, कृपया अधिक जटिल पासवर्ड का उपयोग करें और प्रत्येक उपयोगकर्ता के लिए एक अलग पासवर्ड निर्दिष्ट करें।

अब, हम गुप्त कॉन्फ़िगरेशन को कुबेरनेट्स पर धकेल सकते हैं:

$ kubectl लागू -f परिनियोजन/secrets.yaml 

इससे पहले कि हम एक Percona XtraDB क्लस्टर को परिनियोजित करने के लिए आगे बढ़ें, हमें क्लस्टर के लिए डिप्लॉयमेंट/cr.yaml के अंदर डिफ़ॉल्ट परिनियोजन परिभाषा पर फिर से विचार करने की आवश्यकता है। कुबेरनेट्स की बहुत सारी वस्तुएं हैं जिन्हें यहां परिभाषित किया गया है, लेकिन उनमें से अधिकांश पर टिप्पणी की गई है। हमारे कार्यभार के लिए, हम नीचे के रूप में संशोधन करेंगे:

$ cat परिनियोजित/cr.yamlapiVersion:pxc.percona.com/v1-6-0kind:PerconaXtraDBClustermetadata:नाम:क्लस्टर1 फ़ाइनलाइज़र:- delete-pxc-pods-in-orderspec:crVersion:1.6.0 secretName :my-cluster-secrets vaultSecretName:keyring-secret-vault sslSecretName:my-cluster-ssl sslInternalSecretName:my-cluster-ssl-internal allowUnsafeConfigurations:false updateStrategy:SmartUpdate upgradeOptions:versionServiceEndcona.com apply:अनुशंसित शेड्यूल:"0 4 * * *" pxc:आकार:3 छवि:percona/percona-xtradb-cluster:8.0.20-11.1 कॉन्फ़िगरेशन:| [क्लाइंट] डिफ़ॉल्ट-कैरेक्टर-सेट =utf8 [mysql] डिफ़ॉल्ट-कैरेक्टर-सेट =utf8 [mysqld] कॉलेशन-सर्वर =utf8_unicode_ci कैरेक्टर-सेट-सर्वर =utf8 default_authentication_plugin =mysql_native_password संसाधन:अनुरोध:मेमोरी:1G एफ़िनिटी:एंटीएफ़िनिटी टोपोलॉजीकी:" Kubernetes.io/hostname" podDisruptionBudget:maxUnavailable:1 VolumeSpec:persistentVolumeClaim:संसाधन:अनुरोध:भंडारण:6Gi GracePeriod:600 haproxy:सक्षम:सही आकार:3 छवि:percona/percona-xtradb-cluster-operator:1.6.0-haproxy संसाधन:अनुरोध:मेमोरी:1G एफ़िनिटी:antiAffinityTopologyKey:"kubernetes.io/hostname" podDisruptionBudget:maxUnavailable:1 GracePeriod:30 बैकअप:छवि:percona/percona-xtradb-cluster-operator:1.6.0-pxc8.0-बैकअप स्टोरेज :एफएस-पीवीसी:प्रकार:फाइल सिस्टम वॉल्यूम:लगातार वॉल्यूम क्लेम:एक्सेसमोड्स:["ReadWriteOnce" ] संसाधन:अनुरोध:भंडारण:6Gi शेड्यूल:- नाम:"दैनिक-बैकअप" शेड्यूल:"0 0 * * *" रखें:5 स्टोरेजनाम:fs-pvc 

हमने प्रदान किए गए cr.yaml में कुछ संशोधन किए हैं ताकि यह हमारे एप्लिकेशन के साथ काम कर सके, जैसा कि ऊपर दिखाया गया है। सबसे पहले, हमें यह सुनिश्चित करने के लिए कि कुबेरनेट्स सीमित सीपीयू के साथ नोड्स पर पॉड निर्माण को सही ढंग से शेड्यूल करने में सक्षम है, यह सुनिश्चित करने के लिए हमें सभी सीपीयू से संबंधित लाइनों पर टिप्पणी (या हटाना) करना होगा, उदाहरण के लिए [*].resources.requests.cpu:600m। फिर हमें अपने वर्डप्रेस एप्लिकेशन के साथ सुचारू रूप से काम करने के लिए Percona XtraDB क्लस्टर 8.0 के लिए कुछ संगतता विकल्प जोड़ने की जरूरत है, जिसे हम बाद में तैनात करने जा रहे हैं, जैसा कि निम्नलिखित अंश में दिखाया गया है:

  कॉन्फ़िगरेशन:| [क्लाइंट] डिफ़ॉल्ट-कैरेक्टर-सेट =utf8 [mysql] डिफ़ॉल्ट-कैरेक्टर-सेट =utf8 [mysqld] कॉलेशन-सर्वर =utf8_unicode_ci कैरेक्टर-सेट-सर्वर =utf8 default_authentication_plugin =mysql_native_password 

उपरोक्त हमारे वर्डप्रेस कंटेनर में MySQLi PHP ड्राइवर के साथ सेट किए गए MySQL सर्वर के डिफ़ॉल्ट कैरेक्टर से मेल खाएगा। अगला खंड HAProxy परिनियोजन है जहां इसे "सक्षम:सत्य" पर सेट किया गया है। "सक्षम:झूठा" के साथ एक प्रॉक्सीएसक्यूएल अनुभाग भी है - आम तौर पर प्रत्येक क्लस्टर के लिए कोई भी रिवर्स प्रॉक्सी चुनता है। अंतिम खंड बैकअप कॉन्फ़िगरेशन है, जहां हम हर दिन 12:00 पूर्वाह्न पर एक दैनिक बैकअप निर्धारित करना चाहते हैं और अंतिम 5 बैकअप रखना चाहते हैं।

अब हम अपने 3-नोड Percona XtraDB क्लस्टर को परिनियोजित करना शुरू कर सकते हैं:

$ kubectl लागू -f परिनियोजन/cr.yaml 

निर्माण प्रक्रिया में कुछ समय लगेगा। ऑपरेटर Percona XtraDB क्लस्टर पॉड्स को स्टेटफुल सेट के रूप में तैनात करेगा, जिसका अर्थ है कि एक समय में एक पॉड निर्माण और स्टेटफुलसेट में प्रत्येक पॉड को 0 से N-1 तक एक पूर्णांक ऑर्डिनल सौंपा जाएगा, जो सेट पर अद्वितीय है। प्रक्रिया समाप्त हो जाती है जब ऑपरेटर और पॉड दोनों अपने चलने की स्थिति में पहुंच जाते हैं:

$ kubectl get podsNAME तैयार स्थिति पुनरारंभ AGEcluster1-haproxy-0 2/2 रनिंग 0 71mcluster1-haproxy-1 2/2 रनिंग 0 70mcluster1-haproxy-2 2/2 रनिंग 0 70mcluster1-pxc-0 1/ 1 रनिंग 0 71mcluster1-pxc-1 1/1 रनिंग 0 70mcluster1-pxc-2 1/1 रनिंग 0 69mpercona-xtradb-cluster-operator-79d786dcfb-6clld 1/1 रनिंग 0 121m 

चूंकि यह ऑपरेटर एक कस्टम संसाधन है, हम मानक Kubernetes संसाधन को पसंद करने के लिए perconaxtradbcluster संसाधन में हेरफेर कर सकते हैं:

$ kubectl get perconaxtradbclusterNAME ENDPOINT STATUS PXC PROXYSQL HAPROXY AGEcluster1 क्लस्टर1-haproxy.pxc तैयार 3 3 27h 

आप छोटे संसाधन नाम, "pxc" का भी उपयोग कर सकते हैं और निम्न कमांड के साथ प्रयास कर सकते हैं:

$ kubectl pxc$ kubectl संपादित करें pxc का वर्णन करें 

वर्कलोड सेट को देखते हुए, हम बता सकते हैं कि ऑपरेटर ने दो स्टेटफुलसेट बनाए हैं:

$ kubectl स्टेटफुलसेट प्राप्त करें -ओ वाइडनाम रेडी एज कंटेनर इमेजसक्लस्टर1-हैप्रोक्सी 3/3 26एच हैप्रोक्सी, पीएक्ससी-मोनिट पेरकोना/पेरकोना-एक्सट्रैडब-क्लस्टर-ऑपरेटर:1.6.0-हैप्रोक्सी,पेरकोना/पेरकोना-एक्सट्रैड- क्लस्टर-ऑपरेटर:1.6.0-haproxycluster1-pxc 3/3 26h pxc percona/percona-xtradb-cluster:8.0.20-11.2 

ऑपरेटर संबंधित पॉड्स में लोड-बैलेंस कनेक्शन के लिए संबंधित सेवाएं भी बनाएगा:

$ kubectl get serviceNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEcluster1-haproxy ClusterIP 10.40.9.177  3306/TCP,3309/TCP,33062/TCP 3h27mcluster1-haproxy-replications ClusterIP 10.40. 0.236  3306/TCP 3h27mcluster1-pxc ClusterIP कोई नहीं  3306/TCP,33062/TCP 3h27mcluster1-pxc-unready ClusterIP कोई नहीं  3306/TCP,33062/TCP 3h27m 

उपरोक्त आउटपुट दर्शाता है कि ऑपरेटर ने 4 सेवाएं बनाई हैं:

  • क्लस्टर1-हैप्रोक्सी - लोड-संतुलित MySQL सिंगल-मास्टर (3306), प्रॉक्सी प्रोटोकॉल (3309) और MySQL एडमिन (33062) के लिए सेवा - MySQL 8.0.14 और बाद में पेश किया गया एक नया प्रशासनिक पोर्ट। यह सेवा का नाम या क्लस्टर आईपी पता है जिसे गैलेरा क्लस्टर से सिंगल-मास्टर कनेक्शन के लिए एप्लिकेशन को कनेक्ट करने की आवश्यकता है।
  • क्लस्टर1-हैप्रोक्सी-प्रतिकृति - लोड-संतुलित MySQL मल्टी-मास्टर (3306) के लिए सेवा। यह सेवा का नाम या क्लस्टर आईपी पता है जिसे राउंड-रॉबिन बैलेंसिंग एल्गोरिथम के साथ गैलेरा क्लस्टर से मल्टी-मास्टर कनेक्शन रखने के लिए एप्लिकेशन को कनेक्ट करने की आवश्यकता होती है।
  • cluster1-pxc - HAProxy को दरकिनार करते हुए लोड-संतुलित PXC पॉड्स की सेवा। इस सेवा से सीधे जुड़कर, कुबेरनेट्स सभी पीएक्ससी पॉड्स के लिए राउंड-रॉबिन फैशन में कनेक्शन को रूट करेगा, जैसा कि क्लस्टर-हैप्रोक्सी-रेप्लिकेज प्रदान करता है। सेवा में कोई सार्वजनिक आईपी पता निर्दिष्ट नहीं है और यह क्लस्टर के बाहर उपलब्ध नहीं है।
  • cluster1-pxc-unready - पॉड स्थिति की परवाह किए बिना एप्लिकेशन स्टार्टअप के दौरान पॉड एड्रेस की खोज के लिए 'पहले से ही' सेवा की आवश्यकता होती है। डेटाबेस के पूरी तरह से चालू होने से पहले Proxysql और pxc पॉड्स को एक दूसरे के बारे में पता होना चाहिए। पहले से ही सेवा में कोई सार्वजनिक आईपी पता निर्दिष्ट नहीं है और क्लस्टर के बाहर अनुपलब्ध है।

एक MySQL क्लाइंट के माध्यम से कनेक्ट करने के लिए, बस निम्न कमांड चलाएँ:

$ kubectl run -i --rm --tty percona-client --image=percona:8.0 --restart=Never -- bash -il 

यह एक क्षणिक पॉड बनाएगा और तुरंत कंटेनर वातावरण में प्रवेश करेगा। फिर, उचित क्रेडेंशियल के साथ मानक mysql क्लाइंट कमांड चलाएँ:

bash-4.2$ mysql -uroot -pmypassword -h क्लस्टर1-haproxy -P3306 -e 'SELECT @@hostname'mysql:[चेतावनी] कमांड लाइन इंटरफेस पर पासवर्ड का इस्तेमाल करना असुरक्षित हो सकता है।+-- --------------+| @@ होस्टनाम |+----------------+| क्लस्टर1-पीएक्ससी-0 |+----------------+ 

जब हम पॉड प्लेसमेंट को देखते हैं, तो सभी Percona XtraDB क्लस्टर पॉड एक अलग Kubernetes होस्ट पर स्थित होते हैं:

$ kubectl get pods -o wide --selector=app.kubernetes.io/component=pxcNAME रेडी स्टेटस रीस्टार्ट AGE IP Node नॉमिनेटेड नोड रीडिनेस गेटसक्लस्टर1-pxc-0 1/1 रनिंग 0 67m 10.36.2.5 gke -my-k8s-cluster-default-pool-b80902cd-gp09  cluster1-pxc-1 1/1 रनिंग 0 66m 10.36.1.10 gke-my-k8s-cluster-default-pool-b80902cd-rdv8 <कोई नहीं> cluster1-pxc-2 1/1 रनिंग 0 65m 10.36.0.11 gke-my-k8s-cluster-default-pool-b80902cd-jdc3   

यह निश्चित रूप से सेवा की उपलब्धता में सुधार करेगा, अगर कुबेरनेट्स होस्ट में से कोई एक नीचे चला जाता है।

5 पॉड तक स्केल करने के लिए, हमें पॉड एफ़िनिटी कॉन्फ़िगरेशन का सम्मान करने के लिए पहले से एक और 2 नए कुबेरनेट्स नोड्स तैयार करने की आवश्यकता है (डिफ़ॉल्ट एफ़िनिटी.antiAffinityTopologyKey.topologyKey="kubernetes.io/hostname")। फिर, Percona XtraDB क्लस्टर को 5 नोड्स में स्केल करने के लिए निम्न पैच कमांड चलाएँ:

$ kubectl पैच pxc क्लस्टर1 \--type='json' -p='[{"op":"replace", "path":"/spec/pxc/size", "value":5 }]' 

Kubectl get pods कमांड का उपयोग करके पॉड के निर्माण की निगरानी करें:

$ kubectl get pods -o wideNAME तैयार स्थिति पुनरारंभ आयु आईपी नोड नामांकित नोड तैयारी गेटसक्लस्टर1-पीएक्ससी-0 1/1 रनिंग 0 27h 10.36.2.5 gke-my-k8s-cluster-default-pool-b80902cd- gp09  cluster1-pxc-1 1/1 रनिंग 0 27h 10.36.1.10 gke-my-k8s-cluster-default-pool-b80902cd-rdv8  cluster1-pxc-2 1/1 रनिंग 0 27h 10.36.0.11 gke-my-k8s-cluster-default-pool-b80902cd-jdc3  cluster1-pxc-3 1/1 रनिंग 0 30m 10.36.7.2 gke-my-k8s-cluster-pool -1-ab14a45e-h1pf  cluster1-pxc-4 1/1 रनिंग 0 13m 10.36.5.3 gke-my-k8s-cluster-pool-1-ab14a45e-01qn   

अन्य 2 नए पॉड्स (क्लस्टर1-पीएक्ससी-3 और क्लस्टर1-पीएक्ससी-4) अन्य 2 नए कुबेरनेट्स नोड्स पर बनाए गए हैं (gke-my-k8s-cluster-pool-1-ab14a45e-h1pf और gke-my-k8s-क्लस्टर-पूल-1-ab14a45e-01qn)। स्केल डाउन करने के लिए, उपरोक्त पैच कमांड में मान को वापस 3 में बदलें। ध्यान दें कि मस्तिष्क को विभाजित होने से बचाने के लिए Percona XtraDB क्लस्टर विषम संख्या में नोड्स के साथ चलना चाहिए।

एप्लिकेशन (वर्डप्रेस) परिनियोजित करना

इस उदाहरण में, हम अपने Percona XtraDB क्लस्टर और HAProxy के शीर्ष पर एक वर्डप्रेस एप्लिकेशन को तैनात करने जा रहे हैं। आइए पहले YAML परिभाषा फ़ाइल को निम्न की तरह तैयार करें:

$ cat wordpress-deployment.yamlapiVersion:v1kind:Servicemetadata:name:wordpress लेबल्स:ऐप:wordpressspec:port:- port:80 selector:app:wordpress tier:frontend type:LoadBalancer---apiVersion:v1kind :PersistentVolumeClaimmetadata:नाम:wp-pv-claim लेबल:ऐप:WordPressspec:accessModes:- ReadWriteOnce संसाधन:अनुरोध:संग्रहण:2Gi --- apiVersion:ऐप्स/v1 # 1.9.0 से पहले के संस्करणों के लिए ऐप्स/v1beta2kind का उपयोग करें:परिनियोजन मेटाडेटा:नाम :वर्डप्रेस लेबल:ऐप:वर्डप्रेसस्पेक:चयनकर्ता:मैचलैबल्स:ऐप:वर्डप्रेस टियर:फ्रंटएंड रणनीति:टाइप:रीक्रिएट टेम्प्लेट:मेटाडेटा:लेबल्स:ऐप:वर्डप्रेस टियर:फ्रंटएंड स्पेक:कंटेनर:- इमेज:वर्डप्रेस:​​4.8-अपाचे नाम:वर्डप्रेस env:- नाम:WORDPRESS_DB_HOST मान:क्लस्टर 1-हैप्रोक्सी - नाम:WORDPRESS_DB_PASSWORD मान से:secretKeyRef:नाम:मेरा-क्लस्टर-रहस्य कुंजी:रूट पोर्ट:- कंटेनरपोर्ट:80 नाम:वर्डप्रेस वॉल्यूम माउंट:- नाम:वर्डप्रेस-पर्सिस्टेंट-स्टोरेज माउंटपाथ:/ var / www / html वॉल्यूम:- नाम:वर्डप्रेस-पर्सिस्टेंट-स्टोरेज परसिस्टेंट वॉल्यूम क्लेम:क्लेमनाम:wp-pv-claim 

WORDPRESS_DB_HOST और WORDPRESS_DB_PASSWORD पर्यावरण चर पर ध्यान दें। पूर्व चर जहां हमने "क्लस्टर 1-हैप्रोक्सी" को डेटाबेस होस्ट के रूप में परिभाषित किया, एक व्यक्तिगत डेटाबेस नोड के बजाय और बाद के लिए हमने कुबेरनेट्स को कुंजी "रूट" के तहत माय-क्लस्टर-सीक्रेट ऑब्जेक्ट से इसे पढ़ने के लिए निर्देश देकर रूट पासवर्ड निर्दिष्ट किया। जो "mypassword" के बराबर है (बेस 64 मान को डीकोड करने के बाद)। हम WORDPRESS_DB_USER पर्यावरण चर को परिभाषित करना छोड़ देते हैं क्योंकि डिफ़ॉल्ट मान "रूट" है।

अब हम अपना एप्लिकेशन बना सकते हैं:

$ kubectl apply -f wordpress-deployment.yaml 

सेवा जांचें:

$ kubectl get serviceNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEcluster1-haproxy ClusterIP 10.40.9.177  3306/TCP,3309/TCP,33062/TCP 4h42mcluster1-haproxy-replications ClusterIP 10.40. 0.236  3306/TCP 4h42mcluster1-pxc ClusterIP कोई नहीं  3306/TCP,33062/TCP 4h42mcluster1-pxc-unready ClusterIP कोई नहीं  3306/TCP,33062/TCP 4h32042mwordpress LoadBalancer 10.40.13.205 35.200. /टीसीपी 4h39m 

इस बिंदु पर, हम http://35.200.78.195/ (बाहरी आईपी पता) पर अपने वर्डप्रेस एप्लिकेशन से जुड़ सकते हैं और वर्डप्रेस एप्लिकेशन को कॉन्फ़िगर करना शुरू कर सकते हैं। इस बिंदु पर, हमारा वर्डप्रेस एप्लिकेशन HAProxy पॉड्स में से एक के माध्यम से Percona XtraDB क्लस्टर (सिंगल-मास्टर कनेक्शन) में से एक से जुड़ा है।

अभी के लिए बस इतना ही। अधिक जानकारी के लिए, Percona XtraDB क्लस्टर प्रलेखन के लिए Percona Kubernetes Operator देखें। हैप्पी कंटेनरिंग!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में किसी फ़ील्ड से सबसे सामान्य मान चुनें

  2. Ubuntu पर MySQL को कैसे परिनियोजित करें और पूरी तरह से प्रबंधित करें

  3. MySQL पूर्ण शामिल हों?

  4. एक प्रश्न में एएनएसआई 1992 जॉइन और कॉमा को मिलाना

  5. MySQL के साथ Oracle JDeveloper Snippets का उपयोग करना