diff --git a/README.md b/README.md index 500ad0d207abf47233dc470da2c4a38a5cad1d65..b09c2f1b28ee279086ad2f2c18d9dd7ca810db89 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,24 @@ # The GARR Distribution of Kubernetes -  +  ## Overview -This is a `Kubernetes` cluster using [Webhook Token Authentication](https://kubernetes.io/docs/reference/access-authn-authz/authentication/), +This is a scaled-out `Kubernetes` cluster using [Webhook Token Authentication](https://kubernetes.io/docs/reference/access-authn-authz/authentication/), provided by the charm `cs:~csd-garr/kubernetes-keystone`. This cluster is composed of the following components and features: - `Kubernetes` (automated deployment, operations, and scaling) - - `Kubernetes` cluster with one master and three worker nodes. + - `Kubernetes` cluster with two masters and three worker nodes. - Optional `Kubernetes` worker with GPU. - TLS used for communication between nodes for security. - - A CNI plugin (Flannel). - - A load balancer for HA `kubernetes-master`. + - Flannel CNI plugin. + - A load balancer for HA on master nodes. - Webhook Token Authentication. - Optional Ingress Controller (on worker). - - Optional `Dashboard` addon (on master) including `Heapster` for cluster monitoring. + - `Dashboard` addon (on master) including `Heapster` for metrics.. - EasyRSA - Performs the role of a certificate authority serving self signed certificates to the requesting units of the cluster. @@ -29,9 +29,8 @@ This cluster is composed of the following components and features: ## Installation -The server nodes to be used should be tagged as `kubernetes` in `MAAS`. -At least one of them should also be tagged as `public-ip`, to denote a machine configured with -a public IP. +The worker nodes to be used should be tagged as `kubernetes-worker` in `MAAS`. +The master nodes should be tagged as `kubernetes-maseter`, and configured with a public IP. The server with GPUs should also be tagged as 'gpu'. Customize the bundle configuration editing the file `bundle.yaml`, by following [this @@ -90,11 +89,11 @@ $ juju attach kubernetes-worker cni=/path/to/cni.tgz ### Using a specific Kubernetes version You can select a specific version or series of `Kubernetes` by configuring the charms -to use a specific snap channel. For example, to use the 1.9 series: +to use a specific snap channel. For example, to use the 1.14 series: ```sh -$ juju config kubernetes-master channel=1.9/stable -$ juju config kubernetes-worker channel=1.9/stable +$ juju config kubernetes-master channel=1.14/stable +$ juju config kubernetes-worker channel=1.14/stable ``` After changing the channel, you'll need to manually execute the upgrade action @@ -190,8 +189,8 @@ $ kubectl get nodes ### Accessing the Kubernetes Dashboard -The `Kubernetes` dashboard addon is installed by default, along with `Heapster`, -`Grafana` and `InfluxDB` for cluster monitoring. The dashboard addons can be +The `Kubernetes` dashboard addon is installed by default, along with Metrics Server, +`Heapster`, `Grafana` and `InfluxDB` for cluster monitoring. The dashboard addons can be enabled (default) or disabled by setting the `enable-dashboard-addons` config on the `kubernetes-master` application: @@ -314,8 +313,8 @@ $ juju expose kubernetes-worker In `Kubernetes`, workloads are declared using pod, service, and ingress definitions. An ingress controller is provided to you by default and deployed into -the [default namespace](https://kubernetes.io/docs/user-guide/namespaces/) of the -cluster. If one is not available, you may deploy it with: +the `ingress-nginx-kubernetes-worker` [namespace](https://kubernetes.io/docs/user-guide/namespaces/) +of the cluster (this is derived from the Juju charm's name). If one is not available, you may deploy it with: ```sh $ juju config kubernetes-worker ingress=true @@ -345,6 +344,12 @@ which binds an 'endpoint', using all 3 of the 'microbots' pods. - Finally, it will create an ingress resource, which points at a [xip.io](https://xip.io) domain to simulate a proper DNS service. +#### Running the packaged example + +Run a Juju action to create the example microbot web application: + + $ juju run-action kubernetes-worker/0 microbot replicas=3 + Action queued with id: db7cc72b-5f35-4a4d-877c-284c4b776eb8 Wait for the action to comlpete: @@ -571,13 +576,13 @@ documentation for more information. - [etcd](https://jujucharms.com/u/containers/etcd/) - [flannel](https://jujucharms.com/u/containers/flannel/) -## Kubernetes details +## Charmed Kubernetes Reference -- [Kubernetes User Guide](https://kubernetes.io/docs/user-guide/) -- [The Canonical Distribution of Kubernetes](https://jujucharms.com/canonical-kubernetes/bundle/) -- [Official Bundle](https://api.jujucharms.com/charmstore/v5/canonical-kubernetes/archive/bundle.yaml) -- [Bundle Source](https://github.com/juju-solutions/bundle-canonical-kubernetes) -- [Bug tracker](https://github.com/juju-solutions/bundle-canonical-kubernetes/issues) +- [Docs](https://www.ubuntu.com/kubernetes/docs) +- [Source Code](https://github.com/charmed-kubernetes) +- [Bug tracker](https://bugs.launchpad.net/charmed-kubernetes) +- [Demos](https://github.com/CanonicalLtd/canonical-kubernetes-demos) +- [Third-party Integrations](https://github.com/CanonicalLtd/canonical-kubernetes-third-party-integrations) # Flannel