From 7a7f1d70ea2ee2fd64d5c2f01edd475612fd16fc Mon Sep 17 00:00:00 2001 From: Ole Markus With Date: Thu, 24 Sep 2020 19:43:50 +0200 Subject: [PATCH] Production recommendations document --- docs/getting_started/aws.md | 13 +++-------- docs/getting_started/digitalocean.md | 6 ++++- docs/getting_started/gce.md | 4 ++++ docs/getting_started/openstack.md | 4 ++++ docs/getting_started/production.md | 33 ++++++++++++++++++++++++++++ mkdocs.yml | 1 + 6 files changed, 50 insertions(+), 11 deletions(-) create mode 100644 docs/getting_started/production.md diff --git a/docs/getting_started/aws.md b/docs/getting_started/aws.md index 2f2fe8876f..ac1a444d7f 100644 --- a/docs/getting_started/aws.md +++ b/docs/getting_started/aws.md @@ -403,17 +403,10 @@ delete your cluster and everything contained within it! kops delete cluster --name ${NAME} --yes ``` -# What's next? -We've barely scratched the surface of the capabilities of `kops` in this guide, -and we recommend researching [other interesting -modes](commands.md#other-interesting-modes) to learn more about generating -Terraform configurations, or running your cluster in an HA (Highly Available) -mode. +## Next steps -The [cluster spec docs](../cluster_spec.md) can help to configure these "other -interesting modes". Also be sure to check out how to run a [private network -topology](../topology.md) in AWS. +Now that you have a working _kops_ cluster, read through the [recommendations for production setups guide](production.md) ## Feedback @@ -428,4 +421,4 @@ questions, comments, and requests and meet the people behind the project! Guidelines](https://aws.amazon.com/trademark-guidelines/)* *Kubernetes Logo used with permission under the [Kubernetes Branding -Guidelines](https://github.com/kubernetes/kubernetes/blob/master/logo/usage_guidelines.md)* +Guidelines](https://github.com/kubernetes/kubernetes/blob/master/logo/usage_guidelines.md)* \ No newline at end of file diff --git a/docs/getting_started/digitalocean.md b/docs/getting_started/digitalocean.md index 864372a5c4..7b16cce1fd 100644 --- a/docs/getting_started/digitalocean.md +++ b/docs/getting_started/digitalocean.md @@ -67,4 +67,8 @@ kops delete cluster dev5.k8s.local --yes kops for DigitalOcean currently does not support these features: -* rolling update for instance groups \ No newline at end of file +* rolling update for instance groups + +# Next steps + +Now that you have a working _kops_ cluster, read through the [recommendations for production setups guide](production.md) to learn more about how to configure _kops_ for production workloads. \ No newline at end of file diff --git a/docs/getting_started/gce.md b/docs/getting_started/gce.md index 5edc9e97f8..0334141e1a 100644 --- a/docs/getting_started/gce.md +++ b/docs/getting_started/gce.md @@ -185,3 +185,7 @@ the command. When run without `--yes` it shows a preview of the objects it will After you've double-checked you're deleting exactly what you want to delete, run `kops delete cluster simple.k8s.local --yes`. + +# Next steps + +Now that you have a working _kops_ cluster, read through the [recommendations for production setups guide](production.md) to learn more about how to configure _kops_ for production workloads. \ No newline at end of file diff --git a/docs/getting_started/openstack.md b/docs/getting_started/openstack.md index a239ba93c4..663dfe2d9b 100644 --- a/docs/getting_started/openstack.md +++ b/docs/getting_started/openstack.md @@ -216,3 +216,7 @@ spec: openstack: insecureSkipVerify: true ``` + +# Next steps + +Now that you have a working _kops_ cluster, read through the [recommendations for production setups guide](production.md) to learn more about how to configure _kops_ for production workloads. \ No newline at end of file diff --git a/docs/getting_started/production.md b/docs/getting_started/production.md new file mode 100644 index 0000000000..3539b820bf --- /dev/null +++ b/docs/getting_started/production.md @@ -0,0 +1,33 @@ +# Recommendations for production setups + +The getting started-documentation is a fast way of spinning up a Kubernetes cluster, but there are some aspects of _kops_ that require extra consideration. This document will highlight the most important things you should know about before deploying your production workload. + +## High availability + +Running only a single master can be error prone and disruptive. + +Read through the [high availability documentation](../operations/high_availability.md) to learn how to set up a cluster with redundant control plane. + +## Networking + +The default networking of _kops_, kubenet, is **not** recommended for production. Most importantly, it does not support network policies, nor does it support internal networking. + +Read through the [networking page](../networking.md) and choose a stable CNI. + +## Private topology + +By default kops will create clusters using public topology, where all nodes and the Kubernetes API are exposed on public Internet. + +Read through the [topology page](../topology.md) to understand the options you have running nodes in internal IP addresses and using a [bastion](../bastion.md) for SSH access. + +## Cluster spec + +The `kops` command allows you to configure some aspects of your cluster, but for almost any production cluster, you want to change settings that is not accecible through CLI. The cluster spec can be exported as a yaml file and checked into version control. + +Read through the [cluster spec page](../cluster_spec.md) and familiarize yourself with the key options that kops offers. + +## Templating + +If your cluster contains multiple Instance Groups, or if you manage multiple clusters, you want to use generate the cluster spec using templates. + +Read through the [templating documentation](../operations/cluster_template.md) to learn how to make use of templates. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index ef6f8f55d0..b45efebe55 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -46,6 +46,7 @@ nav: - kops Commands: "getting_started/commands.md" - kops Arguments: "getting_started/arguments.md" - kubectl usage: "getting_started/kubectl.md" + - Production setup: "getting_started/production.md" - CLI: - kops: "cli/kops.md" - kops completion: "cli/kops_completion.md"