Docs improvements (#7660)

* Docs: update sidebar

* Docs: move registry documentation into docs/

* Docs: move rbd_provisioner documentation into docs/

* Docs: move cephfs_provisioner into docs/

* Docs: move local_volume_provisioner documentation into docs/

* Docs: move ambassador.md to docs/ingress_controller/

* Docs: move metallb.md to docs/ingress_controller/

* Docs: move ingress_nginx documentation into docs/

* Docs: move alb_ingress_controller documentation into docs/

* Docs: merge ambassador documentation into docs/ingress_controller/

* Docs: move cert_manager documentation into docs/

* Docs: move bootstrap-os documentation into docs/

* Docs: update file locations in sidebar
pull/7674/head
Cristian Calin 2021-06-01 17:30:27 +03:00 committed by GitHub
parent 4674b03661
commit 6a2ea94b39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 46 additions and 91 deletions

View File

@ -14,30 +14,45 @@
* [Calico](docs/calico.md) * [Calico](docs/calico.md)
* [Flannel](docs/flannel.md) * [Flannel](docs/flannel.md)
* [Kube Router](docs/kube-router.md) * [Kube Router](docs/kube-router.md)
* [Kube OVN](docs/kube-ovn.md)
* [Weave](docs/weave.md) * [Weave](docs/weave.md)
* [Multus](docs/multus.md) * [Multus](docs/multus.md)
* [OVN4NFV](docs/ovn4nfv.md)
* Ingress * Ingress
* [Ambassador](docs/ambassador.md) * [ALB Ingress](docs/ingress_controller/alb_ingress_controller.md)
* [Ambassador](docs/ingress_controller/ambassador.md)
* [MetalLB](docs/ingress_controller/metallb.md)
* [Nginx Ingress](docs/ingress_controller/ingress_nginx.md)
* [Cloud providers](docs/cloud.md) * [Cloud providers](docs/cloud.md)
* [AWS](docs/aws.md) * [AWS](docs/aws.md)
* [Azure](docs/azure.md) * [Azure](docs/azure.md)
* [OpenStack](/docs/openstack.md) * [OpenStack](/docs/openstack.md)
* [Equinix Metal](/docs/equinix-metal.md) * [Equinix Metal](/docs/equinix-metal.md)
* [vSphere](/docs/vsphere.md) * [vSphere](/docs/vsphere.md)
* Operating Systems * [Operating Systems](docs/bootstrap-os.md)
* [Debian](docs/debian.md) * [Debian](docs/debian.md)
* [Flatcar Container Linux](docs/flatcar.md) * [Flatcar Container Linux](docs/flatcar.md)
* [Fedora CoreOS](docs/fcos.md) * [Fedora CoreOS](docs/fcos.md)
* [OpenSUSE](docs/opensuse.md) * [OpenSUSE](docs/opensuse.md)
* [RedHat Enterprise Linux](docs/rhel.md)
* [CentOS/OracleLinux/AlmaLinux](docs/centos8.md)
* [Amaxon Linux 2](docs/amazonlinux.md)
* CRI * CRI
* [Containerd](docs/containerd.md) * [Containerd](docs/containerd.md)
* [CRI-O](docs/cri-o.md) * [CRI-O](docs/cri-o.md)
* [Kata Containers](docs/kata-containers.md)
* Advanced * Advanced
* [Proxy](/docs/proxy.md) * [Proxy](/docs/proxy.md)
* [Downloads](docs/downloads.md) * [Downloads](docs/downloads.md)
* [Netcheck](docs/netcheck.md) * [Netcheck](docs/netcheck.md)
* [Cert Manager](docs/cert_manager.md)
* [DNS Stack](docs/dns-stack.md) * [DNS Stack](docs/dns-stack.md)
* [Kubernetes reliability](docs/kubernetes-reliability.md) * [Kubernetes reliability](docs/kubernetes-reliability.md)
* [Local Registry](docs/kubernetes-apps/registry.md)
* External Storage Provisioners
* [RBD Provisioner](docs/kubernetes-apps/rbd_provisioner.md)
* [CEPHFS Provisioner](docs/kubernetes-apps/cephfs_provisioner.md)
* [Local Volume Provisioner](docs/kubernetes-apps/local_volume_provisioner.md)
* Developers * Developers
* [Test cases](docs/test_cases.md) * [Test cases](docs/test_cases.md)
* [Vagrant](docs/vagrant.md) * [Vagrant](docs/vagrant.md)

View File

@ -16,6 +16,16 @@ URL rewriting, CORS, rate limiting, and automatic metrics collection.
installation/updates. installation/updates.
* `ingress_ambassador_secure_port` (default: 443): HTTPS port to listen at. * `ingress_ambassador_secure_port` (default: 443): HTTPS port to listen at.
* `ingress_ambassador_insecure_port` (default: 80): HTTP port to listen at. * `ingress_ambassador_insecure_port` (default: 80): HTTP port to listen at.
* `ingress_ambassador_multi_namespaces` (default `false`): By default, Ambassador will only
watch the `ingress_ambassador_namespace` namespace for `AmbassadorInstallation` CRD resources.
When set to `true`, this value will tell the Ambassador Operator to watch **all** namespaces
for CRDs. If you want to run multiple Ambassador ingress instances, set this to `true`.
### Ingress annotations
The Ambassador API Gateway will automatically load balance `Ingress` resources
that include the annotation `kubernetes.io/ingress.class=ambassador`. All the other
resources will be just ignored.
### Ambassador Operator ### Ambassador Operator

View File

@ -1,12 +1,10 @@
CephFS Volume Provisioner for Kubernetes 1.5+ # CephFS Volume Provisioner for Kubernetes 1.5+
=============================================
[![Docker Repository on Quay](https://quay.io/repository/external_storage/cephfs-provisioner/status "Docker Repository on Quay")](https://quay.io/repository/external_storage/cephfs-provisioner) [![Docker Repository on Quay](https://quay.io/repository/external_storage/cephfs-provisioner/status "Docker Repository on Quay")](https://quay.io/repository/external_storage/cephfs-provisioner)
Using Ceph volume client Using Ceph volume client
Development ## Development
-----------
Compile the provisioner Compile the provisioner
@ -20,8 +18,7 @@ Make the container image and push to the registry
make push make push
``` ```
Test instruction ## Test instruction
----------------
- Start Kubernetes local cluster - Start Kubernetes local cluster
@ -65,14 +62,12 @@ kubectl create -f example/claim.yaml
kubectl create -f example/test-pod.yaml kubectl create -f example/test-pod.yaml
``` ```
Known limitations ## Known limitations
-----------------
- Kernel CephFS doesn't work with SELinux, setting SELinux label in Pod's securityContext will not work. - Kernel CephFS doesn't work with SELinux, setting SELinux label in Pod's securityContext will not work.
- Kernel CephFS doesn't support quota or capacity, capacity requested by PVC is not enforced or validated. - Kernel CephFS doesn't support quota or capacity, capacity requested by PVC is not enforced or validated.
- Currently each Ceph user created by the provisioner has `allow r` MDS cap to permit CephFS mount. - Currently each Ceph user created by the provisioner has `allow r` MDS cap to permit CephFS mount.
Acknowledgement ## Acknowledgement
---------------
Inspired by CephFS Manila provisioner and conversation with John Spray Inspired by CephFS Manila provisioner and conversation with John Spray

View File

@ -1,5 +1,4 @@
Local Storage Provisioner # Local Storage Provisioner
=========================
The [local storage provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume) The [local storage provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume)
is NOT a dynamic storage provisioner as you would is NOT a dynamic storage provisioner as you would
@ -47,8 +46,7 @@ data:
The default StorageClass is local-storage on /mnt/disks, The default StorageClass is local-storage on /mnt/disks,
the rest of this doc will use that path as an example. the rest of this doc will use that path as an example.
Examples to create local storage volumes ## Examples to create local storage volumes
----------------------------------------
1. tmpfs method: 1. tmpfs method:
@ -106,8 +104,7 @@ management.
Create a symbolic link under discovery directory to the block device on the node. To use Create a symbolic link under discovery directory to the block device on the node. To use
raw block devices in pods, volume_type should be set to "Block". raw block devices in pods, volume_type should be set to "Block".
Usage notes ## Usage notes
-----------
Beta PV.NodeAffinity field is used by default. If running against an older K8s Beta PV.NodeAffinity field is used by default. If running against an older K8s
version, the useAlphaAPI flag must be set in the configMap. version, the useAlphaAPI flag must be set in the configMap.
@ -120,7 +117,6 @@ Make sure to make any mounts persist via /etc/fstab or with systemd mounts (for
Flatcar Container Linux). Pods with persistent volume claims will not be Flatcar Container Linux). Pods with persistent volume claims will not be
able to start if the mounts become unavailable. able to start if the mounts become unavailable.
Further reading ## Further reading
---------------
Refer to the upstream docs here: <https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume> Refer to the upstream docs here: <https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume>

View File

@ -1,12 +1,10 @@
Private Docker Registry in Kubernetes # Private Docker Registry in Kubernetes
=====================================
Kubernetes offers an optional private Docker registry addon, which you can turn Kubernetes offers an optional private Docker registry addon, which you can turn
on when you bring up a cluster or install later. This gives you a place to on when you bring up a cluster or install later. This gives you a place to
store truly private Docker images for your cluster. store truly private Docker images for your cluster.
How it works ## How it works
------------
The private registry runs as a `Pod` in your cluster. It does not currently The private registry runs as a `Pod` in your cluster. It does not currently
support SSL or authentication, which triggers Docker's "insecure registry" support SSL or authentication, which triggers Docker's "insecure registry"
@ -14,8 +12,7 @@ logic. To work around this, we run a proxy on each node in the cluster,
exposing a port onto the node (via a hostPort), which Docker accepts as exposing a port onto the node (via a hostPort), which Docker accepts as
"secure", since it is accessed by `localhost`. "secure", since it is accessed by `localhost`.
Turning it on ## Turning it on
-------------
Some cluster installs (e.g. GCE) support this as a cluster-birth flag. The Some cluster installs (e.g. GCE) support this as a cluster-birth flag. The
`ENABLE_CLUSTER_REGISTRY` variable in `cluster/gce/config-default.sh` governs `ENABLE_CLUSTER_REGISTRY` variable in `cluster/gce/config-default.sh` governs
@ -24,7 +21,7 @@ whether the registry is run or not. To set this flag, you can specify
does not include this flag, the following steps should work. Note that some of does not include this flag, the following steps should work. Note that some of
this is cloud-provider specific, so you may have to customize it a bit. this is cloud-provider specific, so you may have to customize it a bit.
- Make some storage ### Make some storage
The primary job of the registry is to store data. To do that we have to decide The primary job of the registry is to store data. To do that we have to decide
where to store it. For cloud environments that have networked storage, we can where to store it. For cloud environments that have networked storage, we can
@ -58,15 +55,14 @@ If, for example, you wanted to use NFS you would just need to change the
Note that in any case, the storage (in the case the GCE PersistentDisk) must be Note that in any case, the storage (in the case the GCE PersistentDisk) must be
created independently - this is not something Kubernetes manages for you (yet). created independently - this is not something Kubernetes manages for you (yet).
- I don't want or don't have persistent storage ### I don't want or don't have persistent storage
If you are running in a place that doesn't have networked storage, or if you If you are running in a place that doesn't have networked storage, or if you
just want to kick the tires on this without committing to it, you can easily just want to kick the tires on this without committing to it, you can easily
adapt the `ReplicationController` specification below to use a simple adapt the `ReplicationController` specification below to use a simple
`emptyDir` volume instead of a `persistentVolumeClaim`. `emptyDir` volume instead of a `persistentVolumeClaim`.
Claim the storage ## Claim the storage
-----------------
Now that the Kubernetes cluster knows that some storage exists, you can put a Now that the Kubernetes cluster knows that some storage exists, you can put a
claim on that storage. As with the `PersistentVolume` above, you can start claim on that storage. As with the `PersistentVolume` above, you can start
@ -93,8 +89,7 @@ you created before will be bound to this claim (unless you have other
`PersistentVolumes` in which case those might get bound instead). This claim `PersistentVolumes` in which case those might get bound instead). This claim
gives you the right to use this storage until you release the claim. gives you the right to use this storage until you release the claim.
Run the registry ## Run the registry
----------------
Now we can run a Docker registry: Now we can run a Docker registry:
@ -145,8 +140,7 @@ spec:
``` ```
<!-- END MUNGE: EXAMPLE registry-rc.yaml --> <!-- END MUNGE: EXAMPLE registry-rc.yaml -->
Expose the registry in the cluster ## Expose the registry in the cluster
----------------------------------
Now that we have a registry `Pod` running, we can expose it as a Service: Now that we have a registry `Pod` running, we can expose it as a Service:
@ -170,8 +164,7 @@ spec:
``` ```
<!-- END MUNGE: EXAMPLE registry-svc.yaml --> <!-- END MUNGE: EXAMPLE registry-svc.yaml -->
Expose the registry on each node ## Expose the registry on each node
--------------------------------
Now that we have a running `Service`, we need to expose it onto each Kubernetes Now that we have a running `Service`, we need to expose it onto each Kubernetes
`Node` so that Docker will see it as `localhost`. We can load a `Pod` on every `Node` so that Docker will see it as `localhost`. We can load a `Pod` on every
@ -229,8 +222,7 @@ $ curl localhost:5000
404 page not found 404 page not found
``` ```
Using the registry ## Using the registry
------------------
To use an image hosted by this registry, simply say this in your `Pod`'s To use an image hosted by this registry, simply say this in your `Pod`'s
`spec.containers[].image` field: `spec.containers[].image` field:
@ -258,15 +250,3 @@ $ kubectl port-forward --namespace kube-system $POD 5000:5000 &
Now you can build and push images on your local computer as Now you can build and push images on your local computer as
`localhost:5000/yourname/container` and those images will be available inside `localhost:5000/yourname/container` and those images will be available inside
your kubernetes cluster with the same name. your kubernetes cluster with the same name.
More Extensions
---------------
- [Use GCS as storage backend](gcs/README.md)
- [Enable TLS/SSL](tls/README.md)
- [Enable Authentication](auth/README.md)
Future improvements
-------------------
- Allow port-forwarding to a Service rather than a pod (\#15180)

View File

@ -1,41 +0,0 @@
# Installation Guide
- [Installation Guide](#installation-guide)
- [Ambassador](#ambassador)
- [Ambassador Operator](#ambassador-operator)
- [Configuration](#configuration)
- [Ingress annotations](#ingress-annotations)
## Ambassador
The Ambassador API Gateway provides all the functionality of a traditional ingress controller
(e.g., path-based routing) while exposing many additional capabilities such as authentication,
URL rewriting, CORS, rate limiting, and automatic metrics collection.
## Ambassador Operator
This addon deploys the Ambassador Operator, which in turn will install Ambassador in
a kubespray cluster.
The Ambassador Operator is a Kubernetes Operator that controls Ambassador's complete lifecycle
in your cluster, automating many of the repeatable tasks you would otherwise have to perform
yourself. Once installed, the Operator will complete installations and seamlessly upgrade to new
versions of Ambassador as they become available.
## Configuration
- `ingress_ambassador_namespace` (default `ambassador`): namespace for installing Ambassador.
- `ingress_ambassador_update_window` (default `0 0 * * SUN`): _crontab_-like expression
for specifying when the Operator should try to update the Ambassador API Gateway.
- `ingress_ambassador_version` (default: `*`): SemVer rule for versions allowed for
installation/updates.
- `ingress_ambassador_multi_namespaces` (default `false`): By default, Ambassador will only
watch the `ingress_ambassador_namespace` namespace for `AmbassadorInstallation` CRD resources.
When set to `true`, this value will tell the Ambassador Operator to watch **all** namespaces
for CRDs. If you want to run multiple Ambassador ingress instances, set this to `true`.
## Ingress annotations
The Ambassador API Gateway will automatically load balance `Ingress` resources
that include the annotation `kubernetes.io/ingress.class=ambassador`. All the other
resources will be just ignored.