Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOC-75] Document guidance for hybrid and multi-cloud #19123

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

Conversation

mdlinville
Copy link
Contributor

@mdlinville mdlinville commented Nov 12, 2024

[DOC-75] Document guidance for hybrid and multi-cloud

  • Added for v24.3, v24.2, v24.1, v23.2
  • Driven by a common include

Preview

src/current/v23.2/hybrid-and-multi-cloud.md
src/current/v24.1/hybrid-and-multi-cloud.md
src/current/v24.2/hybrid-and-multi-cloud.md
src/current/v24.3/hybrid-and-multi-cloud.md

Tests

  • Local build
  • Linkcheck

Copy link

Files changed:

Copy link

netlify bot commented Nov 12, 2024

Deploy Preview for cockroachdb-api-docs canceled.

Name Link
🔨 Latest commit a8c4130
🔍 Latest deploy log https://app.netlify.com/sites/cockroachdb-api-docs/deploys/67364e560c06a00008262239

Copy link

netlify bot commented Nov 12, 2024

Deploy Preview for cockroachdb-interactivetutorials-docs canceled.

Name Link
🔨 Latest commit a8c4130
🔍 Latest deploy log https://app.netlify.com/sites/cockroachdb-interactivetutorials-docs/deploys/67364e568716d400088252de

Copy link

netlify bot commented Nov 12, 2024

Netlify Preview

Name Link
🔨 Latest commit a8c4130
🔍 Latest deploy log https://app.netlify.com/sites/cockroachdb-docs/deploys/67364e569920bd000877088a
😎 Deploy Preview https://deploy-preview-19123--cockroachdb-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@mbookham7
Copy link
Contributor

Small typo on the following line.

**In a multi-region deployment, we recommend that you use manifests. Refer to Deploy CockroachDB on GKE for details.

@mdlinville
Copy link
Contributor Author

Small typo on the following line.

**In a multi-region deployment, we recommend that you use manifests. Refer to Deploy CockroachDB on GKE for details.

In case you are referring to the unbalanced bold, that's fixed. I also adjusted the link title to hopefully be more accurate.

Copy link
Contributor Author

@mdlinville mdlinville left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wording tweaks while re-reading

src/current/_includes/common/hybrid-multi-cloud.md Outdated Show resolved Hide resolved
src/current/_includes/common/hybrid-multi-cloud.md Outdated Show resolved Hide resolved
src/current/_includes/common/hybrid-multi-cloud.md Outdated Show resolved Hide resolved
src/current/_includes/common/hybrid-multi-cloud.md Outdated Show resolved Hide resolved
src/current/_includes/common/hybrid-multi-cloud.md Outdated Show resolved Hide resolved
src/current/_includes/common/hybrid-multi-cloud.md Outdated Show resolved Hide resolved
Copy link
Contributor

@mwang1026 mwang1026 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few minor changes. See comments.

@@ -33,6 +33,12 @@
"/${VERSION}/start-a-local-cluster-in-docker-windows.html"
]
},
{
"title": "Hybrid and multi-cloud deployments",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this under "deploy locally" vs "deploy manually"?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OR even under Multi-Region perhaps?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, after the clouds and before Kubernetes.

This page provides information about hybrid and multi-cloud self-hosted deployments of CockroachDB. Each of these types of deployments can help an organization to meet its service-level and disaster recovery objectives.

- In a _hybrid deployment_, a cluster's nodes are deployed in a combination of infrastructure you manage, private cloud provider infrastructure, and public cloud provider infrastructure.
- In a _multi-cloud deployment_, a cluster's nodes are deployed in multiple cloud providers' infrastructure public or private infrastructure.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra "infrastructure" here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

CockroachDB could route SQL client requests to any cluster node, regardless of where the client connection originates.
- **There must be no overlapping IP address ranges** across the cluster. It is an error for multiple nodes to have the same IP address or to resolve to the same hostname.

DNS name resolution is particularly complex in a Kubernetes deployment. We recommend that you replace `kube-dns` with Core DNS. Refer to [Deploy CockroachDB on GKE](https://github.com/mbookham7/crdb-multi-cloud-k8s/blob/master/markdown/5-deploy-cockroach.md) for details.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you state "In a k8s deployment, we recommend that you replace ..."

I think we want to make this doc generic (aka not kube specific)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do say "in a Kubernetes deployment" just before the "We" so I don't think this change would add much. WDYT?

- **There must be no overlapping IP address ranges** across the cluster. It is an error for multiple nodes to have the same IP address or to resolve to the same hostname.

DNS name resolution is particularly complex in a Kubernetes deployment. We recommend that you replace `kube-dns` with Core DNS. Refer to [Deploy CockroachDB on GKE](https://github.com/mbookham7/crdb-multi-cloud-k8s/blob/master/markdown/5-deploy-cockroach.md) for details.
- **In a multi-region deployment, we recommend that you use manifests**. Refer to [Deploy multi-cloud CockroachDB on GKE](https://github.com/mbookham7/crdb-multi-cloud-k8s/blob/master/markdown/5-deploy-cockroach.md) for details.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto re: qualifying that if you're doing MR Kube

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


DNS name resolution is particularly complex in a Kubernetes deployment. We recommend that you replace `kube-dns` with Core DNS. Refer to [Deploy CockroachDB on GKE](https://github.com/mbookham7/crdb-multi-cloud-k8s/blob/master/markdown/5-deploy-cockroach.md) for details.
- **In a multi-region deployment, we recommend that you use manifests**. Refer to [Deploy multi-cloud CockroachDB on GKE](https://github.com/mbookham7/crdb-multi-cloud-k8s/blob/master/markdown/5-deploy-cockroach.md) for details.
- **Each node deployed in the same environment must share locality** to ensure that the cluster's replicas are spread across deployment environments and to prevent single points of failure or hot spots. To specify a node's locality, pass the `--locality` flag when [starting a node]({% link {{ page.version.version }}/cockroach-start.md %}). This flag accepts an arbitrary set of key-value pairs that describe the location of the node. For example, if nodes are deployed in both Azure and Digital Ocean, you could set each node's locality to either `--locality data-center=azure` or `--locality data-center=digital-ocean`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: They should share one level of tag, but if e.g. within each environment there are different AZs, then they would have the same "data-center" tag but different 'az' tag. You specify that in the next para but saying they "must share locality" makes it seem like they have to be exactly the same.

Also, is there a good page to link to re: locality hierarchy?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There isn't a good reference page for that. There are several open issues about locality, which someone else will need to take on.

Addressed the other feedback by a bit of reworking of this section.


## Simulate an outage

This section shows some ways to simulate an outage and validate disaster recovery procedures in a hybrid or multi-cloud deployment.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a sentence along the lines of "you should run this testing to ensure you've correctly set up the locality flags"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants