diff --git a/README.md b/README.md index dcc20c2abdc42fe8f3a78e93f311dfacf4125e62..9fef8c887455f32a5abc15ecc796e51187b90512 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,7 @@ vagrant up - [Air-Gap installation](docs/offline-environment.md) - [NTP](docs/ntp.md) - [Hardening](docs/hardening.md) +- [Mirror](docs/mirror.md) - [Roadmap](docs/roadmap.md) ## Supported Linux Distributions diff --git a/docs/mirror.md b/docs/mirror.md new file mode 100644 index 0000000000000000000000000000000000000000..3138d20340aafdf2315d3f45c5a145a6b98f4b49 --- /dev/null +++ b/docs/mirror.md @@ -0,0 +1,66 @@ +# Public Download Mirror + +The public mirror is useful to make the public resources download quickly in some areas of the world. (such as China). + +## Configuring Kubespray to use a mirror site + +You can follow the [offline](offline-environment.md) to config the image/file download configuration to the public mirror site. If you want to download quickly in China, the configuration can be like: + +```shell +gcr_image_repo: "gcr.m.daocloud.io" +kube_image_repo: "k8s.m.daocloud.io" +docker_image_repo: "docker.m.daocloud.io" +quay_image_repo: "quay.m.daocloud.io" +github_image_repo: "ghcr.m.daocloud.io" + +files_repo: "https://files.m.daocloud.io" +``` + +Use mirror sites only if you trust the provider. The Kubespray team cannot verify their reliability or security. +You can replace the `m.daocloud.io` with any site you want. + +## Example Usage Full Steps + +You can follow the full steps to use the kubesray with mirror. for example: + +Install Ansible according to Ansible installation guide then run the following steps: + +```shell +# Copy ``inventory/sample`` as ``inventory/mycluster`` +cp -rfp inventory/sample inventory/mycluster + +# Update Ansible inventory file with inventory builder +declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5) +CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]} + +# Use the download mirror +cp inventory/mycluster/group_vars/all/offline.yml inventory/mycluster/group_vars/all/mirror.yml +sed -i -E '/# .*\{\{ files_repo/s/^# //g' inventory/mycluster/group_vars/all/mirror.yml +tee -a inventory/mycluster/group_vars/all/mirror.yml <<EOF +gcr_image_repo: "gcr.m.daocloud.io" +kube_image_repo: "k8s.m.daocloud.io" +docker_image_repo: "docker.m.daocloud.io" +quay_image_repo: "quay.m.daocloud.io" +github_image_repo: "ghcr.m.daocloud.io" +files_repo: "https://files.m.daocloud.io" +EOF + +# Review and change parameters under ``inventory/mycluster/group_vars`` +cat inventory/mycluster/group_vars/all/all.yml +cat inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml + +# Deploy Kubespray with Ansible Playbook - run the playbook as root +# The option `--become` is required, as for example writing SSL keys in /etc/, +# installing packages and interacting with various systemd daemons. +# Without --become the playbook will fail to run! +ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml +``` + +The above steps are by adding the "Use the download mirror" step to the [README.md](../README.md) steps. + +## Community-run mirror sites + +DaoCloud(China) + +* [image-mirror](https://github.com/DaoCloud/public-image-mirror) +* [files-mirror](https://github.com/DaoCloud/public-binary-files-mirror)