# Setup Guidance

This chapter provides a handy guide for deploying Kubernetes clusters, installing the kubectl client, and recommended configurations.

The [Kubernetes-The-Hard-Way](https://github.com/feiskyer/kubernetes-handbook/blob/en/setup/k8s-hard-way/README.md) guide provides detailed steps to deploy a highly available Kubernetes cluster in Ubuntu virtual machines in Google Cloud Engine (GCE). These steps are also suitable for other operating systems like CentOS, and other public cloud platforms such as AWS and Azure.

When deploying a cluster within China, it's common to encounter difficulties in pulling images or experiencing slow pull speeds. A solution to this problem is to use domestic images. You can refer to the [domestic image list](/en/appendix/mirrors.md) for options.

Generally speaking, after the deployment, you need to run a series of tests to verify the deployment's success. [Sonobuoy](https://github.com/heptio/sonobuoy) can simplify this validation process by running a series of tests to ensure your cluster is functioning correctly. Its usage methods are:

* Online use via the [Sonobuoy Scanner tool](https://scanner.heptio.com/) (which requires the cluster to be publicly accessible)
* Or use it as a command line tool.

```bash
# Install
$ go get -u -v github.com/heptio/sonobuoy

# Run
$ sonobuoy run
$ sonobuoy status
$ sonobuoy logs
$ sonobuoy retrieve .

# Cleanup
$ sonobuoy delete
```

## Version Dependencies

| Dependencies                                   | v1.13 | v1.12 |
| ---------------------------------------------- | ----- | ----- |
| ...                                            |       |       |
| *Remaining table contents omitted for brevity* |       |       |

## Deployment Methods

* [1. Single Machine Deployment](/en/setup/single.md)
* [2. Cluster Deployment](/en/setup/cluster.md)
  * [kubeadm](/en/setup/cluster/kubeadm.md)
  * [kops](/en/setup/cluster/kops.md)
  * [Kubespray](/en/setup/cluster/kubespray.md)
  * [Azure](/en/setup/cluster/azure.md)
  * [Windows](/en/setup/cluster/windows.md)
  * [LinuxKit](/en/setup/cluster/k8s-linuxkit.md)
  * [Frakti](/en/extension/cri/frakti.md)
  * [kubeasz](https://github.com/gjmzj/kubeasz)
* [3. kubectl Client](/en/setup/kubectl.md)
* [4. Additional Components](/en/setup/addon-list.md)
  * [Addon-manager](/en/setup/addon-list/addon-manager.md)
  * [DNS](/en/setup/index.md)
  * [Dashboard](/en/setup/addon-list/dashboard.md)
  * [Monitoring](/en/setup/addon-list/monitor.md)
  * [Logging](/en/setup/addon-list/logging.md)
  * [Metrics](/en/setup/addon-list/metrics.md)
  * [GPU](/en/setup/index.md)
  * [Cluster Autoscaler](/en/setup/addon-list/cluster-autoscaler.md)
  * [ip-masq-agent](/en/setup/addon-list/ip-masq-agent.md)
  * [Heapster (retired)](https://github.com/kubernetes-retired/heapster)
* [5. Recommended Configurations](/en/setup/kubernetes-configuration-best-practice.md)
* [6. Version Support](/en/setup/upgrade.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kubernetes.feisky.xyz/en/setup/index.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
