From 9ddf6abaa6de0e16cd677f055ca30e4f48d21bef Mon Sep 17 00:00:00 2001 From: Adam Overa Date: Sat, 21 Dec 2024 12:26:30 -0500 Subject: [PATCH 1/7] Deploying RabbitMQ on Kubernetes with Linode LKE --- .../index.md | 279 ++++++++++++++++++ 1 file changed, 279 insertions(+) create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md new file mode 100644 index 00000000000..9265de2e2b4 --- /dev/null +++ b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md @@ -0,0 +1,279 @@ +--- +slug: deploying-rabbitmq-on-kubernetes-with-linode-lke +title: "Deploying Rabbitmq on Kubernetes With Linode Lke" +description: "Two to three sentences describing your guide." +og_description: "Optional two to three sentences describing your guide when shared on social media. If omitted, the `description` parameter is used within social links." +authors: ["Linode"] +contributors: ["Linode"] +published: 2024-12-21 +keywords: ['list','of','keywords','and key phrases'] +license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' +external_resources: +- '[Link Title 1](http://www.example.com)' +- '[Link Title 2](http://www.example.net)' +--- + +This guide walks through how to deploy RabbitMQ with Linode Kubernetes Engine (LKE) using the [RabbitMQ Kubernetes Operators](https://www.rabbitmq.com/kubernetes/operator/operator-overview). + +## Prerequisites + +To follow along in this walkthrough, you’ll need the following: + +* A [Linode account](https://www.linode.com/cfe) +* A [Linode API token (personal access token)](https://www.linode.com/docs/products/platform/accounts/guides/manage-api-tokens/) +* The [Linode CLI](https://www.linode.com/docs/products/tools/cli/guides/install/) installed and configured +* [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) installed and configured + +## Step 1: Provision a Kubernetes Cluster + +While there are several ways to create a Kubernetes cluster on Linode, this guide uses the [Linode CLI](https://github.com/linode/linode-cli) to provision resources. + +1. Use the Linode CLI (linode) to see available Kubernetes versions: + +| $ linode lke versions-list ┌───────┐ │ id │ ├───────┤ │ 1.31 │ ├───────┤ │ 1.30 │ └───────┘ | +| :---- | + +It’s generally recommended to provision the latest version of Kubernetes unless specific requirements dictate otherwise. + +2. Use the following command to list available Linode plans, including plan ID, pricing, and performance details. For more detailed pricing information, see [Akamai Connected Cloud: Pricing](https://www.linode.com/pricing/): + +| $ linode linodes types | +| :---- | + +3. The examples in this guide use the **g6-standard-2** Linode, which features two CPU cores and 4 GB of memory. Run the following command to display detailed information in JSON for this Linode plan: + +| $ linode linodes types \--label "Linode 4GB" \--json \--pretty \[ { "addons": {...}, "class": "standard", "disk": 81920, "gpus": 0, "id": "g6-standard-2", "label": "Linode 4GB", "memory": 4096, "network\_out": 4000, "price": { "hourly": 0.036, "monthly": 24.0 }, "region\_prices": \[...\], "successor": null, "transfer": 4000, "vcpus": 2 } \] | +| :---- | + +4. View available regions with the regions list command: + +| $ linode regions list | +| :---- | + +5. With a Kubernetes version and Linode type selected, use the following command to create a cluster named rabbitmq-cluster in the us-mia (Miami, FL) region with three nodes and auto-scaling. Replace rabbitmq-cluster and us-mia with a cluster label and region of your choosing, respectively: + +| $ linode lke cluster-create \\ \--label rabbitmq-cluster \\ \--k8s\_version 1.31 \\ \--region us-mia \\ \--node\_pools '\[{ "type": "g6-standard-2", "count": 3, "autoscaler": { "enabled": true, "min": 3, "max": 8 } }\]' | +| :---- | + +Once your cluster is successfully created, you should see output similar to the following: + +| Using default values: {}; use the \--no-defaults flag to disable defaults \+------------------+--------+-------------+ | label | region | k8s\_version | \+------------------+--------+-------------+ | rabbitmq-cluster | us-mia | 1.31 | \+------------------+--------+-------------+ | +| :---- | + +## Step 2: Access the Kubernetes Cluster + +To access your cluster, fetch the cluster credentials in the form of a kubeconfig file. + +1. Use the following command to retrieve the cluster’s ID: + +| $ CLUSTER\_ID=$(linode lke clusters-list \--json | \\ jq \-r \\ '.\[\] | select(.label \== "rabbitmq-cluster") | .id') | +| :---- | + +2. Create a hidden .kube folder in your user’s home directory: + +| $ mkdir \~/.kube | +| :---- | + +3. Retrieve the kubeconfig file and save it to \~/.kube/lke-config: + +| $ linode lke kubeconfig-view \--json "$CLUSTER\_ID" | \\ jq \-r '.\[0\].kubeconfig' | \\ base64 \--decode \> \~/.kube/lke-config | +| :---- | + +4. Once you have the kubeconfig file saved, access your cluster by using kubectl and specifying the file: + +| $ kubectl get no \--kubeconfig \~/.kube/lke-config NAME STATUS ROLES AGE VERSION lke292179-482071-0f646b210000 Ready \ 33s v1.31.0 lke292179-482071-119038ec0000 Ready \ 38s v1.31.0 lke292179-482071-354f1bb10000 Ready \ 35s v1.31.0 | +| :---- | + +| Note: Optionally, to avoid specifying \--kubeconfig \~/.kube/lke-config with every kubectl command, you can set an environment variable for your current terminal window session. $ export KUBECONFIG=\~/.kube/lke-config Then run: $ kubectl get no | +| :---- | + +## Step 3: Setup RabbitMQ on LKE + +[Guidance](https://www.rabbitmq.com/blog/2020/08/10/deploying-rabbitmq-to-kubernetes-whats-involved) from the RabbitMQ maintainers recommends *not* handling the installation of RabbitMQ on Kubernetes directly, but instead using the following RabbitMQ tools to streamline its management on Kubernetes: + +* [**Cluster Kubernetes Operator**](https://www.rabbitmq.com/kubernetes/operator/operator-overview#cluster-operator): Handles the automation of provisioning, management, and operation of RabbitMQ clusters on Kubernetes. +* [**Messaging Topology Operator**](https://www.rabbitmq.com/kubernetes/operator/operator-overview#topology-operator): Manages the messaging topologies within a RabbitMQ cluster that has been deployed using the RabbitMQ Cluster Kubernetes Operator. + +These operators are extensions to the Kubernetes management tooling and take advantage of the Kubernetes API. This guide focuses on the RabbitMQ Cluster Kubernetes Operator for deploying RabbitMQ, utilizing native RabbitMQ tooling for management and configuration. The Cluster Kubernetes Operator provides the following key features: + +* Provisioning of single-node and multi-node RabbitMQ clusters +* Reconciliation of deployed clusters when the existing state does not match the declarative state +* Monitoring of RabbitMQ clusters +* Scaling up and automated upgrades + +### Install the RabbitMQ Cluster Kubernetes Operator + +With your LKE cluster provisioned and the KUBECONFIG environment variable set to \~/.kube/lke-config, install the Cluster Kubernetes Operator with the following command: + +| $ kubectl apply \-f \\ https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml namespace/rabbitmq-system created customresourcedefinition.apiextensions.k8s.io/rabbitmqclusters.rabbitmq.com created serviceaccount/rabbitmq-cluster-operator created role.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-role created clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-operator-role created clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-service-binding-role created rolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-rolebinding created clusterrolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-operator-rolebinding created deployment.apps/rabbitmq-cluster-operator created | +| :---- | + +To verify, list all the resources within the rabbitmq-system namespace. + +| $ kubectl get all \-n rabbitmq-system NAME READY STATUS RESTARTS AGE pod/rabbitmq-cluster-operator-779cb-g699f 1/1 Running 0 3m13s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/rabbitmq-cluster-operator 1/1 1 1 3m13s NAME DESIRED CURRENT READY AGE replicaset.apps/rabbitmq-cluster-operator-779cb 1 1 1 3m14s | +| :---- | + +### Install RabbitMQ + +Next, install RabbitMQ on this cluster. To do that, a configuration is needed that specifies what the declarative state of the cluster will be. A basic example of a working configuration is: + +| apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metadata: name: rabbitmq-basic spec: service: type: NodePort | +| :---- | + +Store the above definition in a file called rabbitmq-basic.yaml. Then, apply this configuration to your LKE cluster. + +| $ kubectl apply \-f ./rabbitmq-basic.yaml rabbitmqcluster.rabbitmq.com/rabbitmq-basic created | +| :---- | + +### Verify successful installation + +Confirm that RabbitMQ was installed by showing the resources that have been provisioned. + +| $ kubectl get all NAME READY STATUS RESTARTS AGE pod/rabbitmq-basic-server-0 0/1 Init:0/1 0 39s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.128.0.1 \ 443/TCP 15m service/rabbitmq-basic ClusterIP 10.128.120.69 \ 5672:31825/TCP,15672:30153/TCP,15692:31520/TCP 39s service/rabbitmq-basic-nodes ClusterIP None \ 4369/TCP,25672/TCP 39s NAME READY AGE statefulset.apps/rabbitmq-basic-server 0/1 39s NAME ALLREPLICASREADY RECONCILESUCCESS AGE rabbitmqcluster.rabbitmq.com/rabbitmq-basic True True 40s | +| :---- | + +![][image2] + +The HTTP interface for RabbitMQ is exposed on port 15672. By specifying the NodePort service in rabbitmq-basic.yaml, this port is exposed on the LKE cluster at port 30153. Similarly the AQMP protocol, which runs through port 5672, is exposed on the LKE cluster at port 31825. Note that the ports shown in the example above may not match your specific LKE setup. + +To view the logs from the pod listed in the output above, run: + +| $ kubectl logs rabbitmq-basic-server-0 Defaulted container "rabbitmq" out of: rabbitmq, setup-container (init) … \#\# \#\# RabbitMQ 3.13.7 \#\# \#\# \#\#\#\#\#\#\#\#\#\# Copyright (c) 2007-2024 Broadcom Inc and/or its subsidiaries \#\#\#\#\#\# \#\# \#\#\#\#\#\#\#\#\#\# Licensed under the MPL 2.0. Website: https://rabbitmq.com … Starting broker...2024-12-18 15:50:34.914985+00:00 \[info\] \<0.254.0\> … 2024-12-18 15:50:38.290177+00:00 \[info\] \<0.683.0\> Ready to start client connection listeners 2024-12-18 15:50:38.292751+00:00 \[info\] \<0.850.0\> started TCP listener on \[::\]:5672 completed with 7 plugins. … 2024-12-18 15:50:38.484024+00:00 \[info\] \<0.9.0\> Time to start RabbitMQ: 6324 ms | +| :---- | + +If you see the Time to start RabbitMQ line in the log output, this indicates a successful startup of the application. + +## Step 4: Access RabbitMQ Remotely + +To access the management console, you will need the auto-generated credentials of the default admin user. Use the following two commands: + +| $ kubectl get secret rabbitmq-basic-default-user \\ \-o jsonpath='{.data.username}' \\ | base64 \--decode default\_user\_dS\_gWwwjtIEIiMcqdwu $ kubectl get secret rabbitmq-basic-default-user \\ \-o jsonpath='{.data.password}' \\ | base64 \--decode yOOO7ESTmh0DuCBbxz2IWaDGM-YafXSZ | +| :---- | + +To set the default username and password upon creation of the RabbitMQ servers, modify rabbitmq-basic.yaml to add the additional configuration. + +| apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metadata: name: rabbitmq-basic spec: service: type: NodePort additionalConfig: | default\_user=\ default\_pass=\ | +| :---- | + +### Locate the external IP address of the LKE cluster + +| $ kubectl get nodes \\ \-o wide \\ | awk \-v OFS='\\t\\t' '{print $1, $6, $7}' NAME INTERNAL-IP EXTERNAL-IP lke292179-482071-0f646b210000 192.168.143.176 172.235.141.144 lke292179-482071-119038ec0000 192.168.143.120 172.235.141.24 lke292179-482071-354f1bb10000 192.168.143.239 172.235.141.151 | +| :---- | + +The external IP address for one of the LKE nodes is 172.235.141.144. Recall from the earlier kubectl get all command that port 30153 at the cluster level routes to HTTP access to the RabbitMQ server. Therefore, the RabbitMQ management service can be found at 172.235.141.144:30153. + +Run the following command to retrieve the current RabbitMQ configuration as a JSON object. Paste in the admin username and password that you obtained above. + +| $ curl \\ \--user default\_user\_dS\_gWwwjtIEIiMcqdwu:yOOO7ESTmh0DuCBbxz2IWaDGM-YafXSZ \\ 172.235.141.144:30153/api/overview \\ | jq { "management\_version": "3.13.7", "rates\_mode": "basic", ... "product\_version": "3.13.7", "product\_name": "RabbitMQ", "rabbitmq\_version": "3.13.7", "cluster\_name": "rabbitmq-basic", "erlang\_version": "26.2.5.6", … | +| :---- | + +To access RabbitMQ admin in a web GUI, open a browser and navigate to [http://172.235.141.144:30153/\#/](http://172.235.141.144:30153/#/). + +![][image3] + +At the initial login prompt, supply the admin username and password. + +![][image4] + +## Step 5: Test RabbitMQ with a Messaging Example + +To test the RabbitMQ deployment with a messaging example, first download the management script. + +| $ wget http://172.235.141.144:30153/cli/rabbitmqadmin | +| :---- | + +Make the script executable, and move it somewhere to a location included in the environment PATH. + +| $ chmod \+x rabbitmqadmin $ mv rabbitmqadmin /usr/local/bin/ | +| :---- | + +### Create exchange and queue + +The subsequent calls to rabbitmqadmin will need to include admin authentication as well as the host and port information for RabbitMQ. For convenience, set these values as environment variables in your terminal window. This will look similar to the following: + +| $ export USERNAME=default\_user\_dS\_gWwwjtIEIiMcqdwu $ export PASSWORD=yOOO7ESTmh0DuCBbxz2IWaDGM-YafXSZ $ export HOST=172.235.141.144 $ export PORT=30153 | +| :---- | + +Create a fanout style exchange on the RabbitMQ server with the following. + +| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ declare exchange \\ name=test\_fanout\_exchange \\ type=fanout exchange declared | +| :---- | + +Create a queue to attach to this exchange to hold messages. + +| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ declare queue \\ name=fanout\_queue \\ durable=true queue declared | +| :---- | + +Bind the queue to the exchange. + +| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ declare binding \\ source=test\_fanout\_exchange \\ destination=fanout\_queue binding declared | +| :---- | + +### Test message publishing and retrieval + +Publish a message to the exchange (and bound queue): + +| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ publish \\ exchange=test\_fanout\_exchange \\ routing\_key=dummy\_key \\ payload="Hello, world\!" Message published | +| :---- | + +The routing key is not necessary for a fanout exchange, as each message is routed to each queue regardless of the routing key, but it is required for the rabbitmqadmin tool. + +Retrieve the messages from the queue. + +| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ get \\ queue=fanout\_queue \+-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ | routing\_key | exchange | message\_count | payload | payload\_bytes | payload\_encoding | properties | redelivered | \+-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ | dummy\_key | test\_fanout\_exchange | 0 | Hello, world\! | 13 | string | | False | \+-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ | +| :---- | + +![][image5] + +## Step 6: Create New Users + +When connecting applications to your new RabbitMQ deployment, you may want to create and use RabbitMQ users other than the [default administrative user](https://www.rabbitmq.com/docs/access-control#default-state). + +In the RabbitMQ web interface, click the **Admin** tab. This will show the list of users, which currently only includes the default admin user. + +![][image6] + +Provide a username and password for the new user. Then, add any tags to specify the user’s level of permissions. + +![][image7] + +Click **Add user**. The user will be added to the list of users, but you will see that it does not yet have access to any virtual hosts. + +![][image8] + +### Set permissions for the user on the virtual host + +Click the name of the newly created user. Allow full permissions on the default virtual host (which is /). Click **Set permission**. + +![][image9] + +Verify that this newly created user has RabbitMQ management access by logging out and logging in as the new user. + +![][image10] + +### Send test requests to the RabbitMQ API + +Using curl, send an authenticated request to the RabbitMQ API, testing out the publishing of a message to an exchange. Note the %2f in the request URL. This is the name of the exchange, which is the URL-encoded value for /. + +The requests below assume that the terminal session still uses the environment variables, HOST and PORT, which were set previously. + +| $ curl \\ \-u linodeuser:mypassword \\ \-H "Content-Type: application/json" \\ \-X POST \\ \-d '{"properties":{},"routing\_key":"dummy\_key","payload":"Hello, curl\!","payload\_encoding":"string"}' \\ http://$HOST:$PORT/api/exchanges/%2f/test\_fanout\_exchange/publish {"routed":true} | +| :---- | + +Next, send an authenticated request to get the last two messages from the queue. + +| $ curl \\ \-u linodeuser:mypassword \\ \-H "Content-type:application/json" \\ \-X POST \\ \-d '{"count":2,"ackmode":"ack\_requeue\_true","encoding":"auto"}' \\ http://$HOST:$PORT/api/queues/%2f/fanout\_queue/get | json\_pp \[ { "exchange" : "test\_fanout\_exchange", "message\_count" : 1, "payload" : "Hello, world\!", "payload\_bytes" : 13, "payload\_encoding" : "string", "properties" : \[\], "redelivered" : true, "routing\_key" : "dummy\_key" }, { "exchange" : "test\_fanout\_exchange", "message\_count" : 0, "payload" : "Hello, curl\!", "payload\_bytes" : 12, "payload\_encoding" : "string", "properties" : \[\], "redelivered" : true, "routing\_key" : "dummy\_key" } \] | +| :---- | + +The resources below are provided to help you become familiar with RabbitMQ when deployed to LKE on Linode. + +## RabbitMQ Resources + +* [RabbitMQ Kubernetes Operators](https://www.rabbitmq.com/kubernetes/operator/operator-overview) +* [Production RabbitMQ Operator Configuration](https://github.com/rabbitmq/cluster-operator/tree/main/docs/examples/production-ready) +* [RabbitMQ Message Topology Operator](https://www.rabbitmq.com/kubernetes/operator/install-topology-operator) +* [Configuration Documentation](https://www.rabbitmq.com/docs/configure) +* [Deployment Checklist](https://www.rabbitmq.com/docs/production-checklist) +* [Plugins](https://www.rabbitmq.com/docs/plugins) +* [Management CLI](https://www.rabbitmq.com/docs/management-cli) +* [RabbitMQ Linode Marketplace App](https://www.linode.com/marketplace/apps/linode/rabbitmq/) \ No newline at end of file From 1bf99e239c384964a7a48e23ffc7fbf911d14f67 Mon Sep 17 00:00:00 2001 From: Adam Overa Date: Mon, 30 Dec 2024 16:59:54 -0500 Subject: [PATCH 2/7] Tech Edit 1 --- ci/vale/dictionary.txt | 1 + .../add-new-user-form.png | Bin 0 -> 67861 bytes .../index.md | 686 ++++++++++++++---- .../list-all-resources.png | Bin 0 -> 48024 bytes .../rabbitmq-admin-tab.png | Bin 0 -> 42952 bytes .../rabbitmq-login-screen.png | Bin 0 -> 69676 bytes .../rabbitmq-management-gui.png | Bin 0 -> 19890 bytes .../retrieved-messages-from-queue.png | Bin 0 -> 12715 bytes .../set-user-permissions.png | Bin 0 -> 9855 bytes .../user-added-confirmation.png | Bin 0 -> 14018 bytes .../user-management-login-test.png | Bin 0 -> 9195 bytes 11 files changed, 527 insertions(+), 160 deletions(-) create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/add-new-user-form.png create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/list-all-resources.png create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-admin-tab.png create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-login-screen.png create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-management-gui.png create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/retrieved-messages-from-queue.png create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/set-user-permissions.png create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/user-added-confirmation.png create mode 100644 docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/user-management-login-test.png diff --git a/ci/vale/dictionary.txt b/ci/vale/dictionary.txt index 552ad16407d..1f4c79bf792 100644 --- a/ci/vale/dictionary.txt +++ b/ci/vale/dictionary.txt @@ -721,6 +721,7 @@ failregexs failsafe failsafes falko +fanout fastcgi Fastify fastmail diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/add-new-user-form.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/add-new-user-form.png new file mode 100644 index 0000000000000000000000000000000000000000..03702f3e41f5415f97eb621c7ff453683cbad312 GIT binary patch literal 67861 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°$Ce{8*KH`^&W)@*xN{=)y62Lw)gLw4 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νIpM_#OJV|q@?8}1DD7W630hW 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

2ji}w_ef8r>kWS~) zch%_Yqs2SFQK8d_8@5u9m9Yhx2^crUc255Z&<4(w#-@zsNqAXwIUfuHByP^s`&3Fz zEg)zsr5B3wR;FNKN%t>P_63bqAr4L*a?KPC42ca(BaDZ&*k6LKRjWRKsI~q@?)nDF+bWYSyyT@%koa6X$m*+ zcJME?gm@YGs_h34KZxnFdBLhwL_9i>n6vAZ6mFs-R_DI_Yhm6n-fb$gy-k%R=;}iJ z7vION{EP1eFJRVnKn05CavbYlE{^QCT-zQVnf_zzeSK!cybF{C@-(>3$o8_XcKqK< zChxCoH-eHe1rMf=XGyJn_t-Ylpq^m|fdOXui(D z86YTh^oL{s%xtz!*$s8uI#h12x)&TJqf+vNMAu=p!(5P3(JSm|F@5p{?u=`*$z0|dWpZM74VXx$VKmj{x}y0 ziX|<6q0ygv>cQpRsb@8&l+nn{Lx0-hNcFU0`DZ%yS$MX2O9me^U>WpDyT|?Ulb5c_ zhDI0y4U+W;)fd>SkynC8rT%o$5>*}2<9+`TbIYR4mEe1?apt$D$-|O}b3m%UtkS*A zL|ZKIJ9%6Dtp62{ec#}X+1 zqdyfvzTKI)!h+#T(#<0Buc>vJt7oavTeAIitbq61MaM1C-njJ1SATsL<6*}yL2BXR z9d@84iiO?I2Nng_Dqt~jQ=^0j*g~-L8xLP3bE7nbk0HQzt;KfQ5t_Ye#%3b?P$Is} z1j+1siYo9WU5_ZygY6y1D&*l+T;n$>tW6 z4W}3tR`c}n?Ro4`n<(+8njs#PsE-1O_}D2EZ<1ur6NNIhhCk!OLH-+kdI{rpjSK_^ z|LZ%*o5uf@?%&N2KFEl}E&>{;l_belw6Gz!cEEdDtg4Af4?EcZ>E*>7_Iu8Rf&6pO z$*b@0=lEcR*i;qLP;wyGOO)c{1J2R_x-*JUUsH3avnYGe>t_)4<>hX%acwZsTjJ9t zJ+hW6;+7P6K2K`+oq<1@!nWVSHF#?r&|KF0IIPE|>8GdqIl$^U0tN$0yq#meqK`Qi^nox|5_;BEXE;dl?Iz*qBNK#8Xg&g<@sSU7*ffhGysGWLY0(jMvO>6;9r2K(-_9OX19 z06nSAURV;?Ftrq#fh1`u_1yuzq9DKJ0;W{$B_uI@!&3jrUn)~9bb!Nx0*rYf$aJ|D zv1~v}u|0$RqaM!W7opB#)jN)38Gym?8%wAr5&u9pngIn5Z!%p+`QiNbE1}OXtUA)5#RR5#yq5Rtw)X@jf`hrWw|Bpb{Nm+snIPSr3YOdk&M4&E>!EAJDx=vq64I#I#w?dv@6ZK&riLg;KF+Z%_cgd)er$ON~LtD&(0pc@v{lw%-m8JI|?8()w|PwSitmv zf;CLbEzG{ul-(Vd%gBv_FmSgmJr+^Dq)L8!42TDSdOLD5K7HdQD302sHEAF%MQ_b+ zy{U%`($C17B=>|x2;x>{n`$mkq4)a%tv_oJyf4l2#c6PQRPe^xKG!{q2>s3+slrFC z?`t?#-GGeuhKCj`i~WXJ-j>M^&<%{JrN$WPp{i4uG2Ol>qf0&P8v2_4!rhr_Q=ByI zu&?sZ#23pRS-R+nJrK;&mKv*R1Ffc<(t>Qfhb2u*OkIASX=pFRDVES0eEZWu=zxAA zb_H>IW@cvR3~}2F4GoQijLe-g$mcqtn#r79&xdOuXlWgOhm(?$vRb`jJ&F)e4DZs; zPVeq6S>_ue22Cx}@?;~Erz{T}M>Fd6Nj=N)&>MT2&v@-*5M0r)Dzlk>RY({dO`WQ4 z0FezLh8!C{=5N5kAG}% zw=^sa+C~)d^Me+OL=50*gE*tv5?DZgJ8U{rOaFQQfA+TZmQq5V%U3%?6jW4wTeh25 zuI;!79N+=K;R6Ep_6$%^Q0t#9hvB@WJtSmmxy^;PprBwq%1!|^0Q}t%-8F%*se;0)+!W9_5?y}zftnp#Q|F>D&IF`!Pb z$N}Zrj{gcD{J(E`p6$QpTn>Gf{(bis>uFL_lEY>iq( z&ZrRBfFlTpk<_fHHFL85!@`b|U$s@xOAfQ4E2hK`9a5=2bwS*b>oSyp*z&dt_X?`3 zW45=qIa3CxxbP4Fhvm-B&Dou=ve(wtb>NB%1raf1w5u>SAFSYdzPgb{Ng_#QCHBBf z(UQ-0MERqv!+-mX$72t42Z2{NvC`N-m%<@70=rE{3d)PBpirlhetF?IRWRk?enbn>nB_M2p8qaKq;{QIm_`bSM_ zqD_V2-F$rVwy{1Glb(k)RJ1mw@fvTH;oggf?Sy-*$##UxIris>>&rhTDJa;NF}cNf zzHfnXg@Zzd#PK__tdBb|KzckPWzq#e;CDb;S4zr@fi0MRb+asMl9h*w_p3=YTZBLE zx@>GF>yp0bjD4k|E^5Ist=g7j9*;v;9VpB!}kK}P^y1jD3a;cS2_4>Iy=*M)1iAwGXD&fh4y}N$l76mi3eRiWR{_8h@ z$8A`8PQ`=$h7Y`jc9Qs68%0C`^mp_@T$3)@`LB1E)3#!6ryvjf%~oWDr^-k zxTsAMdzFsyb}{13!l(3j=Lk&hyY%ujq19D30g$7Ptq*)1GAfbqL4e?B7iR=K99gNI zdN;w=wV5*Hth{N6d1=O?Xu*w^`NgBcA887y2YeDUB$g?dioza zr{BHLR19S(pG;jyn7g(;J4GR4L=SSHu9K<_)oaO)RiDKJ&tP+wCEkk3|Uyn(0LPvxm zvkN)B(MIaBWVha69Ttu(P*vmq+?*HOQkw63_x2;)rg z(;FaULzryoIM+=t7ZFI$n+oyFcN%DwDn&b_E0mFuk@YA#%lBk8A))@Pi1Kz&b+KA7 z1tskOoMPIlz%I!_Y)H%^#y4P$2J*>G@KuvB_9a$g2OlQoV|L{^_+~r2ie1fziD0aV zw!WVx=3gC9Duh5;6guCCp=FyxLPE)}U-|E|oPn*s78o(9Z-+46{YtzjjlS#D(hzzT z5D);NprBZfqBjKmAt51grAx6Lhtg&>TMkMH_H;ANMW!v^>H4eeYx=bvE0f`3Pc0aObm z&F5p-4LKSfd$`2HrBk8zgb`JyF(G?U=Xoy`aYv(ht}BJ&q4O-F`z^-{0lRH?zxKC~ z?S^;{nSb#0WD}G~1j;i{b205&4|xHf7?YZto8d=w5CSL7b|tm(ooH~gxBtNK>XuG^ z$YV%gASl`wz_1A{Qfq0sEft67tN=I)Zq3+aPn>3u1O?-8bJY!n(Q1YsxDd-BH2Rc# z@Qf{hcslHD3$Z)Is4~(lfb`J1=uH2cv4c%rXtL3TRvfr$mUqSiVBZxgWId~W<-kup zkoqi+Py==3o9`V5f&GS8*KsY$caHR*!*#5k-XbGyVK6@Fy4KiG6pnK`ugJszt61Y% z_GY+#uFj}|Ra|&u-JW8GvjIJJx6()^?e>VqEdWJY=3NP)HQ@fH+X}j{&)U+x!m`i$ zV1JTrobhZ8T8?ss41CTDHdVhS>QePVa1=av3P3%#=aWQP>59<(ExWOE#kVO>Y@~BK zv;;@&Bb^C&L;-WQFyBnTg~PhPx93J2KDF5HR@X!v^4I|o9_7k!3x0qw5mH`W+@YbN z3sy6^l%GZTpOWK$PSA#vAt51kV>FIGr&ygTva$%kz`$P`%i2SRlj%~Vnl&pgc;x^e z?Sj)J!NiX+>Aqy|4d`O_v{4O(wmmHii_8FgK4w-{bElsJ39KX_f{Ka?sSFOM?oPmv zrKmWY9DJ?xIjlq!QYaK6Vq;4f7!YS*RyRrZ1xoxW3V#EK`-UmWe4OIkZ2-zJF;1U;>5vml>_5XhW Dqab3l literal 0 HcmV?d00001 diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md index 9265de2e2b4..cf8f75ed285 100644 --- a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md +++ b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md @@ -1,279 +1,645 @@ --- slug: deploying-rabbitmq-on-kubernetes-with-linode-lke -title: "Deploying Rabbitmq on Kubernetes With Linode Lke" -description: "Two to three sentences describing your guide." -og_description: "Optional two to three sentences describing your guide when shared on social media. If omitted, the `description` parameter is used within social links." +title: "Deploying RabbitMQ on Kubernetes With Linode LKE" +description: "Learn how to deploy RabbitMQ on Linode Kubernetes Engine (LKE) using the RabbitMQ Cluster Kubernetes Operator in this step-by-step guide." authors: ["Linode"] contributors: ["Linode"] published: 2024-12-21 -keywords: ['list','of','keywords','and key phrases'] +keywords: ['rabbitmq','kubernetes','linode','lke','cluster','operator','messaging','deployment','virtual-host','rabbitmqadmin','exchange','queue','rabbitmq-on-kubernetes','rabbitmq-cluster-operator','deploying-rabbitmq-lke','linode-kubernetes-engine','rabbitmq-management-gui','messaging-topology-operator','rabbitmq-user-management','rabbitmq-queue-binding','rabbitmq-fanout-exchange','test-messaging-rabbitmq'] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' external_resources: -- '[Link Title 1](http://www.example.com)' -- '[Link Title 2](http://www.example.net)' +- '[Production RabbitMQ Operator Configuration](https://github.com/rabbitmq/cluster-operator/tree/main/docs/examples/production-ready)' +- '[RabbitMQ Message Topology Operator](https://www.rabbitmq.com/kubernetes/operator/install-topology-operator)' +- '[Configuration Documentation](https://www.rabbitmq.com/docs/configure)' +- '[Deployment Checklist](https://www.rabbitmq.com/docs/production-checklist)' +- '[Plugins](https://www.rabbitmq.com/docs/plugins)' +- '[Management CLI](https://www.rabbitmq.com/docs/management-cli)' +- '[RabbitMQ Linode Marketplace App](https://www.linode.com/marketplace/apps/linode/rabbitmq/)' --- -This guide walks through how to deploy RabbitMQ with Linode Kubernetes Engine (LKE) using the [RabbitMQ Kubernetes Operators](https://www.rabbitmq.com/kubernetes/operator/operator-overview). +The RabbitMQ maintainers advocate *against* manually handling the installation of RabbitMQ on Kubernetes. Instead, they [recommend](https://www.rabbitmq.com/blog/2020/08/10/deploying-rabbitmq-to-kubernetes-whats-involved) using RabbitMQ's Kubernetes tools to streamline its management on Kubernetes: -## Prerequisites +- [**Cluster Kubernetes Operator**](https://www.rabbitmq.com/kubernetes/operator/operator-overview#cluster-operator): Automates the provisioning, management, and operation of RabbitMQ clusters on Kubernetes. +- [**Messaging Topology Operator**](https://www.rabbitmq.com/kubernetes/operator/operator-overview#topology-operator): Manages messaging topologies within a RabbitMQ cluster deployed using the Cluster Kubernetes Operator. -To follow along in this walkthrough, you’ll need the following: +These operators extend Kubernetes management capabilities and leverage the Kubernetes API to provide native integration. This guide focuses specifically on the RabbitMQ Cluster Kubernetes Operator for deploying RabbitMQ, utilizing its built-in tooling for management and configuration. The Cluster Kubernetes Operator offers the following key features: -* A [Linode account](https://www.linode.com/cfe) -* A [Linode API token (personal access token)](https://www.linode.com/docs/products/platform/accounts/guides/manage-api-tokens/) -* The [Linode CLI](https://www.linode.com/docs/products/tools/cli/guides/install/) installed and configured -* [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) installed and configured +- Provisioning of single-node and multi-node RabbitMQ clusters +- Reconciliation to align the deployed clusters with its desired declarative state +- Monitoring of RabbitMQ clusters +- Scalability +- Automated upgrades -## Step 1: Provision a Kubernetes Cluster +This guide provides step-by-step instructions for deploying RabbitMQ on Linode Kubernetes Engine (LKE) using the [RabbitMQ Kubernetes Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview). + +## Before You Begin + +1. Read our [Getting Started with Linode](https://www.linode.com/docs/products/platform/get-started/) guide, and create a Linode account if you do not already have one. + +1. Create a personal access token using the instructions in our [Manage personal access tokens](https://techdocs.akamai.com/cloud-computing/docs/manage-personal-access-tokens) guide. + +1. Follow the steps in the *Install kubectl* section of our [Getting started with LKE](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-lke-linode-kubernetes-engine) guide to install `kubectl`. + +1. Install the Linode CLI using the instructions in our [Install and configure the CLI](https://techdocs.akamai.com/cloud-computing/docs/install-and-configure-the-cli) guide. + +1. Ensure that `jq`, a lightweight command line JSON processor, is installed: + + ```command + sudo apt install jq + ``` + +{{< note >}} +This guide is written for a non-root user. Commands that require elevated privileges are prefixed with `sudo`. If you’re not familiar with the `sudo` command, see the [Users and Groups](/docs/guides/linux-users-and-groups/) guide. +{{< /note >}} + +## Provision a Kubernetes Cluster While there are several ways to create a Kubernetes cluster on Linode, this guide uses the [Linode CLI](https://github.com/linode/linode-cli) to provision resources. -1. Use the Linode CLI (linode) to see available Kubernetes versions: +1. Use the Linode CLI (`linode`) to see available Kubernetes versions: + + ```command + linode lke versions-list + ``` + + ```output + ┌──────┐ + │ id │ + ├──────┤ + │ 1.31 │ + ├──────┤ + │ 1.30 │ + └──────┘ + ``` + + It is generally recommended to provision the latest version of Kubernetes unless specific requirements dictate otherwise. + +1. Use the following command to list available Linode plans, including plan ID, pricing, and performance details. For more detailed pricing information, see [Akamai Connected Cloud: Pricing](https://www.linode.com/pricing/): + + ```command + linode linodes types + ``` + +1. The examples in this guide use the **g6-standard-2** Linode, which features two CPU cores and four GB of memory. Run the following command to display detailed information for this Linode plan in JSON format: + + ```command + linode linodes types --label "Linode 4GB" --json --pretty + ``` + + ```output + [ + { + "addons": {...}, + "class": "standard", + "disk": 81920, + "gpus": 0, + "id": "g6-standard-2", + "label": "Linode 4GB", + "memory": 4096, + "network_out": 4000, + "price": { + "hourly": 0.036, + "monthly": 24.0 + }, + "region_prices": [...], + "successor": null, + "transfer": 4000, + "vcpus": 2 + } + ] + ``` + +1. Use the following command to view available regions: + + ```command + linode regions list + ``` + +1. With a Kubernetes version and Linode type selected, use the following command to create a cluster named `rabbitmq-cluster` in the `us-mia` (Miami, FL) region with three nodes and auto-scaling. Replace `rabbitmq-cluster` and `us-mia` with a cluster label and region of your choosing, respectively: + + ```command + linode lke cluster-create \ + --label rabbitmq-cluster \ + --k8s_version 1.31 \ + --region us-mia \ + --node_pools '[{ + "type": "g6-standard-2", + "count": 3, + "autoscaler": { + "enabled": true, + "min": 3, + "max": 8 + } + }]' + ``` + + Once your cluster is successfully created, you should see output similar to the following: + + ```output + Using default values: {}; use the --no-defaults flag to disable defaults + ┌────────┬──────────────────┬────────┬─────────────┬─────────────────────────────────┬──────┐ + │ id │ label │ region │ k8s_version │ control_plane.high_availability │ tier │ + ├────────┼──────────────────┼────────┼─────────────┼─────────────────────────────────┼──────┤ + │ 301629 │ rabbitmq-cluster │ us-mia │ 1.31 │ False │ │ + └────────┴──────────────────┴────────┴─────────────┴─────────────────────────────────┴──────┘ + ``` + +### Access the Kubernetes Cluster + +To access your cluster, fetch the cluster credentials in the form of a `kubeconfig` file. + +1. Use the following command to retrieve the cluster’s ID: + + ```command + CLUSTER_ID=$(linode lke clusters-list --json | \ + jq -r \ + '.[] | select(.label == "rabbitmq-cluster") | .id') + ``` + +1. Create a hidden `.kube` folder in your user’s home directory: + + ```command + mkdir ~/.kube + ``` + +1. Retrieve the `kubeconfig` file and save it to `~/.kube/lke-config`: + + ```command + linode lke kubeconfig-view --json "$CLUSTER_ID" | \ + jq -r '.[0].kubeconfig' | \ + base64 --decode > ~/.kube/lke-config + ``` + +1. Once you have the `kubeconfig` file saved, access your cluster by using `kubectl` and specifying the file: + + ```command + kubectl get no --kubeconfig ~/.kube/lke-config + ``` + + ```output + NAME STATUS ROLES AGE VERSION + lke295620-486011-09172e6e0000 Ready 6d21h v1.31.0 + lke295620-486011-389bbe940000 Ready 6d21h v1.31.0 + lke295620-486011-4045e9410000 Ready 6d21h v1.31.0 + ``` + + {{< note >}} + Optionally, to avoid specifying ``--kubeconfig ~/.kube/lke-config` with every `kubectl` command, you can set an environment variable for your current terminal window session: + + ```command + export KUBECONFIG=~/.kube/lke-config + ``` + + Then, you can run: + + ```command + kubectl get no + ``` + {{< /note >}} + +## Set Up RabbitMQ on LKE -| $ linode lke versions-list ┌───────┐ │ id │ ├───────┤ │ 1.31 │ ├───────┤ │ 1.30 │ └───────┘ | -| :---- | +The following steps assume your LKE cluster is provisioned and your `KUBECONFIG` environment variable is set to `~/.kube/lke-config`. -It’s generally recommended to provision the latest version of Kubernetes unless specific requirements dictate otherwise. +1. Install the Cluster Kubernetes Operator by applying the operator manifest: -2. Use the following command to list available Linode plans, including plan ID, pricing, and performance details. For more detailed pricing information, see [Akamai Connected Cloud: Pricing](https://www.linode.com/pricing/): + ```command + kubectl apply -f \ + https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml + ``` -| $ linode linodes types | -| :---- | + You should see output similar to the following, indicating that various resources have been created: -3. The examples in this guide use the **g6-standard-2** Linode, which features two CPU cores and 4 GB of memory. Run the following command to display detailed information in JSON for this Linode plan: + ```output + namespace/rabbitmq-system created + customresourcedefinition.apiextensions.k8s.io/rabbitmqclusters.rabbitmq.com created + serviceaccount/rabbitmq-cluster-operator created + role.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-role created + clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-operator-role created + clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-service-binding-role created + rolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-rolebinding created + clusterrolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-operator-rolebinding created + deployment.apps/rabbitmq-cluster-operator created + ``` -| $ linode linodes types \--label "Linode 4GB" \--json \--pretty \[ { "addons": {...}, "class": "standard", "disk": 81920, "gpus": 0, "id": "g6-standard-2", "label": "Linode 4GB", "memory": 4096, "network\_out": 4000, "price": { "hourly": 0.036, "monthly": 24.0 }, "region\_prices": \[...\], "successor": null, "transfer": 4000, "vcpus": 2 } \] | -| :---- | +1. Verify that the operator was successfully installed by listing all resources in the `rabbitmq-system` namespace: -4. View available regions with the regions list command: + ```command + kubectl get all -n rabbitmq-system + ``` -| $ linode regions list | -| :---- | + You should see output similar to this: -5. With a Kubernetes version and Linode type selected, use the following command to create a cluster named rabbitmq-cluster in the us-mia (Miami, FL) region with three nodes and auto-scaling. Replace rabbitmq-cluster and us-mia with a cluster label and region of your choosing, respectively: + ```output + NAME READY STATUS RESTARTS AGE + pod/rabbitmq-cluster-operator-7cb8bd8f85-lv8fg 1/1 Running 0 29s -| $ linode lke cluster-create \\ \--label rabbitmq-cluster \\ \--k8s\_version 1.31 \\ \--region us-mia \\ \--node\_pools '\[{ "type": "g6-standard-2", "count": 3, "autoscaler": { "enabled": true, "min": 3, "max": 8 } }\]' | -| :---- | + NAME READY UP-TO-DATE AVAILABLE AGE + deployment.apps/rabbitmq-cluster-operator 1/1 1 1 30s -Once your cluster is successfully created, you should see output similar to the following: + NAME DESIRED CURRENT READY AGE + replicaset.apps/rabbitmq-cluster-operator-7cb8bd8f85 1 1 1 30s + ``` -| Using default values: {}; use the \--no-defaults flag to disable defaults \+------------------+--------+-------------+ | label | region | k8s\_version | \+------------------+--------+-------------+ | rabbitmq-cluster | us-mia | 1.31 | \+------------------+--------+-------------+ | -| :---- | +1. To install RabbitMQ on your cluster, you need a configuration file specifying the declarative state of RabbitMQ cluster. Use a command line text editor, such as `nano`, to create a file named `rabbitmq-basic.yaml` in your user's home directory: -## Step 2: Access the Kubernetes Cluster + ```command + nano ~/rabbitmq-basic.yaml + ``` -To access your cluster, fetch the cluster credentials in the form of a kubeconfig file. + Populate the file with the following example configuration: -1. Use the following command to retrieve the cluster’s ID: + ```file {title="rabbitmq-basic.yaml" lang="yaml"} + apiVersion: rabbitmq.com/v1beta1 + kind: RabbitmqCluster + metadata: + name: rabbitmq-basic + spec: + service: + type: NodePort + ``` -| $ CLUSTER\_ID=$(linode lke clusters-list \--json | \\ jq \-r \\ '.\[\] | select(.label \== "rabbitmq-cluster") | .id') | -| :---- | + To save the file and exit `nano`, press CTRL+X, followed by Y then Enter. -2. Create a hidden .kube folder in your user’s home directory: +1. Apply the configuration to your LKE cluster: -| $ mkdir \~/.kube | -| :---- | + ```command + kubectl apply -f ./rabbitmq-basic.yaml + ``` -3. Retrieve the kubeconfig file and save it to \~/.kube/lke-config: + ```output + rabbitmqcluster.rabbitmq.com/rabbitmq-basic created + ``` -| $ linode lke kubeconfig-view \--json "$CLUSTER\_ID" | \\ jq \-r '.\[0\].kubeconfig' | \\ base64 \--decode \> \~/.kube/lke-config | -| :---- | +1. Wait a few minutes for the configuration to be applied, then list all provisioned resources to confirm that RabbitMQ is installed: -4. Once you have the kubeconfig file saved, access your cluster by using kubectl and specifying the file: + ```command + kubectl get all + ``` -| $ kubectl get no \--kubeconfig \~/.kube/lke-config NAME STATUS ROLES AGE VERSION lke292179-482071-0f646b210000 Ready \ 33s v1.31.0 lke292179-482071-119038ec0000 Ready \ 38s v1.31.0 lke292179-482071-354f1bb10000 Ready \ 35s v1.31.0 | -| :---- | + The HTTP interface for RabbitMQ is exposed on port `15672`. By specifying the `NodePort` service in `rabbitmq-basic.yaml`, this port is mapped to the LKE cluster on port `31412` in the example output below. Similarly, the AQMP protocol, which operates on port `5672`, is mapped to port `30528` on the LKE cluster: -| Note: Optionally, to avoid specifying \--kubeconfig \~/.kube/lke-config with every kubectl command, you can set an environment variable for your current terminal window session. $ export KUBECONFIG=\~/.kube/lke-config Then run: $ kubectl get no | -| :---- | + ```output + NAME READY STATUS RESTARTS AGE + pod/rabbitmq-basic-server-0 1/1 Running 0 93s -## Step 3: Setup RabbitMQ on LKE + NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + service/kubernetes ClusterIP 10.128.0.1 443/TCP 6d22h + service/rabbitmq-basic NodePort 10.128.125.42 5672:30528/TCP,15672:31412/TCP,15692:32494/TCP 94s + service/rabbitmq-basic-nodes ClusterIP None 4369/TCP,25672/TCP 94s -[Guidance](https://www.rabbitmq.com/blog/2020/08/10/deploying-rabbitmq-to-kubernetes-whats-involved) from the RabbitMQ maintainers recommends *not* handling the installation of RabbitMQ on Kubernetes directly, but instead using the following RabbitMQ tools to streamline its management on Kubernetes: + NAME READY AGE + statefulset.apps/rabbitmq-basic-server 1/1 93s -* [**Cluster Kubernetes Operator**](https://www.rabbitmq.com/kubernetes/operator/operator-overview#cluster-operator): Handles the automation of provisioning, management, and operation of RabbitMQ clusters on Kubernetes. -* [**Messaging Topology Operator**](https://www.rabbitmq.com/kubernetes/operator/operator-overview#topology-operator): Manages the messaging topologies within a RabbitMQ cluster that has been deployed using the RabbitMQ Cluster Kubernetes Operator. + NAME ALLREPLICASREADY RECONCILESUCCESS AGE + rabbitmqcluster.rabbitmq.com/rabbitmq-basic True True 94s + ``` -These operators are extensions to the Kubernetes management tooling and take advantage of the Kubernetes API. This guide focuses on the RabbitMQ Cluster Kubernetes Operator for deploying RabbitMQ, utilizing native RabbitMQ tooling for management and configuration. The Cluster Kubernetes Operator provides the following key features: + ![Command-line output displaying a list of all provisioned RabbitMQ resources, including pods and services.](list-all-resources.png) -* Provisioning of single-node and multi-node RabbitMQ clusters -* Reconciliation of deployed clusters when the existing state does not match the declarative state -* Monitoring of RabbitMQ clusters -* Scaling up and automated upgrades + The ports shown in the example output *do not* match your specific LKE setup. Take note of the port number mapped to `15672` as it is referred to by {{< placeholder "PORT" >}} in later steps. -### Install the RabbitMQ Cluster Kubernetes Operator +1. View the logs from the RabbitMQ pod listed in the output above: -With your LKE cluster provisioned and the KUBECONFIG environment variable set to \~/.kube/lke-config, install the Cluster Kubernetes Operator with the following command: + ```command + kubectl logs rabbitmq-basic-server-0 + ``` -| $ kubectl apply \-f \\ https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml namespace/rabbitmq-system created customresourcedefinition.apiextensions.k8s.io/rabbitmqclusters.rabbitmq.com created serviceaccount/rabbitmq-cluster-operator created role.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-role created clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-operator-role created clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-service-binding-role created rolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-rolebinding created clusterrolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-operator-rolebinding created deployment.apps/rabbitmq-cluster-operator created | -| :---- | + Look for the `Time to start RabbitMQ` line in the log output, which indicates a successful startup of the application: -To verify, list all the resources within the rabbitmq-system namespace. + ```output + Defaulted container "rabbitmq" out of: rabbitmq, setup-container (init) + ... + ## ## RabbitMQ 4.0.5 + ## ## + ########## Copyright (c) 2007-2024 Broadcom Inc and/or its subsidiaries + ###### ## + ########## Licensed under the MPL 2.0. Website: https://rabbitmq.com + ... + Starting broker...2024-12-29 18:31:42.237065+00:00 [info] <0.216.0> + ... + 2024-12-29 18:31:43.519971+00:00 [info] <0.591.0> Ready to start client connection listeners + 2024-12-29 18:31:43.521861+00:00 [info] <0.739.0> started TCP listener on [::]:5672 + completed with 6 plugins. + ... + 2024-12-29 18:31:43.740056+00:00 [info] <0.10.0> Time to start RabbitMQ: 3598 ms + ``` -| $ kubectl get all \-n rabbitmq-system NAME READY STATUS RESTARTS AGE pod/rabbitmq-cluster-operator-779cb-g699f 1/1 Running 0 3m13s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/rabbitmq-cluster-operator 1/1 1 1 3m13s NAME DESIRED CURRENT READY AGE replicaset.apps/rabbitmq-cluster-operator-779cb 1 1 1 3m14s | -| :---- | +### Access RabbitMQ Remotely -### Install RabbitMQ +To access the RabbitMQ management console, first retrieve the auto-generated credentials for the default administrative user. -Next, install RabbitMQ on this cluster. To do that, a configuration is needed that specifies what the declarative state of the cluster will be. A basic example of a working configuration is: +1. Retrieve the username using the following command: -| apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metadata: name: rabbitmq-basic spec: service: type: NodePort | -| :---- | + ```command + kubectl get secret rabbitmq-basic-default-user \ + -o jsonpath='{.data.username}' \ + | base64 --decode + ``` -Store the above definition in a file called rabbitmq-basic.yaml. Then, apply this configuration to your LKE cluster. + Your default administrative username typically start with `default_user_`. For example: -| $ kubectl apply \-f ./rabbitmq-basic.yaml rabbitmqcluster.rabbitmq.com/rabbitmq-basic created | -| :---- | + ```output + default_user_DoiEmUZy-rMJfFEa3gM + ``` -### Verify successful installation +1. Retrieve the password using the following command: -Confirm that RabbitMQ was installed by showing the resources that have been provisioned. + ```command + kubectl get secret rabbitmq-basic-default-user \ + -o jsonpath='{.data.password}' \ + | base64 --decode + ``` -| $ kubectl get all NAME READY STATUS RESTARTS AGE pod/rabbitmq-basic-server-0 0/1 Init:0/1 0 39s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.128.0.1 \ 443/TCP 15m service/rabbitmq-basic ClusterIP 10.128.120.69 \ 5672:31825/TCP,15672:30153/TCP,15692:31520/TCP 39s service/rabbitmq-basic-nodes ClusterIP None \ 4369/TCP,25672/TCP 39s NAME READY AGE statefulset.apps/rabbitmq-basic-server 0/1 39s NAME ALLREPLICASREADY RECONCILESUCCESS AGE rabbitmqcluster.rabbitmq.com/rabbitmq-basic True True 40s | -| :---- | + The password is randomly generated, for example: -![][image2] + ```output + 3fNpEwB2R2s3oBibIZ9UDjeqCVgFcBq1 + ``` -The HTTP interface for RabbitMQ is exposed on port 15672. By specifying the NodePort service in rabbitmq-basic.yaml, this port is exposed on the LKE cluster at port 30153. Similarly the AQMP protocol, which runs through port 5672, is exposed on the LKE cluster at port 31825. Note that the ports shown in the example above may not match your specific LKE setup. +{{< note >}} +To set a custom administrative username and password during the creation of the RabbitMQ cluster, modify `rabbitmq-basic.yaml` to include the following additional configuration: -To view the logs from the pod listed in the output above, run: +```file {title="rabbitmq-basic.yaml" lang="yaml" hl_lines="8-10"} +apiVersion: rabbitmq.com/v1beta1 +kind: RabbitmqCluster +metadata: + name: rabbitmq-basic +spec: + service: + type: NodePort + additionalConfig: | + default_user={{< placeholder "USERNAME" >}} + default_pass={{< placeholder "PASSWORD" >}} +``` +{{< /note >}} -| $ kubectl logs rabbitmq-basic-server-0 Defaulted container "rabbitmq" out of: rabbitmq, setup-container (init) … \#\# \#\# RabbitMQ 3.13.7 \#\# \#\# \#\#\#\#\#\#\#\#\#\# Copyright (c) 2007-2024 Broadcom Inc and/or its subsidiaries \#\#\#\#\#\# \#\# \#\#\#\#\#\#\#\#\#\# Licensed under the MPL 2.0. Website: https://rabbitmq.com … Starting broker...2024-12-18 15:50:34.914985+00:00 \[info\] \<0.254.0\> … 2024-12-18 15:50:38.290177+00:00 \[info\] \<0.683.0\> Ready to start client connection listeners 2024-12-18 15:50:38.292751+00:00 \[info\] \<0.850.0\> started TCP listener on \[::\]:5672 completed with 7 plugins. … 2024-12-18 15:50:38.484024+00:00 \[info\] \<0.9.0\> Time to start RabbitMQ: 6324 ms | -| :---- | +### Locate the External IP Address of the LKE Cluster -If you see the Time to start RabbitMQ line in the log output, this indicates a successful startup of the application. +To access the RabbitMQ server and its management interface remotely, follow these steps to locate the cluster's external IP address and verify its availability. -## Step 4: Access RabbitMQ Remotely +1. Retrieve the external IP addresses of your LKE cluster nodes using the following command: -To access the management console, you will need the auto-generated credentials of the default admin user. Use the following two commands: + ```command + kubectl get nodes \ + -o wide \ + | awk -v OFS='\t\t' '{print $1, $6, $7}' + ``` -| $ kubectl get secret rabbitmq-basic-default-user \\ \-o jsonpath='{.data.username}' \\ | base64 \--decode default\_user\_dS\_gWwwjtIEIiMcqdwu $ kubectl get secret rabbitmq-basic-default-user \\ \-o jsonpath='{.data.password}' \\ | base64 \--decode yOOO7ESTmh0DuCBbxz2IWaDGM-YafXSZ | -| :---- | + This command displays the node names, internal IPs, and external IPs. For example: -To set the default username and password upon creation of the RabbitMQ servers, modify rabbitmq-basic.yaml to add the additional configuration. + ```output + NAME INTERNAL-IP EXTERNAL-IP + lke295620-486011-09172e6e0000 192.168.149.243 172.233.162.14 + lke295620-486011-389bbe940000 192.168.149.206 172.233.175.169 + lke295620-486011-4045e9410000 192.168.149.217 172.235.133.50 + ``` -| apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metadata: name: rabbitmq-basic spec: service: type: NodePort additionalConfig: | default\_user=\ default\_pass=\ | -| :---- | + In this example output, one of the nodes has an external IP address of `172.233.162.14`. Recall from the earlier `kubectl get all` command that port `31412` maps to the HTTP interface of the RabbvitMQ server. Combine the external IP address of a node with this port to locate the RabbitMQ management service (e.g. `http://172.233.162.14:31412`). -### Locate the external IP address of the LKE cluster + Record one of the external IP addresses shown in your output as it is referred to later by {{< placeholder "IP_ADDRESS" >}} in subsequent steps. -| $ kubectl get nodes \\ \-o wide \\ | awk \-v OFS='\\t\\t' '{print $1, $6, $7}' NAME INTERNAL-IP EXTERNAL-IP lke292179-482071-0f646b210000 192.168.143.176 172.235.141.144 lke292179-482071-119038ec0000 192.168.143.120 172.235.141.24 lke292179-482071-354f1bb10000 192.168.143.239 172.235.141.151 | -| :---- | +1. Verify RabbitMQ’s availability by retrieving its current configuration as a JSON object. Replace {{< placeholder "USERNAME" >}}, {{< placeholder "PASSWORD" >}}, {{< placeholder "IP_ADDRESS" >}}, and {{< placeholder "PORT" >}} with the administrative credentials and the node's external IP address and port: -The external IP address for one of the LKE nodes is 172.235.141.144. Recall from the earlier kubectl get all command that port 30153 at the cluster level routes to HTTP access to the RabbitMQ server. Therefore, the RabbitMQ management service can be found at 172.235.141.144:30153. + ```command + curl --user '{{< placeholder "USERNAME" >}}:{{< placeholder "PASSWORD" >}}' http://{{< placeholder "IP_ADDRESS" >}}:{{< placeholder "PORT" >}}/api/overview | jq + ``` -Run the following command to retrieve the current RabbitMQ configuration as a JSON object. Paste in the admin username and password that you obtained above. + This command retrieves an overview of the RabbitMQ server, for example: + + ```output + { + "management_version": "4.0.5", + "rates_mode": "basic", + ... + "product_version": "4.0.5", + "product_name": "RabbitMQ", + "rabbitmq_version": "4.0.5", + "cluster_name": "rabbitmq-basic", + ... + "erlang_version": "27.2", + ... + } + ``` -| $ curl \\ \--user default\_user\_dS\_gWwwjtIEIiMcqdwu:yOOO7ESTmh0DuCBbxz2IWaDGM-YafXSZ \\ 172.235.141.144:30153/api/overview \\ | jq { "management\_version": "3.13.7", "rates\_mode": "basic", ... "product\_version": "3.13.7", "product\_name": "RabbitMQ", "rabbitmq\_version": "3.13.7", "cluster\_name": "rabbitmq-basic", "erlang\_version": "26.2.5.6", … | -| :---- | +1. To access the RabbitMQ web GUI, open a web browser and navigate to the following URL, replacing {{< placeholder "IP_ADDRESS" >}} and {{< placeholder "PORT" >}} with your actual external IP address and port number (e.g. `http://172.233.162.14:31412/#/`): -To access RabbitMQ admin in a web GUI, open a browser and navigate to [http://172.235.141.144:30153/\#/](http://172.235.141.144:30153/#/). + ```command + http://{{< placeholder "IP_ADDRESS" >}}:{{< placeholder "PORT" >}}/#/ + ``` -![][image3] + ![RabbitMQ management GUI displayed in a web browser, showing the login page.](rabbitmq-management-gui.png) -At the initial login prompt, supply the admin username and password. +1. At the initial login prompt, enter the default administrative username and password: -![][image4] + ![RabbitMQ web interface login screen for entering credentials.](rabbitmq-login-screen.png) -## Step 5: Test RabbitMQ with a Messaging Example +## Test RabbitMQ with a Messaging Example -To test the RabbitMQ deployment with a messaging example, first download the management script. +To test the RabbitMQ deployment, download the RabbitMQ management script, create an exchange and queue, and publish and retrieve messages. -| $ wget http://172.235.141.144:30153/cli/rabbitmqadmin | -| :---- | +### Download and Set Up the Management Script -Make the script executable, and move it somewhere to a location included in the environment PATH. +1. Download the management script using the `wget` command. Replace {{< placeholder "IP_ADDRESS" >}} and {{< placeholder "PORT" >}} with your actual external IP address and port number: -| $ chmod \+x rabbitmqadmin $ mv rabbitmqadmin /usr/local/bin/ | -| :---- | + ```command + wget http://{{< placeholder "IP_ADDRESS" >}}:{{< placeholder "PORT" >}}/cli/rabbitmqadmin + ``` -### Create exchange and queue +1. Make the script executable and move it to a directory included in your `PATH` (e.g `/usr/local/bin`): -The subsequent calls to rabbitmqadmin will need to include admin authentication as well as the host and port information for RabbitMQ. For convenience, set these values as environment variables in your terminal window. This will look similar to the following: + ```command + chmod +x rabbitmqadmin + sudo mv rabbitmqadmin /usr/local/bin/ + ``` -| $ export USERNAME=default\_user\_dS\_gWwwjtIEIiMcqdwu $ export PASSWORD=yOOO7ESTmh0DuCBbxz2IWaDGM-YafXSZ $ export HOST=172.235.141.144 $ export PORT=30153 | -| :---- | +### Create Exchange and Queue -Create a fanout style exchange on the RabbitMQ server with the following. +1. For convenience, set your RabbitMQ credentials and host information as environment variables. Replace {{< placeholder "USERNAME" >}}, {{< placeholder "PASSWORD" >}}, {{< placeholder "IP_ADDRESS" >}}, and {{< placeholder "PORT" >}} with your actual values: -| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ declare exchange \\ name=test\_fanout\_exchange \\ type=fanout exchange declared | -| :---- | + ```command + export USERNAME={{< placeholder "USERNAME" >}} + export PASSWORD={{< placeholder "PASSWORD" >}} + export HOST={{< placeholder "IP_ADDRESS" >}} + export PORT={{< placeholder "PORT" >}} + ``` -Create a queue to attach to this exchange to hold messages. +1. Create a `fanout` style exchange on the RabbitMQ server: -| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ declare queue \\ name=fanout\_queue \\ durable=true queue declared | -| :---- | + ```command + rabbitmqadmin \ + --username=$USERNAME --password=$PASSWORD \ + --host=$HOST --port=$PORT \ + declare exchange \ + name=test_fanout_exchange \ + type=fanout + ``` -Bind the queue to the exchange. + ```output + exchange declared + ``` -| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ declare binding \\ source=test\_fanout\_exchange \\ destination=fanout\_queue binding declared | -| :---- | +1. Create a queue for the exchange to hold messages: -### Test message publishing and retrieval + ```command + rabbitmqadmin \ + --username=$USERNAME --password=$PASSWORD \ + --host=$HOST --port=$PORT \ + declare queue \ + name=fanout_queue \ + durable=true + ``` -Publish a message to the exchange (and bound queue): + ```output + queue declared + ``` -| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ publish \\ exchange=test\_fanout\_exchange \\ routing\_key=dummy\_key \\ payload="Hello, world\!" Message published | -| :---- | +1. Bind the queue to the exchange: -The routing key is not necessary for a fanout exchange, as each message is routed to each queue regardless of the routing key, but it is required for the rabbitmqadmin tool. + ```command + rabbitmqadmin \ + --username=$USERNAME --password=$PASSWORD \ + --host=$HOST --port=$PORT \ + declare binding \ + source=test_fanout_exchange \ + destination=fanout_queue + ``` -Retrieve the messages from the queue. + ```output + binding declared + ``` -| $ rabbitmqadmin \\ \--username=$USERNAME \--password=$PASSWORD \\ \--host=$HOST \--port=$PORT \\ get \\ queue=fanout\_queue \+-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ | routing\_key | exchange | message\_count | payload | payload\_bytes | payload\_encoding | properties | redelivered | \+-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ | dummy\_key | test\_fanout\_exchange | 0 | Hello, world\! | 13 | string | | False | \+-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ | -| :---- | +### Test Message Publishing and Retrieval -![][image5] +1. Publish a message to the exchange (and its bound queue): -## Step 6: Create New Users + ```command + rabbitmqadmin \ + --username=$USERNAME --password=$PASSWORD \ + --host=$HOST --port=$PORT \ + publish \ + exchange=test_fanout_exchange \ + routing_key=dummy_key \ + payload="Hello, world!" + ``` -When connecting applications to your new RabbitMQ deployment, you may want to create and use RabbitMQ users other than the [default administrative user](https://www.rabbitmq.com/docs/access-control#default-state). + Upon success, the following message is displayed: -In the RabbitMQ web interface, click the **Admin** tab. This will show the list of users, which currently only includes the default admin user. + ```output + Message published + ``` -![][image6] + {{< note >}} + While a routing key is not necessary for a `fanout` exchange, it is required for the `rabbitmqadmin` tool. + {{< /note >}} -Provide a username and password for the new user. Then, add any tags to specify the user’s level of permissions. +1. Retrieve the messages from the queue: -![][image7] + ```command + rabbitmqadmin \ + --username=$USERNAME --password=$PASSWORD \ + --host=$HOST --port=$PORT \ + get \ + queue=fanout_queue + ``` + + The message should be displayed along with other details: -Click **Add user**. The user will be added to the list of users, but you will see that it does not yet have access to any virtual hosts. + ```output + +-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ + | routing_key | exchange | message_count | payload | payload_bytes | payload_encoding | properties | redelivered | + +-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ + | dummy_key | test_fanout_exchange | 0 | Hello, world! | 13 | string | | False | + +-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ + ``` -![][image8] + ![Command-line output displaying messages retrieved from a RabbitMQ queue.](retrieved-messages-from-queue.png) + +## Create New Users + +When connecting applications to your RabbitMQ deployment, it's recommended to create and use RabbitMQ users other than the [default administrative user](https://www.rabbitmq.com/docs/access-control#default-state). + +1. In the RabbitMQ web interface, click the **Admin** tab. This shows the list of users, which currently only includes the default administrative user: + + ![The RabbitMQ web interface showing the Admin tab with a list of current users.](rabbitmq-admin-tab.png) + +1. Click **Add a user** then provide a username, password, and tag/s to specify the user’s permission level (e.g. **monitoring**). + + ![The Add User form in the RabbitMQ web interface, allowing input for username, password, and permission tags.](add-new-user-form.png) + +1. Click **Add user**. While the new user is added to the list of users, it does not yet have access to any virtual hosts: + + ![RabbitMQ web interface displaying the newly added user in the list of users.](user-added-confirmation.png) + +### Set Permissions for the User on the Virtual Host -### Set permissions for the user on the virtual host +1. Click the name of the newly created user. Click **Set permission** to allow full permissions on the default virtual host (`/`). -Click the name of the newly created user. Allow full permissions on the default virtual host (which is /). Click **Set permission**. + ![RabbitMQ web interface screen showing options to set user permissions for a virtual host.](set-user-permissions.png) -![][image9] +1. Verify the newly created user's RabbitMQ management access by logging out and logging in as the new user: -Verify that this newly created user has RabbitMQ management access by logging out and logging in as the new user. + ![RabbitMQ login screen to verify the new user's management access credentials.](user-management-login-test.png) -![][image10] +### Send Test Requests to the RabbitMQ API + +The following requests assume that your terminal session still uses the previously set environment variables for `HOST` and `PORT`: -### Send test requests to the RabbitMQ API +1. Test publishing a message to the exchange using `curl` to send an authenticated request to the RabbitMQ API. Replace {{< placeholder "NEW_USERNAME" >}} and {{< placeholder "NEW_PASSWORD" >}} with the credentials for your newly created user: -Using curl, send an authenticated request to the RabbitMQ API, testing out the publishing of a message to an exchange. Note the %2f in the request URL. This is the name of the exchange, which is the URL-encoded value for /. + ```command + curl \ + -u '{{< placeholder "NEW_USERNAME" >}}:{{< placeholder "NEW_PASSWORD" >}}' \ + -H "Content-Type: application/json" \ + -X POST \ + -d '{"properties":{},"routing_key":"dummy_key","payload":"Hello, curl!","payload_encoding":"string"}' \ + http://$HOST:$PORT/api/exchanges/%2f/test_fanout_exchange/publish + ``` -The requests below assume that the terminal session still uses the environment variables, HOST and PORT, which were set previously. + {{< note >}} + The `%2f` in the request URL is the URL-encoded value for `/`, the name of the default virtual host. + {{< /note >}} -| $ curl \\ \-u linodeuser:mypassword \\ \-H "Content-Type: application/json" \\ \-X POST \\ \-d '{"properties":{},"routing\_key":"dummy\_key","payload":"Hello, curl\!","payload\_encoding":"string"}' \\ http://$HOST:$PORT/api/exchanges/%2f/test\_fanout\_exchange/publish {"routed":true} | -| :---- | + Upon success, you should see the following output: -Next, send an authenticated request to get the last two messages from the queue. + ```output + {"routed":true} + ``` -| $ curl \\ \-u linodeuser:mypassword \\ \-H "Content-type:application/json" \\ \-X POST \\ \-d '{"count":2,"ackmode":"ack\_requeue\_true","encoding":"auto"}' \\ http://$HOST:$PORT/api/queues/%2f/fanout\_queue/get | json\_pp \[ { "exchange" : "test\_fanout\_exchange", "message\_count" : 1, "payload" : "Hello, world\!", "payload\_bytes" : 13, "payload\_encoding" : "string", "properties" : \[\], "redelivered" : true, "routing\_key" : "dummy\_key" }, { "exchange" : "test\_fanout\_exchange", "message\_count" : 0, "payload" : "Hello, curl\!", "payload\_bytes" : 12, "payload\_encoding" : "string", "properties" : \[\], "redelivered" : true, "routing\_key" : "dummy\_key" } \] | -| :---- | +1. Retrieve the last two messages from the queue by sending an authenticated request: -The resources below are provided to help you become familiar with RabbitMQ when deployed to LKE on Linode. + ```command + curl \ + -u '{{< placeholder "NEW_USERNAME" >}}:{{< placeholder "NEW_PASSWORD" >}}' \ + -H "Content-type:application/json" \ + -X POST \ + -d '{"count":2,"ackmode":"ack_requeue_true","encoding":"auto"}' \ + http://$HOST:$PORT/api/queues/%2f/fanout_queue/get | json_pp + ``` -## RabbitMQ Resources + This command returns the following output, showing the messages retrieved from the queue: -* [RabbitMQ Kubernetes Operators](https://www.rabbitmq.com/kubernetes/operator/operator-overview) -* [Production RabbitMQ Operator Configuration](https://github.com/rabbitmq/cluster-operator/tree/main/docs/examples/production-ready) -* [RabbitMQ Message Topology Operator](https://www.rabbitmq.com/kubernetes/operator/install-topology-operator) -* [Configuration Documentation](https://www.rabbitmq.com/docs/configure) -* [Deployment Checklist](https://www.rabbitmq.com/docs/production-checklist) -* [Plugins](https://www.rabbitmq.com/docs/plugins) -* [Management CLI](https://www.rabbitmq.com/docs/management-cli) -* [RabbitMQ Linode Marketplace App](https://www.linode.com/marketplace/apps/linode/rabbitmq/) \ No newline at end of file + ```output + [ + { + "exchange" : "test_fanout_exchange", + "message_count" : 1, + "payload" : "Hello, world!", + "payload_bytes" : 13, + "payload_encoding" : "string", + "properties" : [], + "redelivered" : true, + "routing_key" : "dummy_key" + }, + { + "exchange" : "test_fanout_exchange", + "message_count" : 0, + "payload" : "Hello, curl!", + "payload_bytes" : 12, + "payload_encoding" : "string", + "properties" : [], + "redelivered" : true, + "routing_key" : "dummy_key" + } + ] + ``` \ No newline at end of file diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/list-all-resources.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/list-all-resources.png new file mode 100644 index 0000000000000000000000000000000000000000..04b3bbda08844da08620f2fc78a3f2361dbd33d6 GIT binary patch literal 48024 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

XqEs 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 T#Bp{^1iWBM8j58POauP|1F@H* literal 0 HcmV?d00001 diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-login-screen.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-login-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..7385f1767fc734ff02222347570b136c72c98506 GIT binary patch literal 69676 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 RT9+P< zh7ShR2Z*P~Bb)n)k3^5NZvM_W7M|J*jIvUc$3)Ej?DyQFEULHR93=6!<*+0gMgz`c zxLx5#<+$D|fmu6pKB4%ZSfxn2a7cElN5p$_Xt%Lqenn+;+ooP*?dk?XPdxr2X{+J7Vx?5=3@Mco#^kdm3_)924$o=HE_Y9yk_Z`8r2!n6;U<5yXM zz=hE8G3j{NxTS#H&K)g~umZn;l8eKS!Cf3#LlUQ2&Uc!S-Yk@a%$;T~!a!c4{@L-N z5gehqx(kU)kZyo_gzv+voO!pM+bKtWNbaE)s-m|Vq4PQB$}W9(B2NFZgPe3zndcMl z2KvH;mSw35$1v57vqRB}e%%0-xWL8V)V0NeU!ILD%dV=qx|QsTBr*724I&z0^IeUT zt>T*QFy6Ze-hRIpraawzU-ppt{A=S=B8KFE(B0d^2dMgU=mTl``MrNFnYloJg|Dki z4D9LS+n!JrZvNd*Bg~3r55}oxWk>x4S+?F6Q{okk-k*7~P!|V8|C@~7*`BSG2Y>D# zEIw%4p)NEfUn}@%Sm!G8`xhsOukCIhPEKpfWHAPJa2AQ1>t+k$ITO~~?VJo+V3KoP zJoj~RO<2$Pp!Z=99vw3zcB+Y$sF2h`MfyIm+JskbsmOxAA_;s;hWaOZc zUEG5T2Hl`SQ}T^-CQ+DD7t^UXeS>5+0cwUY1A6W}zBQVI2*Gjf1Jhh1G|Bv~SuaDgpWSP}Q&o5- zBbR|JtN-ijkMh_nuK|K}7TK>qd8>e?FiX+9rq!vsFp>gerxhsxI%3|{;;sXxr9P>GOU#rCm zRDNf1j%Rv2(@^9#M#bu_@Y1$JJDu7-#%GI&6KG(#ClC_Hnage4b7PL%#*7%{e${nW z8-dJROum_+SF}UEP#?U#p*q1$&R}@){)Xo_$xi=!+bPJ>H`Y#9qIPR|zlcm;L2*Ut z8$YZ`b#M1C)D*X4foh3Q-30>oi@GY_`aRV&;O~Ae?omufpw2j|RMkt<#MAY$bO55o zx4`a|Ga@uo$AZe#7vB6OKiVg^T$uY{FhI)S#fIq{CqXphuG@ou%qJMKI4)ORg(WTg zeJ78v)i#tL^~e(y!{5Gye46+Xm#5}ltEDlDypm>if1odIC4#4h6T8G_oZy0}M61UY z_fd=3l}Po=W+oEVeb*Q2rJqO`g^sJ8dt2Un8|km(E7B$fexCLVvK&IfGL6WGE1djT z3YYiV5gnV}5>Yx3@a%Ss9wb;hmc2|4*$rPiMD!EKz?(l*%*VjWY936LPNV%JW}hEj zNr<-mQu6a73>VCK%AUyMH!5RQ$F(u-rnk>+Pvvxm#7Lbiac^`Dj;s*)CK-YQ4BcAQ zhVwpJ>a6|Fb@v}ez@1Rj6 zB^N=yG+bWSqT_@=)smLpd_y#K#1BsyQoB~x#6n)FHwQ7|!E{eFIr@S$1iX&r;16Pc zU7tQZ+u}3-=soFk=ouQFbQf^Lh(F2AIh>9%T^Kp(Z9(!5*;uPfAg0R)ot!=qzWH$c zdXrtcE=M|<^LzJJ-1eDsiLcnSW%k&!J?CkNl{1!V`45Xm{v&e~BJKu}lfj=ZkvyEZzbxM_J=?W4RokxWk<{C7>F7_vA@Uhe|NL1Fr^)->PBi;>AM4Rr zoTkrB3+U(uWA42jzmE*IQ!TD)J(b+(Yz-%4{DT+A_H?^y)Pq!3B#Pg*BIL9RG$#*a z#*mTdTauo#8Qq*^s-e?%*o z#tnm=m{GC~!+Ei>vefjl@awrFbAHgqQP_TuU8>A$@>CXc#36%4KE4&0$`dP>o)uX^ z-$Zsf<&*r(2GfAbVOY`GRk@uO;#YPS68$if1)6OzD^9X| z*9NVP_xU8Jw7=0VF0$kk;g}ebDu>_?!zy9um&%?Tl+5&Ve zbDFDmf}brPg+TiCxUf;xjUu!Bbi>U6%Mj(e_fxdPUof7tXzTb_a^`UIIbUfvW?KlG z5#{@gs711KJ$8P{rtz!eu{j{>8oOarPSD1f6w1OHlz4TE$@o0J6d3!VoaKsI<5|JuRNM^_9zTCiocxZ17=mji^T8bB{^sNnupF=l9*u0 zWV6q-xW9^KYisVWp2 z;b3yWhVaK;TU7Vwcd+LyPoH~YWTfUOsQkMYU=-~G1M#5V!3C4!l|x3lZ}Wr+PHMN+ z92!le7K_dRd;`(v!sR(_MWt`YWVR>o_)$Z)FMdZb^F~L05wSfEYq?Fn?W#waHg^_& zvUC2MTKEk&-A@s*E-XG2T>;(E1-(L1qB#YG(0GBG%Z&{>c?+$F(>{{PEA+VD@K0oD zNaey}!K5n?wkbrKH|z1&yqC{nx{vo>Sq&xG4Y|$OcFtKB#QFHj%-RH0bVx%- z%cr+j+z8mO-rVBXu$p?cmztFYp|H8m@EvrktyoM(6xOo}5W$?IY9rKpTkHt?Nd%E- zTfZ935PT7%&%d)1;y;#8|`uqaG&tbTfj(b}LVlJY-4EkwQYxyyvqe^UpZ^!N}R%>48axqJ)-yZbT+iZ;S~3 zkghLJQE){4_qJSyduDs{HhSNCxO5H=bBN=MBqi`gGyd$EjX-vq5bm2tsPLt9O}Y4@ zKUuchFVDzI{^Hh}+M0JqW-)p%qXROHnyJvA=S%VXFM{b7yNH4J5L}|}qbB>A$*SPc%6_=UJ9QRvBmVYr|5*<#%<$@@2)gGf1M97H zSjthq_*XZ>FB=gso|3QPSVnqYrtSo@c84FCGwTkDGB36UdvLz8)SqSl$SN4PbR_Z_ zyXz;j3pEAGM~w$dRUNXdRNG6EyZaAtlb#MRpOO=VADoCvcZFh| zHb#nW7GjwxVq%At7%X)tYaCZtjb6wsP!XnQywl=)|B2oDz4$A?-n`G_%$_}^Zyn{s zPl|He?5JYef-KS&dJ>zHYcS8Q&cpQX#H>FTD+}%q!=4pdB+U!NGH)U<1VuAw2ftJx z(e(1aXq(R6cT0C?@k(>i5l-a&KEW^j@rcY({{5%R8&U0SCXolm^8G5@=M}4%tJU61 zImmDmCU<@azgXVJ#coKIYDr^9pfPk5C3gFui!$@P4JKA7gZo+w7AmaWm={O_d*b=q zimf{yUh*wvH}>8shQWKbB^(9*!Z)NLvEV1j;W~05{qaT$C-2`h45l7Pf2%(*0s;bR zF zMAz8BIzw!kB<%w!4rzysklTM<_4o^V1j*s2yrEy8Uk8v`sH2fgd(JWa3@8;it|yL0 z_?t#BK&!<%8imuymJ8z$8tkg6z#cvP^N$vfyXJrO8Spr~{~Ta4`agxp6Gs12sciC} z14%yq=Ufzm|D1~wVxR<8m|Ux={!t=8?M2Z4lo9-Qd>k7taFZKkO- z<_&rr-@HLP&aIsA5dBy3%$$*4JwZe}uy?lmz??ZJve8$a>g#~FP-dae|Z8rSY6+OacyeB_ibAcu0CV}q? zA7cx*G(gPg5}q2v*HJP^qmy6RAQqg+(Q1g?nH1YX@Y7riP^rK@5W&i6M0Oi}rhBB#h9^d|EG3k|Cy* zgU=JipHoG}TAo#SJ}J)a;~wtY<0S|iC{|8DC*sZsIGGh4n6KO})IexvNnP8EKfayhN^%-1>B)PpRwQ2ca z4&;J#d37W5-|B@GuWf(CX#7VY2qar{uLfwObWWDm9kfKJ6#b^{?txVGTXqZQB zSDW#J7Ns9Q#^VaLIP8%R7_j1bn64iZ;t*KtC{Z)%1lF3jZfk!bR3I-?XrjlWZQH=U zf|a&IBUx49g}b$D7t`*t8h{b9508T1HEe%+eo0~_t$CN&mzyQ_MuzF#(+k9dIs^j= zqF&FR?q~@~ev5gZ?{g4IQ{`Qj4~oj7^38xZnYJP@XWpI4%cniKHzJ>7{+=EuZ4_Vp zq>W&ED26BXW(xt4N(DgWVh$SwlQG3I1@26H z<9~2MR@!Dbay%bn_r-d!r|+Vh4yPvxL5MWs@MC&teAZBmCRrfJh$j?L^2tA~(RwP1>4nz@l)A zK8eLJBXvvJ4hLz%uE3Y7xK<% zh-X#|OBLg<8*_u+XVvx^S5?x#;(v*@pEPbPWq;y1VcKEe2`p@ga^K`M9x)Ij$Cw`T& zMbG&5>cur86EP({cNeuf$rLk0*UNr(s?Ra4R#Vq-Dz8-ipl>SN;wkJ!H1&(#8oyoe zOGFX!n{Q^w3ZV&yIbs5ki6+~l2A%T07>vP4e5SFHcm)KEkl&CDGREfMw-&=|wx>$4 z1}}g7?J$#ppT)t$!&~|lJ|I}}GG7=(4P4mZWZq;8^uvwZqkni{K>RXBL*m(sOoBf{ z+CIGb-)-XFchiwL>2o+=8>s(N@oi1GP@9SbL%ImxjWsIc%|H^T-y26N_6{mNfV*^< zf7|k_{<|F}_#bsEf0uusr?)y3{y*pC{cotjsrZV_<@7^7L=KlLEu+yX}pw^W0 zbado6|9ruO5o5#O15Uv9j{p4-N>IEZFK|V6-RfSS+FejULf>ew+OWmMTy@|o9?Fh>?8&~<^(;5#T@D!z8*`geLOZX$ z=J?lW9b#U79?3X!4juW<cy^Z4m*J=}_Eya+UjcXz}`!-C=XbaIS z3|)8b#`R6$^Ws+q@@+_WYtk>uo0NN#v96C&F&B`&91C_kPh&fMJ5?G`yTL+|+z@Ca zv)$$PTH%gQZO9;}{b#g6ZP@EGXzQE;PnE-;#Yq~!yWnf_`#Zc>oS6DwQ>kv1hDeNu zm=hPaMp^X`7BImsc<1bbU(Pp(F(4vWwl5*-bxgE#{_v;1app!v0Rcf8&!)V zEpZW1u)*NQrGB~a{24j=IbG8@Q*NW1)>c#AH4K%;5Dv_)(k~^!Z z6d4Qm?BJ5ch};c6FyXrOmpL)vpMPT#hrGDHsJ>H^HvE^PHLgcDWN+=lY)v6>!H7N_ zi<9rFT$b$ie>5Au@zoD(wvwIo$xd;_w`xhl{aKzu1HrH<8VP>#=JCD9p|H+i5!^EM zBd2ZI{` z=Ed|Eqejd)9RCm}-swwyC@j6>NU+uwWIEW(a6}Aylb$iK_m4BCXO&XXf}IPuLCHxv zrvkKB7itML+Mpx@=dfA--wiCt)^z`$A*FEa^55Mq9rxnS{|2l7Lz4Snj{pBIPyH`2 z`>)*je{(71s&e9=4jmWQge$lZIb-HqzDpkgpYJa06D{8*|Sj(zBL%8ct=W3dM@fB|GmDGz_=hZ3Pe`f4ZLIKq| zwAf%Z)_0rhmT9g3y==3Xo?t9_-IdIpOW_KOlFYnJclAkobaRdL0b1fVK0{F2qg9SQ zMz+H}-&|Vxq@>3Jmq#G^LzrO0-6AM(j2AW{c`b%DWqlJJ4HYqf_VGnQxp8oy>i5Pr z1k-Q@#v>6{di7zQkEbMAPxx+nALR~j_m2?$5WP>wFDV$Svji%htv|Y*1=n|0^u&=v zj`oB@IX`jP9*7=B(le-eOW;ei&7Mv8Fal zzTxm@z4x`&lPz32MiY5rE(*i?h`4=XUVVF6+-t>_!LaG>haf{jSl`)#D?LOi3{~lm z7E;5T&bV7=Z=J+%3F(${^J1pG+}D&`EA5GW6U&*^hMEy z=qa-9_URMX`Zpn1WaKEwrVk$Z=}OoQOT`@7sg_L>$mP;fi5*IO?vJ7Mpsc>}wgQ zqT|^_%6=G74d-i{f1C4o%MkRKQ!{gSej3*}>AjLd9$sRE%RQ*cL~{M%=dj-w)KPH! zp;FN5^@j=AgQjncGRh-FG7MI8LIVkRa9Qgw3-URAa)}3ZP4KWNc=z*4+^^MQ%GsL9 z%bP^stmLblIY5MNKH1bldR4mH5a5U1V};woi?60L>Xl<_(3!NZtad zzo)NWP*f-8^(}N%Q+?Z}cg7uMGNdm#c5hN?L_#g$JtqvkZIU<>8Xbry@S6_g-Y>7x z*9ySINTxeo%%Or$7Bf-jb0}b;do)GEB7y&)OgK!Yz$+LU*8@pHQEt|LROp8H~KfNyRnQ^+S@8wIcNuA zhl}8MM(@7;w!LX_mjp}sB(Q%EE&d#$C})m}!UUMx*8lku0@sPKDJ7Kpvq zW6(nl92;*d>g!iMeLY2Qe#I3Osul1=M zwv=_3)Ht{o?K2;N326%=pR1QWk&$Q`{p|ka+$JZV-^q;0SgpLbvTl|4%ngwzjoN|J zg8SO2SLnB_3`KDa1%Fy?So3VT@f-NcQ}XQO3}a0^v9f8GI7S{+o6cO%K=n05 ztuY`A&0~M98fh!R{?SO7d;H}|fdV%y>aG1jhI_W5(ILWz-LW(|tRWMJrH&G2)SHkL zhRdzFGgOc7H7IOF2AFmMyP~I%T#9#37faOTh zt$sKCqH}c_qQV-tKAPsdc1S_??6JU$y@#GwS=0|)=;v-QN89HtD|=HVhe1!NxipDW zwlv>1xY$tk&$T|tT8b2gd%PCqlrmxeYBHRU#U_0}%Z=AV*WmfkZ6sJs$4!oki&q`K z;yk&XNilzogX*5!-BOyyT+IKI{2#3Kh(h8|oYbFQlU*9@omG4_C&aNGw=yf4YHIjZw9&{i}9qxZ| z^f#K`@yY^+5uNit`xL>D0M3-{X~gbdKhzxTK4m;cafu?2Otn|g-_L^J_ zL*8+9X|8S4uD%DUgka{`BLme%LRt}3QCG(HBVvys#Ijx#7ltp;5=j${aO#&jvexGI z-0+p{fsC}{Xxn&C)!=L_>}gtv*~1>0YO2@GYYF!lhnRh;*~5a?wYNegvWFL^*JM_s zsn&2O79Ggwg6t?VzRl+%Wtu+DgZ=SxejDD?Q0=KJns z=IomM{b3(`OY6aN0uGrn@ya&X+cr20%FqHYXFK(h^+YnvWlL_zV^8UUP0o{OIMijn zpeY)*q|%)+Zk?5mtk1ZXc@L`NLtzz}wOJ^y6aTXF^sbz_@udv6*b7Ti)aIMmw}FDx zp5AJxa01!Ko2LXYiTAf7r_Cvh&R2*86PM}tSTt{n^@QiKESuU<%Qu;H_;|i}ZW0$W z<^{fp{C?(S0D`Y<$%W;pR{b^ssuM<)t1#`+)wDfg>k45FSY zOx`zV&7nrB4Z^om7uR&%p@T-lbmkM6Xi0-JSr|hCJ7oRsH9iYd)h!zRT^B=q4jSwf z2=nMt?gA=;g@*W9WFc3MJ3vKD3SMTqJx-@JI&R#Vs2+v4Z$)Zcw0glt+-n72PK zwW8;%Is+N&(E+!v~3ZDdvcDy++_ zbW*7ds>!dK?Nl%CP-N)D7I{I@>Lt!h%a7LM`s(hUA;)p$UHZ(KI}Z`}2~!Fr&V~m* zg>}nyNZ5OZwdwQSjIW*|49;wUR4+MmgRTvp7})9HbH_oF%XX{(17=8??wsw5Rq~Rv zgejClYHDH0foZPpBtNO0nw9|f?#no zeZ?H81Mg%L1kcXEY8&|P&UFGZo{^03_sZJHNmf~*b_n#bpF0YT9TWauQ}fZ6=4dy$1in$X{i=HvOp{uehgwc55`CoQ*{ zV_W@0FmM2mgvD!*C|13x*;6*zD!G|Wv0f`Gcv8{Ib()*edRvsF+JCV`y`JWe8-Cz( z=OOjR{h}(1s_gFrnS=a%lf6yj7>r?Eiit#4!*T8mJ6~jBTZyId8tU3tjb8TZi|^_h@5+MC?0|qC(wr{>EPbvH?Dg&4C1(%#W-!Xg%?Fp_$LeBL zbVrk>T=dgjk+n~K;w9Cq?p@%d^o3p|)kiOk%Ehf#E=O+EULuv4_nP6l*5S2JyhsUn z9_&%T`w17RcYIX@L!#w!5BnP`hU_NqPZ2rYnfo@gaLhT8*R0-U#!|~a=#W$%W*jdT zDIyy? zXO>S=bh?N4D~8k%-lXpR!q(vXTSi>E_|7-o-(D!yAr@&f3O}OwNxJ+}u}N9mOn-Q#!cKjEGBNnmRj5=hKP*%w6-1Kv;Qj83{{6!;mhU zvJo0B5gHwZYKzwJ`Bwdwn{Q|T*1r))Ka`i*r^CfoHY~kj{VM1!xHq{gN})_ zS}(b5Npm zS)Qgul-wRGj9=nXs{B1^?WeLF^yVrfG>av+uFz|i0KM2dPW*)Vesfseapdw&m zYgNVL?oJYk#svp9?HpV9?*zrG!6)xLeaF}q6Sc=G<0|H%WGPg+ijJzHPtfCSF1hz4 z&sKUi)l;vlA0ob;<1}znIBdN4YMo^nIs4=-OA(0}tHnD~`qwG3&nq#_;Rlj&gMTo- zT1Mgd@+C6qSUikQgXaMM?9BBA|4=R8Und{H`<2oVy^jKeK1V!PCOKgW#Kg|`mNQNUwGwF^Urm3Ou`HYy{A5a5 zzosiSkrK%6!G)s7ug!_nS%}ee3PqsCdm0g)u2^<#g}CDb?EaSCK(zbHCpB?tZs96d zGi*G_$f;uT%%3zTAND0As%lDuAMIHJ!@6|YzGJYSE~j{Ta`5{);OVr*Fj@|CNDbUIGzLQW;X_2}u%aC~>o z?Y=x5>~x5hYd}`R-}k#_uL0egy4~^h&m{Uk-7FE2?Zm4zIClMH|BHRsnZ`3Q5f8y^ z-xf)C`lS&&DUSXzB?15Hd-31H9sxUq)Ezt=N%(&@X+!@0^c7{^>R&M1BVxhYAo14> zev|$Gg}9ZtgX*4|KR`n`tHX2Jr>{9|+4O5m&%fPR|9y~2M)Lm|+CP3c)1z|=fFOnH zIxQMgVHD}KEkm4)L@u6un9FQ|B5~qFRf1pZloIiVWeQ=)JaG%zf2sMmb`SNF?HWc&WyQ;6kMM3v8$fp7f6`Cle8;ykjxvI=|rc zutB+INg<<~AZ@QrsO*>Rv14)gG_>kp=z4YS@XGuQmaFz*MTN^YsdiN8is4>h%EP8+ z^fu)@Hf7N8LFu5@=7d@!dBlC2X zm3?I!ctl$5Oei#@x;daSG$d=Z^YZij_VN3#TktruuJkS}f85QH$YyHb2emJLB+VpwdPoUMxF$9oeE(sl*qGRpSB&1k@tNrZbxh_H0hQ})qY}e1lPNBq zyEzP8!nA5|U`L6SS#|@~Kj=^JdDagd;nA8Q%-=$Hr5{x}#T3SX1LM{3Zx>f(UN@Fr zq=Vm~37=*wD9$ePHm)igd58U`ias6sky2k_HcgVj1lQ{(zY+##buAwnibJKce9I7WsBc~Q(J#^DE)RyzynR4wi{YMj`AApYo5NDrmsm>Z|J-sa$zU6*ef61PPm6#0T}NGws0#oG~F%9G>`hZ zFwMPNqny={J5vSNMzVobIwmZU?Gk?v_Yze2nbQ=H6M^dPtNtJl?J1kfvEvq6#-s%i z{3#rp?Idv`O{Sw)mXjI#3zi#0-H#ni9s!wm&8M^5c9;@5ZW$cMY^AIk=%S-O zxD>684ftG$Er*swi0pJ1aNptMi+jTTk!5B^Z(AAnm#7(2(oPK8M%PL zZ6on2!Q0a9{$yZ4``V?u&cX{YhMbtf5X1~t<=o@TBm-AX;Td5BO zCdc*&EiH$XjusK6*{dU8(rjuS8*@%r->EJM30%()q!>H|KA6J}_}HVQrk@E>!t8CZ zxX(BGzFvybarCq9CTZU}RCs(_yh{+s>eIKSemLV@in;W78GErlEa?;-C;< zSkG7Vf$DcfYx@lv<2aMCjle7IWY69N4OSm3$IF;42I|2#4(+B5CxKBeMB7pcg2aEx zs{78+PQQrvO~>*__PBxDM&SjWw->!{t}2}Mjh|nPVH<>n^45B{e~Nj*8Lj3nwR$h| zzA*NatPW|bn;_%GuTMVq#T#~FJQV%7WhO#A7+6}v{+>oHl5qT{Z;hb zq7Voo>>hgE{#44h3b1}i(#IqfJ1Bfd%iWGz2Lw~JuJKQJE7SJO9Zp+3>32CRYQNZ7 z2Kw(kZmuPf6B#U1H%c2Yg?Q9$eYp6MvF?6`NA{|jC=pT6)MMJJQSfX`{x{9a`Eb!2 zZ5=LcbY!Q$!&*$((#DgGqJ&#)o4lsaA%Lo zuxn_qqwDU;<*Kl47u780h>4sm?R@NLKdt{fWS9Oih@yUG~s zjTQHb4k(Houg1x;eiA{lX~bz72Ov@H>I5d#A5?7dUdd#=VV2&`-q|YPo4+@JasDzU zn%v>RSRx_3!28PJ4`pc;pn$i2Sw+o-EqTT%u-yC5b5WaYJN}%k@8YW zK8Xe5n4@NAq#OQdb8q!w2kC4c4^~(O=?i7@iQ)SUEx;{A{tD-V*nR!R^DlFXCMk$_ zsJ43j(~*(cHcPJRZrxDhjPc=rjE{^l-gWiI>r=UwzM`ymj|s6@QY?URm`z;B zg?&emyW~=*ec7b%(3v(muFilIpeqnU+n5*MTc%Bf)E1D}jcF*_ikgIqfvOisi z%XwJH;O?$-eiJbqH$L_$J#TBKdGQK~(?K#KyX>Ob7q%hZI;~Yjgwf*;xFEX`&^7&T zHhB(VA%Ls&QwgHW2Mdq=3wK!M1nF}y%>Odo-H9LHfA(esCAE(^#Up!IdJ5<>PX>Zv zz#g5PhE-lK_sZ`d3?xA3pJ|-{tm9`zt8MC(OZ+2mJFZ!8{}$BmEchQ+PPh;kKuFvsPf(tTFu{ zIZ<%CzM{6hZCi#f;a?kMDP!xrVHdD|k9lE=8>bDaW>zail|6YLHKxz-=K_o-@t0%b zw5mUjJu~JX$38^|bJ9ydsdw>kUHPxQ<{RsK+q3M;#L+q?@sFRrZSn-Ju>+%tfIqyr zH@DZtA^-OEZX%(k&$<5o;$ZV(jr#AI{!hK~|IoevK0%T1?5byY_L! zkAKukYgYUFcSl6)shCK%b^YWcpyH@+*&d6i#ary#jtIL)Sn|<2HQr}Bs0<%SOq!iO9a#`mdCx&(Y z!WX;}5SZ|QW;Q*G=i0%Nz8&bQGBB27yM*;?b3`Obm@BKzjnP~-qckCEjM?Fhzl(C5 zKx8t^&6MV$&s}9x<9vk??m+Gb``%VyiqF#2iKk)b-6+z3H6qUsoB!HPv2xnbo}QP| z6SR4{*(vPym(UeQO7haHjjxQ1pA)haCTB)cy!`I*M{bq&SiNjmOyAlg`ob+(2dguB z6Dz*jq`aH%2*{l=Fq>c5`_)7nrf${#?r}@H+m1CNlRx?*R~gZDx0S5* zsQ$u9^UvBN7 z_ge7TQ2@A>r%5f0-c^i|AFPjzjx#Rq=^+1o{`9*;k~NFV?$X4}6-<5($4|+NBS#5> zN=yU^izqe8;GmJqjcgHgh!X$toFEg<#0TS}>ral&uGQCV79T&RhaW6+1v|fKeVfnn zprv;*y1m@&#b>(fK8h&+PD{^7e$(VWPa@p$k1n?qgareO{c&dJ{Q;f(lFV%gW{MJ)#<^aF<5uGoD}Rh}5`fNmDN_xv==GiEDk2oR;|Dn^1VVOT0rPj|QhB z)1?vR2WTwBPsElXYKvg=^WMS#3Q$tUFb4?CY=tK)@xuuUW(UPMF~$6KCOK;1#@29r zK?u#qx}CG2_#r0OPZF%DBooGmMSe#tvvatq(17bt~<+X)38& zpgKj?{0vRU{jLtz#>^n|-wnjFYd(N=Lvou8!@{AM{Fy%=8W#E*?D{CS%6CWr>kxr! zmbSerEi33lL79S^ApQ0zjmN88+0xA9#~O)0!m0qARJ!F_x&g@M;mXLxrLbC{N~l|S z^Y^iRaU>V>vxBs^u*^2Y5#owMgM!+}e6KL6SugCR8qa9Yu+@>Nu$g~>rLMCyl|9&J!%DDf#E&eto8V}hEZrBN99bA!^Ji;MYM=R3ww=~K9 z6Y)%j;wJo;n01U>{_`*~cV3EZFOKN}ye-@AEQ#lKhjJ5ko4s!69WjO^5m zMrU&rGS34@uUDsRyHO|MTU!V6`bj=t!xx?}8>ufuB$c<&V(!Q)U#|GOPrb50d*ddT z5cDO;xV6enf0gQXfX(Ew-N6|X0JyD%vw|Cl0)Y&<3eRfp%F(y$&+bO605~Y~u)Uv$ z7_B>E|0a{4e*u{js&JJ}>0rYoF%IF&Zcm4HdkF~;8mjE*P1g(m$nR?|e-14q9pvmK!5>#!?|E5`a(WytEx=W324Q0)+yp|0X{DKE(D?{VYA~Wm}^j;ZFjkv6U-Sh%nvBDYof#rU-gZ9BgPu`aAn8-waUd(Q< zO9cL%S==)(fx+9j5Njw_kbhUlstoS>dOJ4t0!!ahD%->KjL1KF?|_+4IyGBbwxxPh zzXmKfql>n1Yf~GmJ>3_&G6|14!XD(3s*UQHkHBpQ2QUM>!J|( z=s8#(318*EZJuvDlw2385F*JoV0HeuHgXD8b)DK>qm9<=>B^And|;VhoD)T6{>N!d z4?7@;f~^V?99;1e5RotS95+n<6S9TYLOA{1qtpk;S}(1~eXu%`dH8`B!Wf4UPeQp% z=xIaO{t%kHXSeq=Xnks=bmQr70AG4*R=9O+J2-i)YfS|n90%RFqhteCK_ktxy)1ew zW}4(gs|C3ndZ1zhHd5 z?#Mn4(Wwr&B;CA}K6ar)+PD#j+x&o+khpkpfF6YMWxJe;w3x`YB(9hpm23{ z@O}t&wb!md|LR$qAme_6jQpY9SD^oGEKGqCU?naPn|EpItvWU+%@$_G1D9kps}nl= zak^rL6!Y{`9(}WU_0RLsWLwsnpc22{U6T8?GW$k&j zgEu<*r{rSGfOfV+pQo;=sq;-rVp_bBh_2NIE;oh?C&*TWs3*aA-_;zQ?Jr9m_sg2q zqn@p3fYCS7zp@**_up>B7j7_mEbzJ=9HO=Cj{Ezn(mm}NYX6)&fb4&xL~az#z6hc1 z{B`O=^(=1`;C?Lre@)`)a5(pXF==1#I^L>*>q1~8T~D%+>+m@+TyjOz?g#tU3rWx0 zV-JG?6)(<+!{_O|TT2}U?QAfX92oTIvzC^$y1F`6;(78=PY*O0NgRv`34M^0{Exwc_fQc}|FVF?FD*#vX&-DKRUdU0m`YbcTB6JUT}*eqmP zFw#F58FH8DTWIKVDfjg=m<*u>ZzrbKQhv3xZ9Mwl*O#P&!4Hu?W0uIcFpxWL%n^8k zK}EqMBLhsOG;4ZglFU66N}Np9eNg2FBdFr$P^!cqYKd=m|GA|K2}C}*``{G2{|@C%z9 zOrvabs_x9r88{OT&Ab6Dc4~ofQ?`)+s?&?)P+6~l#q30GlQ+4-_OYPIl>YnnS3nu7 zqXs*p0}AY(duxjDC^eT8TUd4impU19YZB}8MrD2|OZH<;Y(waUpOW3TYzzyie0cUU zKW0&=)@l{SE;lP%_cy_L^A~}`Ibl!A{E&Y1=?}6U3dVh#lqzVPs>V9?g){XS&hLIf zrNc&02s>D=+fTcl4H%q(3|rDQU<{VSi(?uV1fssU`%y2qFN_!ioRa0lx0B1QM3p`X z6Z_giB-zQdzG{5%NPG>FL^J9Y+_JQztg-aES{F~LJeBC!hjO)B5qnshqZ|+T9`0Ub ze!`j&v@Gi2-4w-XZrpoAEcyJE0aKXo%LS5yp5V!i#ZVu!ifT*2Ap!0Bt6Nq|wyV`M zWDYN0lkJN;O4Gnok}mAb)ei&)^GL+Hy@`%HOX_!b0FYO>yRR-66(dw=D1qcNMYM5d z^59`xvb)?vFY9GHPXN-4RwD|z{dd!C!KPym&fxIZnfYxgaa&-8!?F3m8&|yHZtr{p z1;(l;hRtFxjaA6K_S%^t90z$-YGuTB^SCdM-+h|AlrEov596vIU+?4U*qhg9@H~_u zibkh~zBblw`7Qpt769Y4z?e=ue*g(I#KaAT(qLWweK;Z_4psKfU{E02fcKBlB39 z80)5aca1JRDwvOlzJbQWa$8h$c`|2)t!pFP@i77tEg}aPgCcMA#+AAw2dXM!3s7dJ z?9`3-xRTpS;5+oTgISa0k^z>RiAms<^GDNAlOw%Fqh@RwJ~B&sL24lqv1J(x23XlK zk(u`C;n;nIa3W>xAQyXmQ$QTWy}9wiINcXjcR=vD{PACv`~v*S63CJ6IR*@pq$|eXNhK z{0MdjIor!9$JV_5F{6Og7nzUqQ7?F$n_Qx85L@uBt#>#w%gCLcQQ2RA3aG44lp3&L zacx>X5-s)&N3%2eqH}~yo!yQZSdG!mY(Y5k?rOnk-0xm%$RTU_^lD>e$EtIC%1+72G=_D8tY{ zSgFZ~;0)JlLUDXCFmV=lYt~VfZW`pBCd5`8(12gK)rNa2C8)g)k#Eo-CY#;ugg&># zRjeG0y07~J1s77&a3OJPY)Q~pzRGa?HYKl1qNGzF&|S$@djrN{q~~+gccxit;OH_} zly#a}Ol!~9(0`g5Xin$Uz1xDR;Aww`)#J`#AJ0&+wezW36yT}j51i&AYMNgD772a4 zkkbE3VRU;Y?yLrQ)`1!a17qI6TCFd$)<@>~aU;VY`|8cHC8MOHV&D-;NRc4x!A0e@ z75Kys<>r6Y=%bh1#!tvzv}=ojqxe)F4>l)N0sJp#5TXM9bkGxq zu&S2^7`a8d*A)W(qGecsZh7UE6q z0Kl-Bi4%ekoZk$>H@AhJypLP>Z`~gvji6p$0mhnu zt9d6Z4^KyO8#+^&dpotvy++Bqe8UlJOd2J#&28~{><~;06IhC5g^}dyg9ui&totY3 z+`O0oq)zQmB8b1Ylsc_?e3*WHtHU+AMWw1T;++uY&DwiY740o&h4Jv`^h_yj&&nL^ z{TM!I&7acM)|y*!3w4f=cePW}%IX9+vuo?W=HPq>c_u`G|K31)`Z`QLgD+iScNve9 zWqURNwwG=D5ox}aB{mF;=1TUv2nYeh8Fw?3UZyxEe3GdrdZV8`t)|hQt<;+djbM%6 z?Z56yeYQ?7O~tVtLdm*Tu^J#+W}ErMftBqWNF+3ObBxh# z*Ry3LMvj%8A-%ce=()BS&B6{oTCHJCPArfuxEIIUMIPo}q{^9NMuf0Vc!6gvC=;`q zDbL&DSw8&H;}qYfX2K=C;j9r32dWl6A#s&c7xI2HeF#QBj92Qvo!J8NYA@IFc)HN$ zy6Drm%*vgViLYjUvfbgsq){;23@`l{-5yPbu`8*!{u?xp=A@1Y8(iVZM9TzUOY&+r zUe7k3jQGYS#N+pz^*ocdqWvqn(h1G94uP^pO6uor#arzWUJq5reZR*y3yrj z&+Qg27(z74rG*~h*cnAr&w@P1iD&I0UHfVS-n)t^v&Z0TUHzPD#z;kHh>xwT!2n<# z4@Szh|N4e{zVa!8VUN?fwdQ@w5~hPbV6=(g&)=Tio{X0yB`{Z})roC=-HGob(B=U~ zXouo^I8Rz{Q{dZL2&TUGg?UWv(jINEBRZxRYC{`|7_)%uiCTsDdAtw}p+T_rgZif< zxach53Qdrjpj`JuLh_t%{MI^Egnugs*EYU?*H=5M?Z;q@`3BFxR{dYTl?2#02}U=U zLe)TDNwC)TkDd66$zHDOwMnv;=>L)~y{3zbw{5pFj3$C1t~KU-iYYH6`LnbrhbK{j zJ&USj9$vM~85OPYd<6S80b0GVz-}Fy%orvWtWA_P#-|!Edan_>*7N;m%`0mzM;vn! zGES_vv9n!2pb=QGXW(rq?{pSJjao203c5otA$Jz9^vo+%>{ZKNUVdzB_)(8I%>9;G zgr(VhSjv_z=<&YpR`8*9c<~U~|0ib6bj?S2TBe+wX-OL(yFP^|?MjxsL0KxsvpQirL)jbsv864H-S$^FV8%U= zX$$D0zXz+UQFB_9MHvxE^V1!LzA-U?H>fHKwWa}}jG6!_+b$GlCa>o!*)1yibyy~l z3>`doqnFq-jGMI^sZf#r5Kv}|)b@PAZ;%Xl%19MMJozjt>9U;ggDU>k^yc=2V*fZ% zVHn_n_vwNAW5Ij3A6|f~CODVz?RVDIFk!@V!W<2z56^yfBPbfq)2+fUF^5XE$js>b%gMeum2H04Wr zVqf@yqlr&4N)G`mkIk}Ci@XVjp;$a7jizeYj{8+uJOQirMpjmkXP=gIkQS4D@Mw&l ze?`B%w`;12q)+6@40#X&MPU{H0dq!Q#SB*v@_>@FNs{H0m^eI z=x_e18f~mb{Kg2#_!V|j=V^k9KRTQ0mf=poI7lGD zdMoJ%PG33_GLC5-@pM!RhJnfho66TMv)U&_jr#}6^ctcB%>jalYWNlD@mqce{JyI8 zc(`vrDj`o`Kbc3?@Y>ieas@#404egyY1F^&gp2)m1!bPHmzv=v!J0mb;xVoa7t((UCAJne@2TC%mcrJhOHYno(8%bht|h zCyXcA|EvZ&=SQQTPkK*CE8HF;;!)CdLEmH{NI-MAC@Xzt{4NU7VJjVtBCh# zZ?xxo{f;s!AzGI@Rl@W3W6^^nJ(mp(1z^<7{l=bA=TlTN{#LEi^E*P^$?$dz4cSH@ zAI5JcuKd;vBqx^g@=rS@N2AG&{d(Gp9`9*<;W8>JJb7Q-Y23A{bzZ{U&taQ2iTui8 z&D^t|ZX&;~Cc5f@I4wpk*wye8G!35VS6DK%bn1V)v<;c`JJvyMiK7>HvUHj>{7TAH zjM5w$^5fyHv%xypz;HhHWmn!sLOpqkV|JaplQ(!jzLgzfT49>KguC^%q!2%x%Kx+x zjr`IbU*YrQG;|b%6cNqv;j=G%IwOYj>1?>Kp!~vBt@Qc@XNa}Uo~a_}fw|N`h&bS< zb*mIuz~StXc>cT`dTj{sRc=Fgwk3kMel|lpW{>l=HB#_^-6f@`v9HzDx!}BzYbSpI(}95Fz$aFn0jgUWp%HDZlL%A9zj57=Ft%(9GNX!m0Vcuc}YG! zt^(Y<#s6{4vfhch8^OcOg7M zf;K*@&%BG!3C%!bz+!sAlJhg;vIe@~dCMbioJ}UcK@r4_O-$E&4i@nf?|3bsUUULu zB}9z#Z3<&Eu%ERM^eYR*O7$G0GxSU^kHlvaUD-OgztmMt9g3r$_u9gRY!p9DO34ka z)~BxM8{HmASEkUC`wH}~sdBLyTRYhM(2fsN@X+1GS6k3ODG_8^@R`O*1a@a|aP1X{ zls1U3Or{SihG;b&ePNUm4p{Yt@wQzU^*8RBN6NTWk@ZWe`)Uk2udqOd_*KzT`Fcw3^ie0UJ|I5^echP|V# z@O+o%c5g&16G}GOLu%v3LVeX~%?R3!*`b`{tP32FM)neh6_-hr1<9%3!%I+VP3ZNlC~Dcv&8u)$pzLCK_dtqBn(Cu*i9YUFFNjqOy_pqz`l1 zseaeNh!8<|yR8-aO9%>xR`m_dVr5Hgf2HPjE2UgRAUf&uc|IiZtN7}|d*NuDS>DZ| zR4LbXVPnuYBe+%y(=fhQy+Jf>v&4|8BTv6k|3&8S#%Ph0!!4}YkPz%-ny@13LQU&j zrjH!ARmS>EUC>hO41AMw`KGtj1!uI9;+ip+*=n*SIR&FRF3S)guQPNB(ALM+C{I>d z+2X3ltv$rw3gV6E0+11eu0Ey|UAhcckV!xVHw9{GxX~%eJ3ml0}9$o63f0;peNa zdz2{!9-&wv%)PW;=09BiB&}lIdom^(S-Ycooxe9$oWG0HZ^KDXs%3M>&VLg~ z$4Q89@xTwCeizZuGKkL>L1R(3YbZnGw}@k_Gd_%(kM}Yv-}yB*c~tkz+-TN;AiI_- z_&Mn5{z@KM?W@llwMNA-v=dA<#pXu&JIC)zFTn;`4FQED9_%$hLTLH-+qT~EJK3BQ z*F!h;$xWtq{7GO!4Q!J$kAT!ED(vmT^QjQ42trSie8<<}EJ^G_XH!gisI#qhfQ1R` z*L)+~(&XK2l{d+GYAy*HmdA;gsxR2XH8KWSqL3CQ_CyjL&)Nk$nS3pCRO;($!ZTO> zR?Hd}=er|b`yN=f?o`16bkYxZ)FuNc`G!lj^W{2{U%FXdpFzr>QcrYKYNUv(4VbSj?q?|^F{FTrlcxn-oE4LcrH0!K}9V+oG z=Zx$vAg1R2{k+;;Z-GxkRLZ*G@Jt6?&h{izjnlgTf#O;NTDgra=6t-@Z4Q%g za9?oZs;#i1DmH@dh&x>vbB7HE@4UFL`al(XHf#-Ng__$6?+#4@OkGh6{6t*wKQ9;m zGA;DZ_6ha3=VqtH%;2d$Qvw``&`6=4nHzqgtbVBgGjW=rViWdzF!{MS5R-3(Gvwvl zn|#8>`kli=6S*qoKSP~Q`)p5AI0d>$7op~Xi;D9B6J;5*z&a|Zxh-UYO}7$#p8i+o z_J!5&#fHI{zNsR{=y7k7C^5bn$*tI-T9LkV^!!48 zv=Vr@_wo6F`@*VQCF}RxSaQEsC-N%s{1M53l0u{8&Q{b_~RctLL|y-eu@f5y1oE&(f|=sKPCS!|bjx<|lo2QviWU zGH_VmUNl!~8+VM<^u)U6`PsJ}CV=zC8~Bhut0cGQn(o2L38C;MhEvH9*w~ zR}9?Ur2jX*kFv6_0V_SL)4>@@U0t)IsO-tm$ zQfX|Gf72=dj~z+>H530Iwl@7YH_{1zN|Y4ppduN;H~?Sr#0i1$(GdiE@jX-!12`Nb)W2AYV)@q1%0)@3CRcTCUMaT z8F*0J7)|h)KGNSW9dK`ac@HG!Ze=T;t#C^U}^+yRTam4SU4jMk)(z z-r(&^-}1-qm5JN@n!?pz+1%!|0 z`aq-S$OgC$;lC5nmt}7NO9|(=+KO;Y=-_w+9j&t_n#DDvt6ctRi%+wM|+;h4& zf2!Z~al^pAig%&jia*4uV|zsO*Jl4Z>+>V=%5@8w9_a8s%XM1S)wt2wyfae};eaaz za+SfmGqv^n0?wE2NAav;Dwem;&z|pnxXWQHCZF|oAqHG`1;22+t-tVF z03AAW&v*yluRQwQIjOb;dS6B_$`iRU-$kX5(X3~CRsSuG*`9V@o48(a0qFyX4(E$I zRZoV$_B0&`hm~oMg#n!OzV3RVzV7=g;(WnY)G#as9WwH>uRcX+jM4SD@j#JB7AM{7mR)r**$@AT3AlfoV3wE>gYW*#v& zfnl5e?g1;=|E%*;r)~XTD&x}W$A8o6^Iy9-=kwZ88i4D*;H2i?S(>I5^t>*1@&W4` zGWgi+Y%r^LsXpvvJt@tBPRy1w!KQV2F$9-oO-GLqNzXz(=CbLko3q62^$nRW#

JRB9TIU^!bvP_0_8s6-# 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 a5FUoaNsn2%{RR$U18mMXSX7u@x&1c)+;R#4 literal 0 HcmV?d00001 diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/retrieved-messages-from-queue.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/retrieved-messages-from-queue.png new file mode 100644 index 0000000000000000000000000000000000000000..40444d8098bfc54275249f45aead253c7dee0df8 GIT binary patch literal 12715 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:bz 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 literal 0 HcmV?d00001 diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/set-user-permissions.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/set-user-permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..d6eeccf2175f89ef9b053b05010ee46cbdb5ec13 GIT binary patch literal 9855 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 MsH{jONYDTO0EIkJvH$=8 literal 0 HcmV?d00001 diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/user-added-confirmation.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/user-added-confirmation.png new file mode 100644 index 0000000000000000000000000000000000000000..8bb4a048d19bc5f3de02eb2e7943271b0ff1b94e GIT binary patch literal 14018 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 i{WpU9e-SSpuvHz Date: Mon, 30 Dec 2024 17:08:37 -0500 Subject: [PATCH 3/7] CI Tests Fix 1 --- .../deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md index cf8f75ed285..21e1ca78680 100644 --- a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md +++ b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md @@ -34,7 +34,7 @@ This guide provides step-by-step instructions for deploying RabbitMQ on Linode K ## Before You Begin -1. Read our [Getting Started with Linode](https://www.linode.com/docs/products/platform/get-started/) guide, and create a Linode account if you do not already have one. +1. Read our [Getting Started with Linode](https://techdocs.akamai.com/cloud-computing/docs/getting-started) guide, and create a Linode account if you do not already have one. 1. Create a personal access token using the instructions in our [Manage personal access tokens](https://techdocs.akamai.com/cloud-computing/docs/manage-personal-access-tokens) guide. From d71043e8e0d83245b41b117de432b540acffe7b4 Mon Sep 17 00:00:00 2001 From: Nathan Melehan Date: Thu, 6 Feb 2025 02:13:41 -0500 Subject: [PATCH 4/7] copy edit --- .../index.md | 110 +++++++++--------- 1 file changed, 53 insertions(+), 57 deletions(-) diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md index 21e1ca78680..89dd82a02f8 100644 --- a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md +++ b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md @@ -4,7 +4,7 @@ title: "Deploying RabbitMQ on Kubernetes With Linode LKE" description: "Learn how to deploy RabbitMQ on Linode Kubernetes Engine (LKE) using the RabbitMQ Cluster Kubernetes Operator in this step-by-step guide." authors: ["Linode"] contributors: ["Linode"] -published: 2024-12-21 +published: 2025-02-06 keywords: ['rabbitmq','kubernetes','linode','lke','cluster','operator','messaging','deployment','virtual-host','rabbitmqadmin','exchange','queue','rabbitmq-on-kubernetes','rabbitmq-cluster-operator','deploying-rabbitmq-lke','linode-kubernetes-engine','rabbitmq-management-gui','messaging-topology-operator','rabbitmq-user-management','rabbitmq-queue-binding','rabbitmq-fanout-exchange','test-messaging-rabbitmq'] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' external_resources: @@ -17,11 +17,15 @@ external_resources: - '[RabbitMQ Linode Marketplace App](https://www.linode.com/marketplace/apps/linode/rabbitmq/)' --- -The RabbitMQ maintainers advocate *against* manually handling the installation of RabbitMQ on Kubernetes. Instead, they [recommend](https://www.rabbitmq.com/blog/2020/08/10/deploying-rabbitmq-to-kubernetes-whats-involved) using RabbitMQ's Kubernetes tools to streamline its management on Kubernetes: +This guide provides step-by-step instructions for deploying RabbitMQ on Linode Kubernetes Engine (LKE) using the [RabbitMQ Kubernetes Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview). This is part of a set of tools that RabbitMQ provides to streamline its management on Kubernetes: - [**Cluster Kubernetes Operator**](https://www.rabbitmq.com/kubernetes/operator/operator-overview#cluster-operator): Automates the provisioning, management, and operation of RabbitMQ clusters on Kubernetes. - [**Messaging Topology Operator**](https://www.rabbitmq.com/kubernetes/operator/operator-overview#topology-operator): Manages messaging topologies within a RabbitMQ cluster deployed using the Cluster Kubernetes Operator. +{{< note >}} +The RabbitMQ maintainers advocate *against* manually handling the installation of RabbitMQ on Kubernetes and instead [recommend](https://www.rabbitmq.com/blog/2020/08/10/deploying-rabbitmq-to-kubernetes-whats-involved) using the above tools. +{{< /note >}} + These operators extend Kubernetes management capabilities and leverage the Kubernetes API to provide native integration. This guide focuses specifically on the RabbitMQ Cluster Kubernetes Operator for deploying RabbitMQ, utilizing its built-in tooling for management and configuration. The Cluster Kubernetes Operator offers the following key features: - Provisioning of single-node and multi-node RabbitMQ clusters @@ -30,33 +34,27 @@ These operators extend Kubernetes management capabilities and leverage the Kuber - Scalability - Automated upgrades -This guide provides step-by-step instructions for deploying RabbitMQ on Linode Kubernetes Engine (LKE) using the [RabbitMQ Kubernetes Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview). - ## Before You Begin -1. Read our [Getting Started with Linode](https://techdocs.akamai.com/cloud-computing/docs/getting-started) guide, and create a Linode account if you do not already have one. +1. Read the [Getting Started with Linode](https://techdocs.akamai.com/cloud-computing/docs/getting-started) guide, and create a Linode account if you do not already have one. -1. Create a personal access token using the instructions in our [Manage personal access tokens](https://techdocs.akamai.com/cloud-computing/docs/manage-personal-access-tokens) guide. +1. Create a personal access token using the instructions in the [Manage personal access tokens](https://techdocs.akamai.com/cloud-computing/docs/manage-personal-access-tokens) guide. -1. Follow the steps in the *Install kubectl* section of our [Getting started with LKE](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-lke-linode-kubernetes-engine) guide to install `kubectl`. +1. Follow the steps in the [Install kubectl](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-lke-linode-kubernetes-engine#install-kubectl) section of the [Getting started with LKE](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-lke-linode-kubernetes-engine) guide to install `kubectl`. -1. Install the Linode CLI using the instructions in our [Install and configure the CLI](https://techdocs.akamai.com/cloud-computing/docs/install-and-configure-the-cli) guide. +1. Install the Linode CLI using the instructions in the [Install and configure the CLI](https://techdocs.akamai.com/cloud-computing/docs/install-and-configure-the-cli) guide. -1. Ensure that `jq`, a lightweight command line JSON processor, is installed: - - ```command - sudo apt install jq - ``` +1. [Install `jq`](/docs/guides/using-jq-to-process-json-on-the-command-line/#install-jq-with-package-managers), a lightweight command line JSON processor. {{< note >}} -This guide is written for a non-root user. Commands that require elevated privileges are prefixed with `sudo`. If you’re not familiar with the `sudo` command, see the [Users and Groups](/docs/guides/linux-users-and-groups/) guide. +This guide is written for a non-root user. Commands that require elevated privileges are prefixed with `sudo`. If you're not familiar with the `sudo` command, see the [Users and Groups](/docs/guides/linux-users-and-groups/) guide. {{< /note >}} ## Provision a Kubernetes Cluster While there are several ways to create a Kubernetes cluster on Linode, this guide uses the [Linode CLI](https://github.com/linode/linode-cli) to provision resources. -1. Use the Linode CLI (`linode`) to see available Kubernetes versions: +1. Use the Linode CLI to see available Kubernetes versions: ```command linode lke versions-list @@ -74,13 +72,15 @@ While there are several ways to create a Kubernetes cluster on Linode, this guid It is generally recommended to provision the latest version of Kubernetes unless specific requirements dictate otherwise. -1. Use the following command to list available Linode plans, including plan ID, pricing, and performance details. For more detailed pricing information, see [Akamai Connected Cloud: Pricing](https://www.linode.com/pricing/): +1. Use the following command to list available Linode plans, including plan ID, pricing, and performance details: ```command linode linodes types ``` -1. The examples in this guide use the **g6-standard-2** Linode, which features two CPU cores and four GB of memory. Run the following command to display detailed information for this Linode plan in JSON format: + For more detailed pricing information, see the [Akamai Connected Cloud: Pricing](https://www.linode.com/pricing/) page. + +1. The examples in this guide use the **g6-standard-2** Linode, which features two CPU cores and 4GB of memory. Run the following command to display detailed information for this Linode plan in JSON format: ```command linode linodes types --label "Linode 4GB" --json --pretty @@ -115,13 +115,15 @@ While there are several ways to create a Kubernetes cluster on Linode, this guid linode regions list ``` -1. With a Kubernetes version and Linode type selected, use the following command to create a cluster named `rabbitmq-cluster` in the `us-mia` (Miami, FL) region with three nodes and auto-scaling. Replace `rabbitmq-cluster` and `us-mia` with a cluster label and region of your choosing, respectively: + Choosing a location geographically closest to yours is recommended. + +1. Use the following command to create a cluster with three nodes and auto-scaling. Replace `CLUSTER_NAME` with a name of your choosing, `KUBERNETES_VERSION` with your selected cluster version (e.g. 1.31), and `REGION_LABEL` with your desired region's label (e.g. `us-mia`): ```command linode lke cluster-create \ - --label rabbitmq-cluster \ - --k8s_version 1.31 \ - --region us-mia \ + --label {{< placeholder "CLUSTER_NAME" >}} \ + --k8s_version {{< placeholder "KUBERNETES_VERSION" >}} \ + --region {{< placeholder "REGION_LABEL" >}} \ --node_pools '[{ "type": "g6-standard-2", "count": 3, @@ -146,9 +148,9 @@ While there are several ways to create a Kubernetes cluster on Linode, this guid ### Access the Kubernetes Cluster -To access your cluster, fetch the cluster credentials in the form of a `kubeconfig` file. +To access your cluster, fetch the cluster credentials in the form of a `kubeconfig` file: -1. Use the following command to retrieve the cluster’s ID: +1. Use the following command to retrieve the cluster's ID and store it in variable named `CLUSTER_ID`: ```command CLUSTER_ID=$(linode lke clusters-list --json | \ @@ -156,7 +158,7 @@ To access your cluster, fetch the cluster credentials in the form of a `kubeconf '.[] | select(.label == "rabbitmq-cluster") | .id') ``` -1. Create a hidden `.kube` folder in your user’s home directory: +1. Create a hidden `.kube` folder in your user's home directory: ```command mkdir ~/.kube @@ -183,19 +185,17 @@ To access your cluster, fetch the cluster credentials in the form of a `kubeconf lke295620-486011-4045e9410000 Ready 6d21h v1.31.0 ``` - {{< note >}} - Optionally, to avoid specifying ``--kubeconfig ~/.kube/lke-config` with every `kubectl` command, you can set an environment variable for your current terminal window session: +5. To avoid specifying `--kubeconfig ~/.kube/lke-config` with every `kubectl` command, you can set an environment variable for your current terminal window session: ```command export KUBECONFIG=~/.kube/lke-config ``` - Then, you can run: + The config file is automatically used on subsequent kubectl commands in that terminal: ```command kubectl get no ``` - {{< /note >}} ## Set Up RabbitMQ on LKE @@ -261,6 +261,23 @@ The following steps assume your LKE cluster is provisioned and your `KUBECONFIG` To save the file and exit `nano`, press CTRL+X, followed by Y then Enter. + {{< note >}} + To set a custom administrative username and password during the creation of the RabbitMQ cluster, modify `rabbitmq-basic.yaml` to include the following additional configuration. Insert values for `YOUR_USERNAME` and `YOUR_PASSWORD` as desired: + + ```file {title="rabbitmq-basic.yaml" lang="yaml" hl_lines="8-10"} + apiVersion: rabbitmq.com/v1beta1 + kind: RabbitmqCluster + metadata: + name: rabbitmq-basic + spec: + service: + type: NodePort + additionalConfig: | + default_user=YOUR_USERNAME + default_pass=YOUR_PASSWORD + ``` + {{< /note >}} + 1. Apply the configuration to your LKE cluster: ```command @@ -295,9 +312,7 @@ The following steps assume your LKE cluster is provisioned and your `KUBECONFIG` rabbitmqcluster.rabbitmq.com/rabbitmq-basic True True 94s ``` - ![Command-line output displaying a list of all provisioned RabbitMQ resources, including pods and services.](list-all-resources.png) - - The ports shown in the example output *do not* match your specific LKE setup. Take note of the port number mapped to `15672` as it is referred to by {{< placeholder "PORT" >}} in later steps. +1. The ports shown in the example output *do not* match your specific LKE setup. Take note of the port number mapped to `15672` as it is referred to by {{< placeholder "PORT" >}} in later steps. 1. View the logs from the RabbitMQ pod listed in the output above: @@ -327,7 +342,7 @@ The following steps assume your LKE cluster is provisioned and your `KUBECONFIG` ### Access RabbitMQ Remotely -To access the RabbitMQ management console, first retrieve the auto-generated credentials for the default administrative user. +To access the RabbitMQ management console, first retrieve the auto-generated credentials for the default administrative user. If you chose to set `default_user` and `default_pass` values in your `rabbitmq-basic.yaml` in the previous section, you can use those values instead of following these steps: 1. Retrieve the username using the following command: @@ -357,23 +372,6 @@ To access the RabbitMQ management console, first retrieve the auto-generated cre 3fNpEwB2R2s3oBibIZ9UDjeqCVgFcBq1 ``` -{{< note >}} -To set a custom administrative username and password during the creation of the RabbitMQ cluster, modify `rabbitmq-basic.yaml` to include the following additional configuration: - -```file {title="rabbitmq-basic.yaml" lang="yaml" hl_lines="8-10"} -apiVersion: rabbitmq.com/v1beta1 -kind: RabbitmqCluster -metadata: - name: rabbitmq-basic -spec: - service: - type: NodePort - additionalConfig: | - default_user={{< placeholder "USERNAME" >}} - default_pass={{< placeholder "PASSWORD" >}} -``` -{{< /note >}} - ### Locate the External IP Address of the LKE Cluster To access the RabbitMQ server and its management interface remotely, follow these steps to locate the cluster's external IP address and verify its availability. @@ -395,11 +393,11 @@ To access the RabbitMQ server and its management interface remotely, follow thes lke295620-486011-4045e9410000 192.168.149.217 172.235.133.50 ``` - In this example output, one of the nodes has an external IP address of `172.233.162.14`. Recall from the earlier `kubectl get all` command that port `31412` maps to the HTTP interface of the RabbvitMQ server. Combine the external IP address of a node with this port to locate the RabbitMQ management service (e.g. `http://172.233.162.14:31412`). + In this example output, one of the nodes has an external IP address of `172.233.162.14`. Recall from the earlier `kubectl get all` command that port `31412` maps to the HTTP interface of the RabbitMQ server. Combine the external IP address of a node with this port to locate the RabbitMQ management service (e.g. `http://172.233.162.14:31412`). - Record one of the external IP addresses shown in your output as it is referred to later by {{< placeholder "IP_ADDRESS" >}} in subsequent steps. + Record one of the external IP addresses shown in your output. It is referred to later by {{< placeholder "IP_ADDRESS" >}} in subsequent steps. -1. Verify RabbitMQ’s availability by retrieving its current configuration as a JSON object. Replace {{< placeholder "USERNAME" >}}, {{< placeholder "PASSWORD" >}}, {{< placeholder "IP_ADDRESS" >}}, and {{< placeholder "PORT" >}} with the administrative credentials and the node's external IP address and port: +1. Verify RabbitMQ's availability by retrieving its current configuration as a JSON object. Replace {{< placeholder "USERNAME" >}}, {{< placeholder "PASSWORD" >}}, {{< placeholder "IP_ADDRESS" >}}, and {{< placeholder "PORT" >}} with the administrative credentials and the node's external IP address and port: ```command curl --user '{{< placeholder "USERNAME" >}}:{{< placeholder "PASSWORD" >}}' http://{{< placeholder "IP_ADDRESS" >}}:{{< placeholder "PORT" >}}/api/overview | jq @@ -464,7 +462,7 @@ To test the RabbitMQ deployment, download the RabbitMQ management script, create export PORT={{< placeholder "PORT" >}} ``` -1. Create a `fanout` style exchange on the RabbitMQ server: +1. Create a [`fanout` style exchange](https://www.rabbitmq.com/tutorials/amqp-concepts#exchange-fanout) on the RabbitMQ server: ```command rabbitmqadmin \ @@ -551,9 +549,7 @@ To test the RabbitMQ deployment, download the RabbitMQ management script, create +-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ | dummy_key | test_fanout_exchange | 0 | Hello, world! | 13 | string | | False | +-------------+----------------------+---------------+---------------+---------------+------------------+------------+-------------+ - ``` - - ![Command-line output displaying messages retrieved from a RabbitMQ queue.](retrieved-messages-from-queue.png) + ```å ## Create New Users @@ -563,7 +559,7 @@ When connecting applications to your RabbitMQ deployment, it's recommended to cr ![The RabbitMQ web interface showing the Admin tab with a list of current users.](rabbitmq-admin-tab.png) -1. Click **Add a user** then provide a username, password, and tag/s to specify the user’s permission level (e.g. **monitoring**). +1. Click **Add a user**, then provide a username, password, and tag(s) to specify the user's permission level (e.g. **monitoring**). ![The Add User form in the RabbitMQ web interface, allowing input for username, password, and permission tags.](add-new-user-form.png) From 6928bf241a6c73bcc4128465748d894b5fbfddb6 Mon Sep 17 00:00:00 2001 From: Nathan Melehan Date: Thu, 6 Feb 2025 13:03:05 -0500 Subject: [PATCH 5/7] Move guide to new directory --- .../add-new-user-form.png | Bin .../index.md | 0 .../list-all-resources.png | Bin .../rabbitmq-admin-tab.png | Bin .../rabbitmq-login-screen.png | Bin .../rabbitmq-management-gui.png | Bin .../retrieved-messages-from-queue.png | Bin .../set-user-permissions.png | Bin .../user-added-confirmation.png | Bin .../user-management-login-test.png | Bin 10 files changed, 0 insertions(+), 0 deletions(-) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/add-new-user-form.png (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/index.md (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/list-all-resources.png (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/rabbitmq-admin-tab.png (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/rabbitmq-login-screen.png (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/rabbitmq-management-gui.png (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/retrieved-messages-from-queue.png (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/set-user-permissions.png (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/user-added-confirmation.png (100%) rename docs/guides/kubernetes/{deploying-rabbitmq-on-kubernetes-with-linode-lke => deploying-rabbitmq-on-kubernetes-with-lke}/user-management-login-test.png (100%) diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/add-new-user-form.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/add-new-user-form.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/add-new-user-form.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/add-new-user-form.png diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/index.md rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/list-all-resources.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/list-all-resources.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/list-all-resources.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/list-all-resources.png diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-admin-tab.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/rabbitmq-admin-tab.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-admin-tab.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/rabbitmq-admin-tab.png diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-login-screen.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/rabbitmq-login-screen.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-login-screen.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/rabbitmq-login-screen.png diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-management-gui.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/rabbitmq-management-gui.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/rabbitmq-management-gui.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/rabbitmq-management-gui.png diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/retrieved-messages-from-queue.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/retrieved-messages-from-queue.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/retrieved-messages-from-queue.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/retrieved-messages-from-queue.png diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/set-user-permissions.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/set-user-permissions.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/set-user-permissions.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/set-user-permissions.png diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/user-added-confirmation.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/user-added-confirmation.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/user-added-confirmation.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/user-added-confirmation.png diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/user-management-login-test.png b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/user-management-login-test.png similarity index 100% rename from docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-linode-lke/user-management-login-test.png rename to docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/user-management-login-test.png From 475c00d960e4d66736809f447305f9f3ec8df57e Mon Sep 17 00:00:00 2001 From: Nathan Melehan Date: Thu, 6 Feb 2025 13:04:18 -0500 Subject: [PATCH 6/7] Retitle and change slug --- .../deploying-rabbitmq-on-kubernetes-with-lke/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md index 89dd82a02f8..e4ecddfb936 100644 --- a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md +++ b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md @@ -1,6 +1,6 @@ --- -slug: deploying-rabbitmq-on-kubernetes-with-linode-lke -title: "Deploying RabbitMQ on Kubernetes With Linode LKE" +slug: deploying-rabbitmq-on-kubernetes-with-lke +title: "Deploying RabbitMQ on Kubernetes with LKE" description: "Learn how to deploy RabbitMQ on Linode Kubernetes Engine (LKE) using the RabbitMQ Cluster Kubernetes Operator in this step-by-step guide." authors: ["Linode"] contributors: ["Linode"] From a0a283372cd810e66051d1dafeb874aeeb8a3499 Mon Sep 17 00:00:00 2001 From: Nathan Melehan Date: Thu, 6 Feb 2025 13:09:54 -0500 Subject: [PATCH 7/7] Copy edit --- .../deploying-rabbitmq-on-kubernetes-with-lke/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md index e4ecddfb936..78f786c9b4d 100644 --- a/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md +++ b/docs/guides/kubernetes/deploying-rabbitmq-on-kubernetes-with-lke/index.md @@ -36,7 +36,7 @@ These operators extend Kubernetes management capabilities and leverage the Kuber ## Before You Begin -1. Read the [Getting Started with Linode](https://techdocs.akamai.com/cloud-computing/docs/getting-started) guide, and create a Linode account if you do not already have one. +1. Read the [Getting Started with Linode](https://techdocs.akamai.com/cloud-computing/docs/getting-started) guide and create a Linode account if you do not already have one. 1. Create a personal access token using the instructions in the [Manage personal access tokens](https://techdocs.akamai.com/cloud-computing/docs/manage-personal-access-tokens) guide.