From 6dc694a16166237b6b74aa392c4dafc8f278514d Mon Sep 17 00:00:00 2001 From: Konstantinos Tsakalozos Date: Wed, 1 Mar 2017 11:43:24 +0200 Subject: [PATCH 01/58] Update index.md --- docs/getting-started-guides/ubuntu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/ubuntu/index.md b/docs/getting-started-guides/ubuntu/index.md index d54b94a88c..5635c1d553 100644 --- a/docs/getting-started-guides/ubuntu/index.md +++ b/docs/getting-started-guides/ubuntu/index.md @@ -15,7 +15,7 @@ Supports AWS, GCE, Azure, Joyent, OpenStack, Bare Metal and local workstation de ### Quick Start -[conjure-up](http://conjure-up.io/) provides quick wasy to deploy Kubernetes on multiple clouds and bare metal. It provides a user-friendly UI that prompts you for cloud credentials and configuration options: +[conjure-up](http://conjure-up.io/) provides a quick way to deploy Kubernetes on multiple clouds and bare metal. It provides a user-friendly UI that prompts you for cloud credentials and configuration options: Available for Ubuntu 16.04 and newer: From a15d5c1223e9538211213b0b97d8531e3e2d7b29 Mon Sep 17 00:00:00 2001 From: Konstantinos Tsakalozos Date: Wed, 1 Mar 2017 12:21:18 +0200 Subject: [PATCH 02/58] Update installation.md --- docs/getting-started-guides/ubuntu/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/ubuntu/installation.md b/docs/getting-started-guides/ubuntu/installation.md index 9e3bdd8b2b..41499b8111 100644 --- a/docs/getting-started-guides/ubuntu/installation.md +++ b/docs/getting-started-guides/ubuntu/installation.md @@ -9,7 +9,7 @@ title: Setting up Kubernetes with Juju Ubuntu 16.04 introduced the [Canonical Distribution of Kubernetes](https://www.ubuntu.com/cloud/kubernetes), a pure upstream distribution of Kubernetes designed for production usage. This page shows you how to deploy a cluster. {% endcapture %} -Out of the box it comes with the following components on 9 machines: +Out of the box Juju Kubernetes comes with the following components on 9 machines: - Kubernetes (automated deployment, operations, and scaling) - Three node Kubernetes cluster with one master and two worker nodes. From 5e5d91e3c2fe9d454ed92a46e227fee87007d2c5 Mon Sep 17 00:00:00 2001 From: Konstantinos Tsakalozos Date: Wed, 1 Mar 2017 12:32:55 +0200 Subject: [PATCH 03/58] Update validation.md --- docs/getting-started-guides/ubuntu/validation.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/getting-started-guides/ubuntu/validation.md b/docs/getting-started-guides/ubuntu/validation.md index 51b265a722..e881ab9fa6 100644 --- a/docs/getting-started-guides/ubuntu/validation.md +++ b/docs/getting-started-guides/ubuntu/validation.md @@ -31,7 +31,7 @@ users do, when unit and integration tests are insufficient. To deploy the end-to-end test suite, you need to relate the `kubernetes-e2e` charm to your existing kubernetes-master nodes and easyrsa: ``` -juju deploy kubernetes-e2e +juju deploy cs:~containers/kubernetes-e2e juju add-relation kubernetes-e2e kubernetes-master juju add-relation kubernetes-e2e easyrsa ``` @@ -83,7 +83,7 @@ As an example, you can run a more limited set of tests for rapid validation of a deployed cluster. The following example will skip the `Flaky`, `Slow`, and `Feature` labeled tests: - juju run-action kubernetes-e2e/0 skip='\[(Flaky|Slow|Feature:.*)\]' + juju run-action kubernetes-e2e/0 test skip='\[(Flaky|Slow|Feature:.*)\]' > Note: the escaping of the regex due to how bash handles brackets. @@ -120,13 +120,13 @@ Output: Action queued with id: 4ceed33a-d96d-465a-8f31-20d63442e51b -Copy output to your local machine +Copy output to your local machine: juju scp kubernetes-e2e/0:4ceed33a-d96d-465a-8f31-20d63442e51b.log . ##### Action result output -Or you can just show the output inline:: +Or you can just show the output inline: juju run-action kubernetes-e2e/0 test From 923aeb8bda6984a03aa301e9e313e2dd6f43af61 Mon Sep 17 00:00:00 2001 From: Konstantinos Tsakalozos Date: Wed, 1 Mar 2017 12:45:43 +0200 Subject: [PATCH 04/58] Update backups.md --- docs/getting-started-guides/ubuntu/backups.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/getting-started-guides/ubuntu/backups.md b/docs/getting-started-guides/ubuntu/backups.md index b839cafee4..88bb83aabe 100644 --- a/docs/getting-started-guides/ubuntu/backups.md +++ b/docs/getting-started-guides/ubuntu/backups.md @@ -10,6 +10,8 @@ This page shows you how to backup and restore data from the different deployed s This page assumes you have a working Juju deployed cluster. {% endcapture %} +{% capture steps %} + ## Exporting cluster data Exporting of cluster data is not supported at this time. @@ -18,7 +20,6 @@ Exporting of cluster data is not supported at this time. Importing of cluster data is not supported at this time. -{% capture steps %} ## Exporting etcd data Migrating etcd is a fairly easy task. From dbedb28b51eeb81bb30057f99fdc03e801005043 Mon Sep 17 00:00:00 2001 From: Konstantinos Tsakalozos Date: Wed, 1 Mar 2017 12:57:29 +0200 Subject: [PATCH 05/58] Update backups.md --- docs/getting-started-guides/ubuntu/backups.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/getting-started-guides/ubuntu/backups.md b/docs/getting-started-guides/ubuntu/backups.md index 88bb83aabe..8617c557ad 100644 --- a/docs/getting-started-guides/ubuntu/backups.md +++ b/docs/getting-started-guides/ubuntu/backups.md @@ -11,7 +11,6 @@ This page assumes you have a working Juju deployed cluster. {% endcapture %} {% capture steps %} - ## Exporting cluster data Exporting of cluster data is not supported at this time. From f2e481abd8874cf6863e692175856dfb0bf64866 Mon Sep 17 00:00:00 2001 From: Konstantinos Tsakalozos Date: Wed, 1 Mar 2017 13:37:30 +0200 Subject: [PATCH 06/58] Spell fixes --- docs/getting-started-guides/ubuntu/calico.md | 2 +- docs/getting-started-guides/ubuntu/decommissioning.md | 2 +- docs/getting-started-guides/ubuntu/glossary.md | 4 ++-- docs/getting-started-guides/ubuntu/local.md | 2 +- docs/getting-started-guides/ubuntu/monitoring.md | 6 +++--- docs/getting-started-guides/ubuntu/networking.md | 2 +- docs/getting-started-guides/ubuntu/storage.md | 4 ++-- docs/getting-started-guides/ubuntu/troubleshooting.md | 4 ++-- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/getting-started-guides/ubuntu/calico.md b/docs/getting-started-guides/ubuntu/calico.md index 631d2cdaac..ccd66093a4 100644 --- a/docs/getting-started-guides/ubuntu/calico.md +++ b/docs/getting-started-guides/ubuntu/calico.md @@ -80,7 +80,7 @@ The master requires the root CA public key, `ca.pem`; the apiserver certificate, Calico needs its own etcd cluster to store its state. In this guide we install a single-node cluster on the master server. -> Note: In a production deployment we recommend running a distributed etcd cluster for redundancy. In this guide, we use a single etcd for simplicitly. +> Note: In a production deployment we recommend running a distributed etcd cluster for redundancy. In this guide, we use a single etcd for simplicity. 1. Download the template manifest file: diff --git a/docs/getting-started-guides/ubuntu/decommissioning.md b/docs/getting-started-guides/ubuntu/decommissioning.md index 0da845236e..2d1b42c7e4 100644 --- a/docs/getting-started-guides/ubuntu/decommissioning.md +++ b/docs/getting-started-guides/ubuntu/decommissioning.md @@ -13,7 +13,7 @@ This page assumes you have a working Juju deployed cluster. {% endcapture %} {% capture steps %} -It is recommended to deploy individual Kubernetes clusters in their own models, so that there is a clean seperation between environments. To remove a cluster first find out which model it's in with `juju list-models`. The controller reserves an `admin` model for itself. If you have chosen to not name your model it might show up as `default`. +It is recommended to deploy individual Kubernetes clusters in their own models, so that there is a clean separation between environments. To remove a cluster first find out which model it's in with `juju list-models`. The controller reserves an `admin` model for itself. If you have chosen to not name your model it might show up as `default`. ``` $ juju list-models diff --git a/docs/getting-started-guides/ubuntu/glossary.md b/docs/getting-started-guides/ubuntu/glossary.md index 1c8b2ec99b..2afe083a82 100644 --- a/docs/getting-started-guides/ubuntu/glossary.md +++ b/docs/getting-started-guides/ubuntu/glossary.md @@ -16,7 +16,7 @@ This page assumes you have a working Juju deployed cluster. controller - The management node of a cloud environment. Typically you have one controller per cloud region, or more in HA environments. The controller is responsible for managing all subsequent models in a given environment. It contains the Juju API server and its underlying database. -model - A collection of charms and their relationships that define a deployment. This includes machines and units. A controller can host multiple models. It is recommended to seperate Kubernetes clusters into individual models for management and isolation reasons. +model - A collection of charms and their relationships that define a deployment. This includes machines and units. A controller can host multiple models. It is recommended to separate Kubernetes clusters into individual models for management and isolation reasons. charm - The definition of a service, including its metadata, dependencies with other services, required packages, and application management logic. It contains all the operational knowledge of deploying a Kubernetes cluster. Included charm examples are `kubernetes-core`, `easy-rsa`, `kibana`, and `etcd`. @@ -25,4 +25,4 @@ unit - A given instance of a service. These may or may not use up a whole machin machine - A physical node, these can either be bare metal nodes, or virtual machines provided by a cloud. {% endcapture %} -{% include templates/task.md %} \ No newline at end of file +{% include templates/task.md %} diff --git a/docs/getting-started-guides/ubuntu/local.md b/docs/getting-started-guides/ubuntu/local.md index 854a34fa5d..7285b5915a 100644 --- a/docs/getting-started-guides/ubuntu/local.md +++ b/docs/getting-started-guides/ubuntu/local.md @@ -49,7 +49,7 @@ Now you're ready to install conjure-up and deploy Kubernetes. ``` -Note: During this set up phase cojure-up will ask you to "Setup an ipv6 subnet" with LXD, ensure you answer NO. ipv6 with Juju/LXD is currently unsupported. +Note: During this set up phase conjure-up will ask you to "Setup an ipv6 subnet" with LXD, ensure you answer NO. ipv6 with Juju/LXD is currently unsupported. ### Walkthrough diff --git a/docs/getting-started-guides/ubuntu/monitoring.md b/docs/getting-started-guides/ubuntu/monitoring.md index ee6b102f43..7ac97ea4e9 100644 --- a/docs/getting-started-guides/ubuntu/monitoring.md +++ b/docs/getting-started-guides/ubuntu/monitoring.md @@ -28,7 +28,7 @@ Configure Datadog with your api-key, found in the [Datadog dashboard](). Replace juju configure datadog api-key=XXXX ``` -Finally, attach `datadog` to all applications you wish to montior. For example, kubernetes-master, kubernetes-worker, and etcd: +Finally, attach `datadog` to all applications you wish to monitor. For example, kubernetes-master, kubernetes-worker, and etcd: ``` juju add-relation datadog kubernetes-worker @@ -74,7 +74,7 @@ juju add-relation kubernetes-worker filebeat ### Existing ElasticSearch cluster -In the event an ElasticSearch cluster already exists, the following can be used to connect and leverage it instead of creating a new, seprate, cluster. First deploy the two beats, filebeat and topbeat +In the event an ElasticSearch cluster already exists, the following can be used to connect and leverage it instead of creating a new, separate, cluster. First deploy the two beats, filebeat and topbeat ``` juju deploy filebeat @@ -122,7 +122,7 @@ juju add-relation nrpe kubeapi-load-balancer ### Existing install of Nagios -If you already have an exisiting Nagios installation, the `nrpe-external-master` charm can be used instead. This will allow you to supply configuration options that map your exisiting external Nagios installation to NRPE. Replace `255.255.255.255` with the IP address of the nagios instance. +If you already have an existing Nagios installation, the `nrpe-external-master` charm can be used instead. This will allow you to supply configuration options that map your existing external Nagios installation to NRPE. Replace `255.255.255.255` with the IP address of the nagios instance. ``` juju deploy nrpe-external-master diff --git a/docs/getting-started-guides/ubuntu/networking.md b/docs/getting-started-guides/ubuntu/networking.md index 54ca15c6ad..bb16491e2b 100644 --- a/docs/getting-started-guides/ubuntu/networking.md +++ b/docs/getting-started-guides/ubuntu/networking.md @@ -45,7 +45,7 @@ $ route | grep default | head -n 1 | awk {'print $8'} establishing networking setup with etcd. Ensure this network range is not active on layers 2/3 you're deploying to, as it will cause collisions and odd behavior if care is not taken when selecting a good CIDR range to assign to flannel. It's -also good practice to ensure you alot yourself a large enough IP range to support +also good practice to ensure you allot yourself a large enough IP range to support how large your cluster will potentially scale. Class A IP ranges with /24 are a good option. {% endcapture %} diff --git a/docs/getting-started-guides/ubuntu/storage.md b/docs/getting-started-guides/ubuntu/storage.md index 104dd588a4..9d193fa81b 100644 --- a/docs/getting-started-guides/ubuntu/storage.md +++ b/docs/getting-started-guides/ubuntu/storage.md @@ -83,8 +83,8 @@ test 50M RWO Available 10s ``` To consume these Persistent Volumes, your pods will need an associated -Persistant Volume Claim with them, and is outside the scope of this README. See the -[Persistant Volumes](http://kubernetes.io/docs/user-guide/persistent-volumes/) +Persistent Volume Claim with them, and is outside the scope of this README. See the +[Persistent Volumes](http://kubernetes.io/docs/user-guide/persistent-volumes/) documentation for more information. {% endcapture %} diff --git a/docs/getting-started-guides/ubuntu/troubleshooting.md b/docs/getting-started-guides/ubuntu/troubleshooting.md index 44b3a34346..b371e1af0c 100644 --- a/docs/getting-started-guides/ubuntu/troubleshooting.md +++ b/docs/getting-started-guides/ubuntu/troubleshooting.md @@ -42,9 +42,9 @@ Machine State DNS Inst id Series AZ In this example we can glean some information. The `Workload` column will show the status of a given service. The `Message` section will show you the health of a given service in the cluster. During deployment and maintenance these workload statuses will update to reflect what a given node is doing. For example the workload my say `maintenance` while message will describe this maintenance as `Installing docker`. -During normal oprtation the Workload should read `active`, the Agent column (which reflects what the Juju agent is doing) should read `idle`, and the messages will either say `Ready` or another descriptive term. `juju status --color` will also return all green results when a cluster's deployment is healthy. +During normal operation the Workload should read `active`, the Agent column (which reflects what the Juju agent is doing) should read `idle`, and the messages will either say `Ready` or another descriptive term. `juju status --color` will also return all green results when a cluster's deployment is healthy. -Status can become unweildly for large clusters, it is then recommended to check status on individual services, for example to check the status on the workers only: +Status can become unwieldy for large clusters, it is then recommended to check status on individual services, for example to check the status on the workers only: juju status kubernetes-workers From af34e80f7e60ebf4449b15329c90f17ca50a2940 Mon Sep 17 00:00:00 2001 From: Konstantinos Tsakalozos Date: Wed, 1 Mar 2017 14:58:06 +0200 Subject: [PATCH 07/58] Using it vs Juju Kubernetes --- docs/getting-started-guides/ubuntu/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/ubuntu/installation.md b/docs/getting-started-guides/ubuntu/installation.md index 41499b8111..9e3bdd8b2b 100644 --- a/docs/getting-started-guides/ubuntu/installation.md +++ b/docs/getting-started-guides/ubuntu/installation.md @@ -9,7 +9,7 @@ title: Setting up Kubernetes with Juju Ubuntu 16.04 introduced the [Canonical Distribution of Kubernetes](https://www.ubuntu.com/cloud/kubernetes), a pure upstream distribution of Kubernetes designed for production usage. This page shows you how to deploy a cluster. {% endcapture %} -Out of the box Juju Kubernetes comes with the following components on 9 machines: +Out of the box it comes with the following components on 9 machines: - Kubernetes (automated deployment, operations, and scaling) - Three node Kubernetes cluster with one master and two worker nodes. From 94f02ff83d94bd5123bd91717d602f66f19050e8 Mon Sep 17 00:00:00 2001 From: mlambert890b Date: Tue, 28 Feb 2017 11:01:00 -0800 Subject: [PATCH 08/58] Q1 update to k8s tech and service partner list New partners registered to K8s Partner Ecosystem sign-up form. Logo updates companion to this edit still WIP --- _includes/partner-script.js | 110 +++++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 2 deletions(-) diff --git a/_includes/partner-script.js b/_includes/partner-script.js index 4d0a117620..ad8b4ea61a 100644 --- a/_includes/partner-script.js +++ b/_includes/partner-script.js @@ -279,14 +279,120 @@ logo: 'harbur', link: 'https://harbur.io/', blurb: 'Based in Barcelona, Harbur is a consulting firm that helps companies deploy self-healing solutions empowered by Container technologies' - }, + }, { type: 1, name: 'Endocode', logo: 'endocode', link: 'https://endocode.com/kubernetes/', blurb: 'Endocode practices and teaches the open source way. Kernel to cluster - Dev to Ops. We offer Kubernetes trainings, services and support.' - } + }, + { + type: 0, + name: 'Spotinst', + logo: 'spotinst', + link: 'http://blog.spotinst.com/2016/08/04/elastigroup-kubernetes-minions-steroids/', + blurb: 'Spotinst uses a prediction algorithm in the Amazon EC2 Spot allowing k8s clusters to increase performance and lower the infrastructure costs' + }, + { + type: 1, + name: 'inwinSTACK', + logo: 'inwinstack', + link: 'http://www.inwinstack.com/index.php/en/solutions-en/', + blurb: 'Our container service leverages OpenStack-based infrastructure and its container orchestration engine Magnum to manage Kubernetes clusters.' + }, + { + type: 1, + name: 'Semantix', + logo: 'semantix', + link: 'http://www.semantix.com.br/', + blurb: 'Semantix is a company that works with data analytics and distributed systems. Kubernetes is used to orchestrate services for our customers.' + }, + { + type: 0, + name: 'ASM Technologies Limited', + logo: 'asmtech', + link: 'http://www.asmtech.com/', + blurb: 'http://www.asmtech.com/audience-channels/software_publisher/' + }, + { + type: 1, + name: 'InfraCloud Technologies', + logo: 'infracloud', + link: 'http://blog.infracloud.io/state-of-kubernetes/', + blurb: 'InfraCloud Technologies is software consultancy which provides services in Containers, Cloud and DevOps.' + }, + { + type: 0, + name: 'SignalFx', + logo: 'signalfx', + link: 'https://github.com/signalfx/integrations/tree/master/kubernetes', + blurb: 'Gain real-time visibility across metrics & the most intelligent alerts for todays architectures, including deep integration with Kubernetes' + }, + { + type: 0, + name: 'NATS', + logo: 'nats', + link: 'https://github.com/pires/kubernetes-nats-cluster', + blurb: 'NATS is a simple, secure, and scalable cloud native messaging system.' + }, + { + type: 1, + name: 'RX-M', + logo: 'rxm', + link: 'http://rx-m.com/training/kubernetes-training/', + blurb: 'Market neutral Kubernetes Dev, DevOps and Production training and consulting services' + }, + { + type: 1, + name: 'Emerging Technology Advisors', + logo: 'eta', + link: 'https://www.emergingtechnologyadvisors.com/services/kubernetes.html', + blurb: 'ETA helps companies architect, implement, and manage scalable applications using Kubernetes on on public or private cloud.' + }, + { + type: 0, + name: 'CloudPlex.io', + logo: 'cloudplex', + link: 'http://www.cloudplex.io', + blurb: 'CloudPlex enables operations teams to visually deploy, orchestrate, manage, and monitor infrastructure, applications, and services in public or private cloud.' + }, + { + type: 1, + name: 'Kumina', + logo: 'kumina', + link: 'https://www.kumina.nl/managed_kubernetes', + blurb: 'Kumina creates Kubernetes solutions on your choice of infrastructure with around-the-clock management and unlimited support.' + }, + { + type: 0, + name: 'CA Technologies', + logo: 'ca', + link: 'https://www.ca.com/us/products/application-deployment.html', + blurb: 'The RA CDE Kubernetes plugin enables an automated process for pushing changes to production by applying standard Kubernetes YAML files' + }, + { + type: 0, + name: 'CoScale', + logo: 'coscale', + link: 'http://www.coscale.com/blog/how-to-monitor-your-kubernetes-cluster', + blurb: 'Full stack monitoring of containers and microservices orchestrated by Kubernetes. Powered by anomaly detection to find problems faster.' + }, + { + type: 0, + name: 'Supergiant.io', + logo: 'supergiant', + link: 'https://supergiant.io/blog/supergiant-packing-algorithm-unique-save-money', + blurb: 'Supergiant autoscales hardware for Kubernetes. Open-source, it makes HA, distributed, stateful apps easy to deploy, manage, and scale.' + }, + { + type: 0, + name: 'Avi Networks', + logo: 'avinetworks', + link: 'https://kb.avinetworks.com/avi-vantage-openshift-installation-guide/', + blurb: 'Avis elastic application services fabric provides scalable, feature rich & integrated L4-7 networking for K8S environments.' + } + ] var isvContainer = document.getElementById('isvContainer') From 742af56ffe83f18af64ebcdb93fe6cc83e860564 Mon Sep 17 00:00:00 2001 From: mlambert890b Date: Wed, 1 Mar 2017 08:06:47 -0800 Subject: [PATCH 09/58] Logo file updates for new registrants Logos for new registrants --- images/square-logos/asm.png | Bin 0 -> 2716 bytes images/square-logos/avinetworks.png | Bin 0 -> 21259 bytes images/square-logos/ca.png | Bin 0 -> 17790 bytes images/square-logos/cloudplex.png | Bin 0 -> 16389 bytes images/square-logos/coscale.png | Bin 0 -> 74625 bytes images/square-logos/eta.png | Bin 0 -> 1237 bytes images/square-logos/infracloud.png | Bin 0 -> 11242 bytes images/square-logos/inwinstack.png | Bin 0 -> 12665 bytes images/square-logos/kumina.png | Bin 0 -> 25027 bytes images/square-logos/nats.png | Bin 0 -> 5985 bytes images/square-logos/puppet.png | Bin 11473 -> 2764 bytes images/square-logos/rxm.png | Bin 0 -> 11212 bytes images/square-logos/semantix.png | Bin 0 -> 8616 bytes images/square-logos/signalfx.png | Bin 0 -> 18629 bytes images/square-logos/spotinst.png | Bin 0 -> 86339 bytes images/square-logos/supergiant.png | Bin 0 -> 13850 bytes 16 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/square-logos/asm.png create mode 100644 images/square-logos/avinetworks.png create mode 100644 images/square-logos/ca.png create mode 100644 images/square-logos/cloudplex.png create mode 100644 images/square-logos/coscale.png create mode 100644 images/square-logos/eta.png create mode 100644 images/square-logos/infracloud.png create mode 100644 images/square-logos/inwinstack.png create mode 100644 images/square-logos/kumina.png create mode 100644 images/square-logos/nats.png create mode 100644 images/square-logos/rxm.png create mode 100644 images/square-logos/semantix.png create mode 100644 images/square-logos/signalfx.png create mode 100644 images/square-logos/spotinst.png create mode 100644 images/square-logos/supergiant.png diff --git a/images/square-logos/asm.png b/images/square-logos/asm.png new file mode 100644 index 0000000000000000000000000000000000000000..6e383ccb9937fa32625c5e5594a7f68a80a64c28 GIT binary patch literal 2716 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 literal 0 HcmV?d00001 diff --git a/images/square-logos/eta.png b/images/square-logos/eta.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9ab9d5cb3a8f5bd0b6363fa548c40c19cde760 GIT binary patch literal 1237 zcmeAS@N?(olHy`uVBq!ia0vp^OM!SA2OE&wf7Ih9km4-xh%9Dc;1&X5#!GkW{xC4G zw0pWZhE&{odv{~uV>gMmhqk>%E15pTFwWEvlQrB^$gbxo`y;0DE#DKqDO$?OY9Xv@ z0S8wyUgXSoJFKXx)4)3I!DqKw*0LQ3_x<^wFMiG#!CTAtY`MaBUzBg$HAnTNMQQ{Q7bKZT;F+MLYlR zN#%HG*PQ*!KXfYp@8VxlPCwQk-B`DBRnhIQocnC==Q?vtR<8eg`)bnPB|&}tXLrwk zuG??wUD9`2xZdvkL#9baZyUDDKC#riIPKGdyYpsGxxD@P?&zStEv4c|pL}!4>rUKd z@3*~qUqrq$$NHUN-a*f9@6zAaI@##HC!glUdGk*Pr|Ug^uyfLsyBn=eOupRLXYFhB zq5G@a^%&1nd!oPlpVVK~8lP^oU^Tzq1^1l$fBy(L{aEw%j1xz_tIYrV0*8{Di(gg+ zJm+2SFRQtK;-@1=SFZY0ecERG%D}=!OYKi|IzK(&So9R=dgtGAj1wzAou9RT`jdHe z>p(UJf3N#`+VS*sZO@rKyP9`e&X9R}?T}|>XVA5i2c4gL1@$%W`kDVZ@2TTDmDEk1 zes3LX%vblHoGSjYMpd&t^RB+T)-s?g52{-}S9q$h(`fq9&y|5b``rJ{J}&Zp{g*lF z&Y@FJcewsl35wIbHX9f$*98up?L1$z%SH3OG|SIaAGy<-{&Fk(QdfL;_~0AplQwbl zw;8X0>auHYeg7}I+@k1p5YS?wq<2qRj3;gS4zwy!-EuzXMYn%1VkC_s*Q=zOR~D5e zO$rDuEiu1S^FBW@WL&-K&qv3pyLJHeJXE(VQq^Ri`e|vSz+TUp-s@DJ zeyIEuQ}lGr`s`V!A61^&ZQ#phc-!V@UvBgHS|63C3*NtdqLg~MJkd=#HFWCi6XhMh z>XKG$&lTJH{@ayli;s!tPknLvg6F!L>V2=5M#UAc3Z3^yO37^Ft^7B)Lch)yJNl$- z|C}r7-0_o&Y}Q)4a?fcu;rHg5rM>li-BO$B=jBbpCrz4i^Ql+Rw<+qv6H|h(`iF6O ztn?}~|NVYN>*PsOri0=mzV(!9_`FF*mFv!=dcOF+t@>$5=*{S-uPTDCY+JG>X0`C~ z`Ry&Qr|$HyJehE5!X~Su@Am(6e=<28@ZQ~$qi)hA7-P3-~yPcEJ^ zHM{Z=_au|>Q&awW?DYBbd-18MOMK?5pJw~MJb9_lT?yyk2>#r>xoPbmV!@^Rs5-{A@FPr%fKl45i7vROs1 U>~nkwETW?(XjHHpt*kfZz_n-O0^ezU^DzMOQD* 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 E1EjDuO#lD@ literal 0 HcmV?d00001 diff --git a/images/square-logos/inwinstack.png b/images/square-logos/inwinstack.png new file mode 100644 index 0000000000000000000000000000000000000000..5a849db4da14abd9e3da40c7b21fde6da87f0b2f GIT binary patch literal 12665 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 Q{TGCsw6au literal 0 HcmV?d00001 diff --git a/images/square-logos/kumina.png b/images/square-logos/kumina.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31ca8ef53c4b12c94b351652151d883c42fdd GIT binary patch literal 25027 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 Y>EBYnfRUaJJcb977MB+*6w&kkKkjznG5`Po literal 0 HcmV?d00001 diff --git a/images/square-logos/nats.png b/images/square-logos/nats.png new file mode 100644 index 0000000000000000000000000000000000000000..4dcb1116831ef11d1b7189e2bff24188844dd3ff GIT binary patch literal 5985 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 literal 0 HcmV?d00001 diff --git a/images/square-logos/puppet.png b/images/square-logos/puppet.png index b07f03831565464f7128a93b323c948a91fde3ba..48f18705455fe7019cee6acc42d314c155056213 100644 GIT binary patch literal 2764 zcmbVO_fr%26a6GXTI3Wws?;F8D@~*uBnY90jv`e+nnVEul2eb97L%`Fp`(BhI+!3x zAbKJw?I=MYp-B})P>ewk_~!nF+nu*>_RY@zuroXJ(w!Y`g#@Jp0RTdFD5NWw%ei>K z&&#cyU8o5z@dn!4BEiAGSweeupQ{MOqP*h)fFJu85Rg|O!4>(ic4!;EIVc=xA5oz^ z@#RV~;qG48voTRoA<r<&$ zay=#aHaA+M!b{H*=Nej$-Y6z(TK2_C+`44^HW=CLAXwRlj>Rj$&Sj;~O2C;!p`a(k zMjNA+@T`$PjE?HTqpix~mHQ4+v!aX>qwTx3h`fJLsLxrrU-KP(y-W^Ej$o-idq2jKZib6^0*K)IiZQ3Qrfn?rD?tjR}h2fsisTh=#S^{J{RXm z&eFSQv}*LWB{MU4wNE5SSk`2tqo&HkIq8s{}Rk3-pFqp+I%fdwfD(ZX zv<4ogbnR=a=J{1hNnhCff?V~@sH~rkmI1PwRhfgA;#@oVl)#DWo_p%QpX8L{IPKG* z7m^cpCe$9fks1-#p4sI@6Un&{V18Wi@uHd8N-K|Ymap^ykt>f4sdY_jQ!{^+s)>oAR5a9?;VFLm zt^}rkQvWDv5WIlV*un@g@LTB1#v=n0cY{NT@e&0`=C)Q%~V1fI1|Z ze^!SqrK3A&1lbnBH(n^ZSGBs|p<3Lo9E`R3yS$vv2O^*zF`xlvX-5qzvM;&D`uL*X zm0#|VpZ+3QN`yoKhENIdhBaGo^C>yiEX?y3OURnqZ(C5r(fl?)xRLdO1-MuHfJ6Q)b-^sGy?f7Ornu@ z*m%Kugztwp7v0MZr3ON%P9k(^K*CpJ&&u%xE1!yI)k)J`gdbOsZTWT{L}g77yO)^A z;4*Ub`?%dW!ppQs<_O~CIgE}m^xHFVlep~EZjU6~u`bmqFphgt;_}!P%xDE1@S**a zeMv@h(~op7y>6(esCZ?V%qHHI_F!1BU7Bl8SB{C2a?SXAs-w><-#-qyB3Y?Wnq8s2 zzYU6>djK?WguEbrdaa?MfvdWEs}^o4ZK;Tl?=fxpo?wPLxaFygzOXwvVVZ$NM5aKz zKT#BJ|2j^;4<3N=1&YgUQ?Yd9>**;9V+~*Qj(BhBdDH;7{OQxN!u1O6j%)If!kE3r zddo1#cK*Dzulote&pNWBz)E^IBV}kN=;oW_4Nc)Oc%Cco>TXS=KQDh-mIr-Jx##HD?4Y@uT zWw9z`bcpf5;=A@FQ#yB43WGKtra|SU8X~Ts(f!x{#A4h0O+&4c|1lqlj*Rs6@%Bzi zpp!Q(mwJ8j`-acNe2wUB!u#CJAj|e9Z@piYjOlr|;XAFh9ZA?5OYh0kr2YIt@mD{5b!gK+X<8}+ z{Z5`X9v#ctIdHrDIwT|{x9-~VU~vlugQ>IFNUY-f>$nFhiEpZ-Yxi)dl}ZWa(J4PS zw;;g!T&YI+=Xe;ps}6vfvqMD`v_>! zl0?vT1%u^R7=b?CSvi<2$w7J9KwsbQb2vIlZO}=B1*7fFr3g#PIU6h1P{K}*?jLzp z$p3*SyMAnJ%<)J0aS@UkF!v1TFv{qGcBfDAZ~(ibKx#-yDH|aohgw1@*#C(juJY5H z!8zas3y4TdS)~QEM`+;vAxxRyN#da9g$Yp`;Rf12p%UWhP0jqWBP=Zh8~mnVkiI?k z%GB|+Xcc76&u^=;uC%oD6`U|fSno!#!-RHU$AWu{FV>Ht(deJo{|UtvU-{qIWNQa? zEn4_An5E*^A40s;5&qLtmHKCQe}2MuIfZUdwImjoP7Db&*kNV_y!J1XmUp8tdoFSn zsW?qBctl#iEr-)=(ZR$OHag@^u)H+IunLPNRlz-ci^`a(k1Ipwkl9$-@I4xRn)B7v zF!dA(wJ@?qBZgfUt6se*vpBpsr50$m{dmTm0V7~_lKRsXBy;9R()0?V96_@`vT*R3Dg^6ccqV)DM?U{Hz( z-4&c_f4ePOulS9-Xp1TU+pbAXeCvZ#7t1s#D`($&IA)-IvBM9y^F5rcJgg1Vg;yC_ zGa;(@+vGM4H*=bJ_aw}t3qzSav+qz=K}K7x4qbw~x(Pic??fLN>`JaLJS{+1+3ZYz zZwo$S7-_O)t#8)Gvuq>$ej@P4z>g!7C7K_T!w$c<9v)Cq{R_I!FbH%O;aVLlyEi3V g6CnKG!)0(!T&Vlhbxpit|G%cv&c+d0XB}|s|Bp}z;s5{u literal 11473 zcmc(l)n63c*TsjDksRs)2?<4pMga-Q0R-t9x)czQ?(P!AL696`2&ti@yBnlLx?`we z=+2klU-4d?b8h$NTR^LR`c=Adpt?NCy#eqkHRbfzy$ap zE3NI7j!E})GoH*iX!At`q?MI5S`Nf>>F@V4%wuU0_ewGSfMD~IVq-yk-gy74+hpbM z`eOm<{H08uLc|@#|1x_THw4SPy#+|E?-DoJlO#F0H z`$DfGhwMHGOOZVya%~&K&{MK$!xYxO#SZ{Pl3uWgW@2yApAl1;DYtJ;ydIN;!PaGF zoO(3D1U*wi^L%3TeR9;?A!VE^>7gKOsFoD4V|B`;khW(=k6hCA_r1tSIq@`onDq3$kyoUlw*FGG>-nsT;Ku6B zTTvLP>MTvZESTN@fFPOUyRhL&vG zRZ0NeC{Jr>V?%yPsZzn#AwZ_In$?rkEL=(gXF(M_6gCpcrwGOg(&mW7xoI*>(PB{q z~n0N23iT#prwj9zZy`@Y_%bd!Zs0PdEGM0BmxW-#9bgv`{3NwNQ}aNf`#s19;E!S96p^}H ze7Z72z4Hwj-_}~Qo$6BlE!}1&VamRbtnW-Qmt#_%C4U+Ds#FL$5%@neC_^NB@m_gH zM@7qrA(ASS>P-K=xK(osp|qbwE?Zpx zxnUA4=SR5-V7M)?BJaN-vTu341uC2(D>&B(y5Gi+UZ{4CU=d9_Ri>ik}yx-fq#-^ zk^VySg)4RmNW46|zFV}?%Y9ffCia(&MwFwEJo@l> zf89J$n>D6k0T0ljHi;cZ{_Cd*y~rFX)W2XuT@j~9dmovdJwp^u{wG!Iq!P(tcqfr7 zkvM34*?z~%E9_I!_BOG9=j;q6GdUS&AJBFrjP-29lEI=1Hnqs_^TBhvp9Knasl~wg zt#s_{?T|jHCqF~86Lw2WTj*fVF$k+|ga3kB&7?6&dR#Sm1&(&B>us~=T}MY2-D5TX zhU-jDLw9XhBi}kKxSXUp(%(y&9_Z=wpi=;520lI=A3^!PGp_BrBQIkUl{`a%uXdy=lugNIbYDC4jY!IQeik2%!ar8~Z6LUHt zqt=bcg!q|_Ee#|3l%sz?-|f#-tZz5ow;t_odkx|Txpc@C_9vH>vhOrnFY2qA2J}=S zgkkUg&A)TNEc)M8jf&UZ$dq-}SaTVdfGMMqpPYns&Rd!gcRGA#tn}04xRIic(ijo| zB8A{8g*;nZ5Os$sR|jGNnS4gBd&@t^tFq=%!n2Q!dh=qOd-$ocjGRVWGv0q7A?`c; zhG@fXTNYbP>0HdnMFgGtxi_-}f}N-JJH3&~NKge#`TZX;_MSx^nT1 z(Z=?m?Ud8Bb&a#gV&BW^;_FdbZ%PdsR$Fq_qVb+FtfwpF0@NG;XnU6aI*qbGI8AbNW-jL9jOPM+ls)YHRBm zis1u!(Wa|oKUabG!7j?5)6m>>)U~nO!k|MRyw#@h{Tu%(+kxo;xSnd7r=f^TBBF}d! z0wheLdx3eU(I*^<=1a+sxFY;Ae-9iNY4Lj;UrTjr@<8i*CdhbE+864tR_DU&@Rbnk z%)pb#g_pfpy~_<0R3I4ouiLBKU3df=V!?ahAfV}>v%7XZ3(fVl6 zxPJ0Xq;2`Mh@fY+%U`ezgB{lH_-ug>I`2+XW3Q|0Mhr);eJ{n-j7rvRZO$LmyCowz zV53&Q?gA*_5VG&Da2)MyGG6?+kQW?&f>&2n+aVog^W`h6=5;8k-Sxk}dBmen1T157 z)K7{EJp8V*5%vbnz5P!@Vz}sX0cCm|JDFnd5+ZcJktm%I zOpt}91%~y1rvIfy!i9KCCQH%W)J_30v*vKaWYlHbAjh;P$F-><$~xT}MB|kU8_TjQ zMa2ws{-f2_=4cd+u$AwlkXD*rnIURhxSXTX^>f;386Jj~h5_dVh_>NRkf7`$j(6Vn z07@oGb?renmC$_ejtC@&vXm5PbT}(ax%p4d?@{B{lB3c@t5F|^rA~NVe3aegk$mmq z=`kn%$Sd4#0d2eG0E-^^@*61|8=K#RVP2hT%_U*^?AGbfN!O{hYw8hkt9^7FdEoJ+ zE=lRbaF?TzbK$zk6o_~x!AJ|7=YWkY0#wkzr1NKG2{&c5-A zp!=v$+3UHv13R%2m1kAut$r(FDq7ZJnNyj84x^LBI>SB|cb4B6kwxsYi3%20cDGly zb#l1_EU$1m2BUi&?oZ_&$f9szu}q{5SJ!$D3) zSVMnZg%jG3RCxQ8X46F9MzWloej3#oxN~$_#D&aE;5xV>FDalHF?+`nl?g6ebo^rWoT=P zdHhsi4?8net1b1K(KkN^EGqouCZfvyFv!si;ny>t;G#rY^WI%-(;md9Fv*IhyxjMB zxb~4gR>UN|NGNnxQ(wQ?@_kFK@QRQl4V@b0>ttpc0SYva2zvUDv*BC&InvEm#M%Jk zrg(Q!AT4D$1Q;w+Dz0GVniVGHlsQcxwdB>-(*6tbOO^c-MPPl<+|m@IhBg5b3<<&pF%=BQ`Iv8jG7rhTI`wHJ zu>j?jYi}apJ9&4Ha}fcHWyLpotf`u>xPc(wlIT)JT$Mc-O+XW&N~L&rvDg;H*L$+Q zmPOD3C;bzkJ-NNP`#3{JKEi1^24$WiOb`CK<6&c`zfQ^D#1C3p8sC-W$mJji2aGKk z`4?8d9ILe3QT}6B(mj}{qSxAdq+TdIhSQO4&C%QUQ*OSlHraK=c~y=ObeI;<=WHWA z&(D+K#f2(I!pzR#vrLp`2gS&X{aZN!6g!T33)2S;b~l+v^%X|=!w=Ajr&=yb$opU{ zzzP7a*$8+2_14$_jp`ql=&Kgku%nK74FY~@D$7MiTYY}|LlI@YN(u480U1f9^UQ@5 zP_;0V16U9zoJI(#b|pG8mi`r~KYn*-U4^CGJ%1t;XWoXc*Nd8mFdYMk0LceRBt(;5o={IkYrnytwp1u^Ay^L~M|#NtL12zyw&zi=nvGr%8Oz_Swmusb zYdP^)9CJx`mYeuz^d|9p46K*a%@_}_U6^gaO=sZqD+24xaVFd)EheTgAiz3BAFE57 z?3?8hn)4y_RxV5vN+q}=Wc3A^!_Q0!jL{5tvlR_TM>qFSWHA{{Q1-ps6~JZ&wu>xj zWIbuNhXe&-hXetcKUHXJI5Gx*{GwoGCk!KmLZKt|kf;=pRLvpegkKt{#?=2#;N;is zFA&qG_?1n(;0;XU3O0RKV-Y95p)X%x05KQh$>ydY2bFA)+8$@KhD>`EQ<&z#7i?M} z^K8tE+W?$&SKbgdrjYb>qI6$o7Ul%1FULql=R@_2g}{cBqrhB_)sSFyypV>F4HuZr zwy06^mcK5PlKjNPpYEz1mVPW61}ZG$k*){dn3&x8u01M3q~f?o{Q>-7@orCd?Z|?U z^0?q(pKdyUL8?xO0naj~7#A1TMTu-D^}_0zCxf(q%=GpvX!fGj_Ig5$ouICmZA*)b zkGrJ~#u8_jSsJa&;6&hI<%Pp39Ea zRHDsR#EQssq2hja5P3)f7$c_Y?l$W=Jv{2ViQKgMTRU4>v$dP*Iv9v!c8l3cGok3H zna=!Pkh$;_u`G-ce9BC*dG;?b{hGgA=XkCLFwBN&amfA|AiK)HGow|T?(lKWx;KMuR4FSS^#rsy==78V<^TYh%fy(TlEkXijvuAKaeKMF+2-hnbk4W~%i4r38_zwrH{qLoo3I~3ZX#Jk@Xa8ewZM8?b)cpsB( zDB*up2V~X&N=;A!XiS|0?r`uuPSg2C6F4M(7aZJPapnhpnz}t^%-HwKW+WL^V-J@~U{|m&5U;%~Tgp;#Kx038-grEckSXa8WI>uBOem#oF2W)9!)?8s4MPKrEgtFo8Pu z%a%Di6ZawIgPN9aP)&8cPPbFqwdItsN6M3^B|`)BWAE5?H*jW5dycify+TIj#IV+58O-$W!xSMv zU6a236s~y?uI@94AGSG(k3|6r&PvQlkb>^WdTRXc{}hcxmUX?VE{;2>cYel(he;V0 z{Yr@sMLsG%(aw*O1E_SQkcp(`*kjT5joK@FBCxcy30U%+4Y6J&{cK z=z+?w?6}JXYc4HqucWe}XL$-ddVDfq?}Frw2}pVuvJi;w$if@4Vxm9q;H!oQ-&eev z9`@ApW}SNpNPvc2b0K(yFRJ${U>&m+)?X|wErI;IgM8-i*^$LB3JbvyzU>M5h_%U{ zo&Zxm>&`!QxeYNIBUjxg&PEQusytqA(dTD(9q(-1RrB66=gVr*_A(;
gAYCP6? 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 literal 0 HcmV?d00001 diff --git a/images/square-logos/signalfx.png b/images/square-logos/signalfx.png new file mode 100644 index 0000000000000000000000000000000000000000..590a59904f98155bf6d3705e31bb7100fcb175e5 GIT binary patch literal 18629 zcmd3uMOz$9l!X&4xVuZ^?(Xi;(81l^8;795rEzyBxCVE32<}es;5y$d=0D7$s#bSZ zRp)u1b5B*Inu;t6A|c|JFJDmP<)ncBttJ1BRCu`m=AI$B)h}PjzsO68YkC=8$O zpM!1!|HPS74bI}H9_04Nf5m3`|Bs9DO-^KgeVKYkX0d+kc<1%(|@&ysbHJ5QQJF*6=0_4rjtx8zWp$) z)rO4wT6%v>JPH1IZ{-bdNN};d>`cl!oz!P!;K#iq z16wp?uZXMl&t*!@b$|g}(a$bzcIR>yYrxx#|oae_<66s9E(71#o$12|2`eqkm%Nrtp+hQ&-4H#os&O$SxvNq6+_6AKlSi$ zqo3|;fEwL8Lf5x5w?ckjh~abBV5dCv*?X@QOssX#6@cG(Z_5v_1dO{y-R3v&vahZo z5BHhlpIhtEOf#}VWa03l79zIpaNUu+m1fsaey(ET1eq+PJoK1AiKyBc%PDnf8Tf8D>dpIMO<=CU(AB8@?@ho-+XG~(I>zo4)qNu60nPmYbZF{~U^XO{frMf?66Z{TE`W|n4CU*Q( zo#8@F5_@^;-c{UP!>>zJ-;vFHpCr6q2Sm%jj|!9Sq`daSD)`9?)Y+Pt%m3UnWxsO1 zR6$ZHsi~rOB*}ppP`>RN7uoM&AD($g2ov>M>e2 zH8vR^2=?x`kB2Wt+Nr_x;6n4w65kpIj9BkcfP7p&LSLJtooW{?kgv5FcAA&xy$OI3C zL{%=f7ZSb{>?Eg2 zh$`=%k8uVKf`tOy6O=+DbGA9GuEoUQsOn$I7yeuSdaCAH^e5kZ`}gzLF+P%Xln+to z6lYY^Pb?@-O(?OMpC2Z&GgdHAc<(wrDL=Z%B457BULfp9?`Z3qK8u8!R=^S{truc* zRXrYXQkF^4jg#q_uC#<*`8t?={CG@_*Awsvu@bMGO(Qe>cP)#efDk8BNeM|0M;9&( zo69r^`Ce>m&oS7ean*Xc2%VmY>KqCAf$?QOb}K;Ja!@B?EJ&BUi9kr9fn;YmW*}q@ z9jnip5=8KNtxZ7S%(tW~ zC0&|aJUWDmOPkEl(mx47Z5XLAP0iVL$j*~6rgG^8KN)+ms{^vdDlV2YU|62Z*xSatBLr4+OQUw2i=(1cmLtI(aWCXi$((47{ zBS;lun=^FB`yy*U*^+Lz7#~$Xq+XRva_M<&9^gtS_9}DC@YV|p=rfOck$n^Ux~j zi*9$~M&tSsl%l2$(bVRz1m|qAC7plK{nQVsg{lyYG}|38wJCB-u;}CXhRJxa z=&j^ciw5(CT!4flZ15Jj&>_il(JVMce7mEK1oKyHKE=Ko;>~+OuTP7It#vJ63dODT z;mix9>m(gNT4i*v2G`L_l9Q@|3Ma-o=T3kL{m^WIY-2rGnA!~Kdqa7Xb^+k;;mJ-H zwXGmWB}h!C%IyZ`(K3qkJ3p6_V8hki`D*wgC zLwxgg--k4v)_dxxfS}pB8-01tc9_UiI%m9*;HI>4(8%X^98yIEb`#21EH*eVsYcuK!>T_jl!S4-mmZB%&zn|ON|>0l$i6JtL%N8za<%3+1EWD6YtYlJS` z&P&67et_|+cvJ?e%Zt#D(I3oO&zLYo7h9Nfnic}iQBHkRd)83Wb0LB~-V~=_7Kkgc zm)}N9aj4jfrYP>}-nfeton@YjKb^R=nvNQw2Y`VMSvKQ7?w9)V6>0#c%<(<}_Z4UG z#g>Y}J6LIAs7_KLx0nFU4_AK&n6+08)4-oKt{Bl zdeZAxi}GQC?9gACn?QcLW_)a~%3k+k(~w#9d}I`|ndNS;c~5M*vY4K@n*o;NuoR8w z^@i@WeHaO>1t74OzE}y2mvN*22wA2n4ERpT9V2li%~LIU9V9 zGpWy>Ql|A59{hgEQzEDEwS-kr|DnZV@AuahhuNw<_-_Bc0s9Tm#G-f4!IVQIU5T!o zrbKsfBfmI8^gZdLnUR3USer*VC31ba!6~3dgZTttXp<^*ZFH&+vmx2kyqM`r?uy;>$ zU;932B#RGV0VF>p8tZZ!jt$Gx)Y*sl6@=zs^8!@at^4Zy7=UV%r`4ej0&U&0JKEYc z@|6iRCe)*A-U{D?X6N;mnlQ1Wr6I0l9->Hsatt`6a1c^O$jouQLtSXLJ@$>VcLe%2 zcGd`OQt~gSv$diaMf4YdK~^Y8o`vhiUQ4|Ra~@^xXA?QOl`$N`BzZ;pTxoTJ$!h*WvLlm9d^C{Qrb>~6%;35xMXLdlunHgA&&5*+pk%>eby0&P+}RP%l!-n@C3t$u zDgNT^AhGA`_?3;$A8eb%L6}UU6&J+%`rgLt61UYHl7?fnCK3WB`^O~J`AFaHg)_z9 z!|6d(Sav$7urr|fO7OZ5kG-MHoRg;Q02<)Uq$1Ro-krbvm`&zUFp^{)d^`SUh)Y9O z%uv=J2B}+~!�fB|U&TftOfq~!l00F>> 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�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 Date: Thu, 2 Mar 2017 09:23:54 +0800 Subject: [PATCH 10/58] The attribute [allowfullscree] must have a value Signed-off-by: yupengzte --- case-studies/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/case-studies/index.html b/case-studies/index.html index e4e15111c5..cf96a049d5 100644 --- a/case-studies/index.html +++ b/case-studies/index.html @@ -94,6 +94,6 @@ cid: caseStudies
- +
From 8f30034cc256d74cf647f2c8f036cb13a8dc1639 Mon Sep 17 00:00:00 2001 From: Viet Hung Nguyen Date: Mon, 27 Feb 2017 12:09:27 +0700 Subject: [PATCH 11/58] Remove newline before passing to base64 --- .../distribute-credentials-secure.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tasks/configure-pod-container/distribute-credentials-secure.md b/docs/tasks/configure-pod-container/distribute-credentials-secure.md index 69d5d37890..923d7df6c6 100644 --- a/docs/tasks/configure-pod-container/distribute-credentials-secure.md +++ b/docs/tasks/configure-pod-container/distribute-credentials-secure.md @@ -22,11 +22,11 @@ Suppose you want to have two pieces of secret data: a username `my-app` and a pa convert your username and password to a base-64 representation. Here's a Linux example: - echo 'my-app' | base64 - echo '39528$vdg7Jb' | base64 + echo -n 'my-app' | base64 + echo -n '39528$vdg7Jb' | base64 -The output shows that the base-64 representation of your username is `bXktYXBwCg==`, -and the base-64 representation of your password is `Mzk1MjgkdmRnN0piCg==`. +The output shows that the base-64 representation of your username is `bXktYXBw`, +and the base-64 representation of your password is `Mzk1MjgkdmRnN0pi`. ## Creating a Secret From e1212ea63baaa73b27523a8f5d7007f512fa92c0 Mon Sep 17 00:00:00 2001 From: Hung Nguyen Viet Date: Mon, 27 Feb 2017 15:33:56 +0700 Subject: [PATCH 12/58] Use single quote to avoid string interpolation, update output --- .../distribute-credentials-secure.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tasks/configure-pod-container/distribute-credentials-secure.md b/docs/tasks/configure-pod-container/distribute-credentials-secure.md index 923d7df6c6..1ccb48e344 100644 --- a/docs/tasks/configure-pod-container/distribute-credentials-secure.md +++ b/docs/tasks/configure-pod-container/distribute-credentials-secure.md @@ -42,7 +42,7 @@ username and password: **Note:** If you want to skip the Base64 encoding step, you can create a Secret by using the `kubectl create secret` command: - kubectl create secret generic test-secret --from-literal=username="my-app",password="39528$vdg7Jb" + kubectl create secret generic test-secret --from-literal=username='my-app',password='39528$vdg7Jb' 1. View information about the Secret: @@ -69,8 +69,8 @@ username and password: Data ==== - password: 13 bytes - username: 7 bytes + password: 12 bytes + username: 6 bytes ## Creating a Pod that has access to the secret data through a Volume From f6bb5e6d44f6ec79976915d86407f03fdaf38726 Mon Sep 17 00:00:00 2001 From: Hung Nguyen Viet Date: Mon, 27 Feb 2017 15:34:42 +0700 Subject: [PATCH 13/58] Update command as files contain no newline --- .../configure-pod-container/distribute-credentials-secure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/configure-pod-container/distribute-credentials-secure.md b/docs/tasks/configure-pod-container/distribute-credentials-secure.md index 1ccb48e344..2deaaa5f97 100644 --- a/docs/tasks/configure-pod-container/distribute-credentials-secure.md +++ b/docs/tasks/configure-pod-container/distribute-credentials-secure.md @@ -112,7 +112,7 @@ is exposed: 1. In your shell, display the contents of the `username` and `password` files: - root@secret-test-pod:/etc/secret-volume# cat username password + root@secret-test-pod:/etc/secret-volume# cat username; echo; cat password; echo The output is your username and password: From e6ec869ca74d96eff79b8a4f3507c16268032ce0 Mon Sep 17 00:00:00 2001 From: Hung Nguyen Viet Date: Mon, 27 Feb 2017 15:38:02 +0700 Subject: [PATCH 14/58] Remove all dead links, use just filename As user can guess that it is file copied from the shown content --- .../distribute-credentials-secure.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tasks/configure-pod-container/distribute-credentials-secure.md b/docs/tasks/configure-pod-container/distribute-credentials-secure.md index 2deaaa5f97..1a0e25e46e 100644 --- a/docs/tasks/configure-pod-container/distribute-credentials-secure.md +++ b/docs/tasks/configure-pod-container/distribute-credentials-secure.md @@ -37,7 +37,7 @@ username and password: 1. Create the Secret - kubectl create -f http://k8s.io/docs/tasks/administer-cluster/secret.yaml + kubectl create -f secret.yaml **Note:** If you want to skip the Base64 encoding step, you can create a Secret by using the `kubectl create secret` command: @@ -80,7 +80,7 @@ Here is a configuration file you can use to create a Pod: 1. Create the Pod: - kubectl create -f http://k8s.io/docs/tasks/administer-cluster/secret-pod.yaml + kubectl create -f secret-pod.yaml 1. Verify that your Pod is running: @@ -127,7 +127,7 @@ Here is a configuration file you can use to create a Pod: 1. Create the Pod: - kubectl create -f http://k8s.io/docs/tasks/administer-cluster/secret-envars-pod.yaml + kubectl create -f secret-envars-pod.yaml 1. Verify that your Pod is running: From 0c6b5c6c3f8b7986308802add717882145cc14cf Mon Sep 17 00:00:00 2001 From: Jeffrey Regan Date: Mon, 27 Feb 2017 13:57:50 -0800 Subject: [PATCH 15/58] Fix link to dev guide. --- docs/user-guide/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index 0d4e77a97d..1f045cb7e0 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -8,7 +8,7 @@ The Kubernetes **Guides** can help you work with various aspects of the Kubernet * The Kubernetes [User Guide](#user-guide-internal) can help you run programs and services on an existing Kubernetes cluster. * The [Cluster Admin Guide](/docs/admin/) can help you set up and administrate your own Kubernetes cluster. -* The [Developer Guide](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel) can help you either write code to directly access the Kubernetes API, or to contribute directly to the Kubernetes project. +* The [Developer Guide] can help you either write code to directly access the Kubernetes API, or to contribute directly to the Kubernetes project. ##
Kubernetes User Guide @@ -86,3 +86,5 @@ Pods and containers * [Configuration Best Practices and Tips](/docs/user-guide/config-best-practices/) * [Assign pods to selected nodes](/docs/user-guide/node-selection/) * [Perform a rolling update on a running group of pods](/docs/user-guide/update-demo/) + +[Developer Guide]: https://github.com/kubernetes/community/blob/master/contributors/devel/README.md From b86ebf19915265be4322ae98ba17bcea78311d41 Mon Sep 17 00:00:00 2001 From: houjun Date: Fri, 24 Feb 2017 14:53:02 +0800 Subject: [PATCH 16/58] Add --leader-elect=false Second scheduler could not start without disabling leader-elect. --- docs/admin/multiple-schedulers/my-scheduler.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/multiple-schedulers/my-scheduler.yaml b/docs/admin/multiple-schedulers/my-scheduler.yaml index 0a140deead..aa7cc1baef 100644 --- a/docs/admin/multiple-schedulers/my-scheduler.yaml +++ b/docs/admin/multiple-schedulers/my-scheduler.yaml @@ -17,7 +17,7 @@ spec: spec: containers: - command: [/usr/local/bin/kube-scheduler, --address=0.0.0.0, - --scheduler-name=my-scheduler] + --scheduler-name=my-scheduler, --leader-elect=false] image: gcr.io/my-gcp-project/my-kube-scheduler:1.0 livenessProbe: httpGet: From 7dcfaf0b87be75b8c9c138df475e15d662fbdce6 Mon Sep 17 00:00:00 2001 From: jianglingxia Date: Mon, 27 Feb 2017 16:33:50 +0800 Subject: [PATCH 17/58] cluster-components-could be running could be doing sth --- docs/admin/cluster-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/cluster-components.md b/docs/admin/cluster-components.md index a3d4f37779..1f3404d6e4 100644 --- a/docs/admin/cluster-components.md +++ b/docs/admin/cluster-components.md @@ -15,7 +15,7 @@ cluster (e.g., scheduling), and detecting and responding to cluster events (e.g., starting up a new pod when a replication controller's 'replicas' field is unsatisfied). -Master components could in theory be run on any node in the cluster. However, +Master components could in theory be running on any node in the cluster. However, for simplicity, current set up scripts typically start all master components on the same VM, and does not run user containers on this VM. See [high-availability.md](/docs/admin/high-availability) for an example multi-master-VM setup. From 40bf97accf52ea183e3cae2264152d0bd64e7090 Mon Sep 17 00:00:00 2001 From: jianglingxia Date: Tue, 28 Feb 2017 09:50:01 +0800 Subject: [PATCH 18/58] update cluster-components.md In theory,Master components can be run.... --- docs/admin/cluster-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/cluster-components.md b/docs/admin/cluster-components.md index 1f3404d6e4..878cb443a2 100644 --- a/docs/admin/cluster-components.md +++ b/docs/admin/cluster-components.md @@ -15,7 +15,7 @@ cluster (e.g., scheduling), and detecting and responding to cluster events (e.g., starting up a new pod when a replication controller's 'replicas' field is unsatisfied). -Master components could in theory be running on any node in the cluster. However, +In theory,Master components can be run on any node in the cluster. However, for simplicity, current set up scripts typically start all master components on the same VM, and does not run user containers on this VM. See [high-availability.md](/docs/admin/high-availability) for an example multi-master-VM setup. From 1abe7577cc47e72ae181799a5a1fcf64b34a25cc Mon Sep 17 00:00:00 2001 From: jianglingxia Date: Wed, 1 Mar 2017 10:21:57 +0800 Subject: [PATCH 19/58] update cluster-components--add a space add a space after the comma: "In theory, Master components..." --- docs/admin/cluster-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/cluster-components.md b/docs/admin/cluster-components.md index 878cb443a2..280b9b1f2c 100644 --- a/docs/admin/cluster-components.md +++ b/docs/admin/cluster-components.md @@ -15,7 +15,7 @@ cluster (e.g., scheduling), and detecting and responding to cluster events (e.g., starting up a new pod when a replication controller's 'replicas' field is unsatisfied). -In theory,Master components can be run on any node in the cluster. However, +In theory, Master components can be run on any node in the cluster. However, for simplicity, current set up scripts typically start all master components on the same VM, and does not run user containers on this VM. See [high-availability.md](/docs/admin/high-availability) for an example multi-master-VM setup. From a380fec339ec4c25a6738425d04a73bdcd25584d Mon Sep 17 00:00:00 2001 From: jianglingxia Date: Thu, 2 Mar 2017 16:07:41 +0800 Subject: [PATCH 20/58] Highlighted command --kubectl describe In web page ,there is no space ,need some empty space,thanks! --- docs/user-guide/kubectl/kubectl_describe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/kubectl/kubectl_describe.md b/docs/user-guide/kubectl/kubectl_describe.md index a5fd703d73..6db3c2d9b7 100644 --- a/docs/user-guide/kubectl/kubectl_describe.md +++ b/docs/user-guide/kubectl/kubectl_describe.md @@ -10,9 +10,9 @@ Show details of a specific resource or group of resources Show details of a specific resource or group of resources. This command joins many API calls together to form a detailed description of a given resource or group of resources. - +``` $ kubectl describe TYPE NAME_PREFIX - +``` will first check for an exact match on TYPE and NAME PREFIX. If no such resource exists, it will output details for every resource that has a name prefixed with NAME PREFIX. Valid resource types include: From abe3171d0a07f83bb7d6369c77a2d5898e08c874 Mon Sep 17 00:00:00 2001 From: jianglingxia Date: Thu, 2 Mar 2017 16:08:40 +0800 Subject: [PATCH 21/58] Revert "Highlighted command --kubectl describe" This reverts commit a70d0a3e3537c3f91b197b23f949e1e506c951d1. --- docs/user-guide/kubectl/kubectl_describe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/kubectl/kubectl_describe.md b/docs/user-guide/kubectl/kubectl_describe.md index 6db3c2d9b7..a5fd703d73 100644 --- a/docs/user-guide/kubectl/kubectl_describe.md +++ b/docs/user-guide/kubectl/kubectl_describe.md @@ -10,9 +10,9 @@ Show details of a specific resource or group of resources Show details of a specific resource or group of resources. This command joins many API calls together to form a detailed description of a given resource or group of resources. -``` + $ kubectl describe TYPE NAME_PREFIX -``` + will first check for an exact match on TYPE and NAME PREFIX. If no such resource exists, it will output details for every resource that has a name prefixed with NAME PREFIX. Valid resource types include: From 6a35189e21bc70e0b012f6fafb084039f5fc0157 Mon Sep 17 00:00:00 2001 From: huzhifeng Date: Tue, 28 Feb 2017 17:29:55 +0800 Subject: [PATCH 22/58] Add example show how to configure proxy for kube --- docs/admin/kubeadm.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/admin/kubeadm.md b/docs/admin/kubeadm.md index 2145b75310..fe24c3e8a8 100644 --- a/docs/admin/kubeadm.md +++ b/docs/admin/kubeadm.md @@ -260,6 +260,22 @@ These environment variables are a short-term solution, eventually they will be i If you want to use kubeadm with an http proxy, you may need to configure it to support http_proxy, https_proxy, or no_proxy. +For example, your kube master node ip is 10.18.17.16, and you have a proxy support both http/https on 10.18.17.16 port 8080 + +You can using following command + +```bash +export PROXY_PORT=8080 +export PROXY_IP=10.18.17.16 +export http_proxy=http://$PROXY_IP:$PROXY_PORT +export HTTP_PROXY=$http_proxy +export https_proxy=$http_proxy +export HTTPS_PROXY=$http_proxy +export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,example.com,10.18.17.16" +``` + +Remember change ```proxy_ip``` and add kube master node ip to ```no_proxy``` + ## Releases and release notes If you already have kubeadm installed and want to upgrade, run `apt-get update && apt-get upgrade` or `yum update` to get the latest version of kubeadm. From 4cba37750b1ec9389b787249a75eb7450f311b6a Mon Sep 17 00:00:00 2001 From: huzhifeng Date: Fri, 3 Mar 2017 12:25:31 +0800 Subject: [PATCH 23/58] Revision as the suggestion describe --- docs/admin/kubeadm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/admin/kubeadm.md b/docs/admin/kubeadm.md index fe24c3e8a8..787b59bdbe 100644 --- a/docs/admin/kubeadm.md +++ b/docs/admin/kubeadm.md @@ -260,7 +260,7 @@ These environment variables are a short-term solution, eventually they will be i If you want to use kubeadm with an http proxy, you may need to configure it to support http_proxy, https_proxy, or no_proxy. -For example, your kube master node ip is 10.18.17.16, and you have a proxy support both http/https on 10.18.17.16 port 8080 +For example, if your kube master node IP address is 10.18.17.16 and you have proxy support both http/https on 10.18.17.16 port 8080, you can use the following command: You can using following command @@ -274,7 +274,7 @@ export HTTPS_PROXY=$http_proxy export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,example.com,10.18.17.16" ``` -Remember change ```proxy_ip``` and add kube master node ip to ```no_proxy``` +Remember to change ```proxy_ip``` and add a kube master node IP address to ```no_proxy```. ## Releases and release notes From c62eb411cc0112a7dac1bc92e67cd0585d39955a Mon Sep 17 00:00:00 2001 From: Xiuyu Li Date: Wed, 1 Mar 2017 17:43:00 +0800 Subject: [PATCH 24/58] move ha-master-gce.png to images/docs Signed-off-by: Xiuyu Li --- docs/admin/ha-master-gce.md | 2 +- {docs/admin => images/docs}/ha-master-gce.png | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename {docs/admin => images/docs}/ha-master-gce.png (100%) diff --git a/docs/admin/ha-master-gce.md b/docs/admin/ha-master-gce.md index 025035cca7..22e177980f 100644 --- a/docs/admin/ha-master-gce.md +++ b/docs/admin/ha-master-gce.md @@ -107,7 +107,7 @@ This operation may be sped up by migrating etcd data directory, as described [he ## Implementation notes -![](ha-master-gce.png) +![ha-master-gce](http://kubernetes.io/images/docs/ha-master-gce.png) ### Overview diff --git a/docs/admin/ha-master-gce.png b/images/docs/ha-master-gce.png similarity index 100% rename from docs/admin/ha-master-gce.png rename to images/docs/ha-master-gce.png From e610c89cc478736201b2a6c3c9a2ed5a4164554f Mon Sep 17 00:00:00 2001 From: Xiuyu Li Date: Fri, 3 Mar 2017 11:03:23 +0800 Subject: [PATCH 25/58] use relative path for ha-master-gce image Signed-off-by: Xiuyu Li --- docs/admin/ha-master-gce.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/ha-master-gce.md b/docs/admin/ha-master-gce.md index 22e177980f..27c51c9d25 100644 --- a/docs/admin/ha-master-gce.md +++ b/docs/admin/ha-master-gce.md @@ -107,7 +107,7 @@ This operation may be sped up by migrating etcd data directory, as described [he ## Implementation notes -![ha-master-gce](http://kubernetes.io/images/docs/ha-master-gce.png) +![ha-master-gce](/images/docs/ha-master-gce.png) ### Overview From f88f28bcedbb6deb7a475cde78a94c1cc53373c6 Mon Sep 17 00:00:00 2001 From: yupengzte Date: Thu, 2 Mar 2017 10:39:39 +0800 Subject: [PATCH 26/58] The attribute [calendarWrapper] must be unique Signed-off-by: yupengzte --- _layouts/docwithnav.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html index 073e1c9344..3d12017366 100755 --- a/_layouts/docwithnav.html +++ b/_layouts/docwithnav.html @@ -33,7 +33,7 @@
  • SUPPORT
  • From 5f22fabf80dc07adf98da2e9bc60de660a9cdec3 Mon Sep 17 00:00:00 2001 From: Bruce Auyeung Date: Thu, 2 Mar 2017 11:25:15 +0800 Subject: [PATCH 27/58] add required images in kubeadm init step --- docs/getting-started-guides/kubeadm.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/getting-started-guides/kubeadm.md b/docs/getting-started-guides/kubeadm.md index 24c9498e44..03cf546eaa 100644 --- a/docs/getting-started-guides/kubeadm.md +++ b/docs/getting-started-guides/kubeadm.md @@ -103,7 +103,15 @@ Note: Disabling SELinux by running `setenforce 0` is required in order to allow ### (2/4) Initializing your master The master is the machine where the "control plane" components run, including `etcd` (the cluster database) and the API server (which the `kubectl` CLI communicates with). -All of these components run in pods started by `kubelet`. +All of these components run in pods started by `kubelet` and the following images are required and will be automatically pulled by `kubelet` if they are absent while `kubeadm init` is initializing your master: + + gcr.io/google_containers/kube-proxy-amd64 v1.5.3 + gcr.io/google_containers/kube-controller-manager-amd64 v1.5.3 + gcr.io/google_containers/kube-scheduler-amd64 v1.5.3 + gcr.io/google_containers/kube-apiserver-amd64 v1.5.3 + gcr.io/google_containers/etcd-amd64 3.0.14-kubeadm + gcr.io/google_containers/kube-discovery-amd64 1.0 + gcr.io/google_containers/pause-amd64 3.0 Right now you can't run `kubeadm init` twice without tearing down the cluster in between, see [Tear down](#tear-down). From d360cee99270e23de0d61c76a29cc05b1f200e41 Mon Sep 17 00:00:00 2001 From: Rob Paisley Date: Thu, 2 Mar 2017 19:41:28 -0500 Subject: [PATCH 28/58] Add links to Docker/rtk in cluster-intro.html --- docs/tutorials/kubernetes-basics/cluster-intro.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/kubernetes-basics/cluster-intro.html b/docs/tutorials/kubernetes-basics/cluster-intro.html index 830b651594..a7ca857705 100644 --- a/docs/tutorials/kubernetes-basics/cluster-intro.html +++ b/docs/tutorials/kubernetes-basics/cluster-intro.html @@ -74,7 +74,7 @@ title: Using Minikube to Create a Cluster

    The Master is responsible for managing the cluster. The master coordinates all activities in your cluster, such as scheduling applications, maintaining applications' desired state, scaling applications, and rolling out new updates.

    -

    A node is a VM or a physical computer that serves as a worker machine in a Kubernetes cluster. Each node has a Kubelet, which is an agent for managing the node and communicating with the Kubernetes master. The node should also have tools for handling container operations, such as Docker or rkt. A Kubernetes cluster that handles production traffic should have a minimum of three nodes.

    +

    A node is a VM or a physical computer that serves as a worker machine in a Kubernetes cluster. Each node has a Kubelet, which is an agent for managing the node and communicating with the Kubernetes master. The node should also have tools for handling container operations, such as Docker or rtk. A Kubernetes cluster that handles production traffic should have a minimum of three nodes.

    From 94432910664737f4dc2833b2eed3d5a6eca33e7a Mon Sep 17 00:00:00 2001 From: Chris Schmich Date: Thu, 2 Mar 2017 19:11:11 -0600 Subject: [PATCH 29/58] s/acomplish/accomplish/ --- docs/user-guide/replicasets.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/replicasets.md b/docs/user-guide/replicasets.md index ea3e7bde14..2b6a767be2 100644 --- a/docs/user-guide/replicasets.md +++ b/docs/user-guide/replicasets.md @@ -94,7 +94,7 @@ of the replicated pods. kubectl create -f hpa-rs.yaml ``` -Alternatively, you can just use the `kubectl autoscale` command to acomplish the same +Alternatively, you can just use the `kubectl autoscale` command to accomplish the same (and it's easier!) ```shell From e06617a5a146fe69e0632755c78ea75c25f81f87 Mon Sep 17 00:00:00 2001 From: houjun Date: Fri, 3 Mar 2017 09:59:55 +0800 Subject: [PATCH 30/58] Modify the link URL of [kubelet eviction design doc] [kubelet eviction design doc] should be linked to kubernetes.github.io instead of community/design-proposal. --- docs/admin/garbage-collection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/garbage-collection.md b/docs/admin/garbage-collection.md index ad55b773a5..f34b7e3156 100644 --- a/docs/admin/garbage-collection.md +++ b/docs/admin/garbage-collection.md @@ -72,4 +72,4 @@ Including: | `--low-diskspace-threshold-mb` | `--eviction-hard` or `eviction-soft` | eviction generalizes disk thresholds to other resources | | `--outofdisk-transition-frequency` | `--eviction-pressure-transition-period` | eviction generalizes disk pressure transition to other resources | -See [kubelet eviction design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/kubelet-eviction.md) for more details. +See [kubelet eviction design doc](https://github.com/kubernetes/kubernetes.github.io/blob/master/docs/admin/out-of-resource.md) for more details. From 34cb50be94ed451464ae0ef228c0f988169f8a30 Mon Sep 17 00:00:00 2001 From: foxyriver Date: Fri, 3 Mar 2017 14:25:56 +0800 Subject: [PATCH 31/58] fix CronJob object name fix CronJob object name --- docs/user-guide/cron-jobs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/cron-jobs.md b/docs/user-guide/cron-jobs.md index 34402d5568..db3153688a 100644 --- a/docs/user-guide/cron-jobs.md +++ b/docs/user-guide/cron-jobs.md @@ -32,7 +32,7 @@ A typical use case is: ### Prerequisites -You need a working Kubernetes cluster at version >= 1.4 (for ScheduledJob), >= 1.5 (for CronJobs), +You need a working Kubernetes cluster at version >= 1.4 (for ScheduledJob), >= 1.5 (for CronJob), with batch/v2alpha1 API turned on by passing `--runtime-config=batch/v2alpha1` while bringing up the API server (see [Turn on or off an API version for your cluster](/docs/admin/cluster-management/#turn-on-or-off-an-api-version-for-your-cluster) for more). You cannot use Cron Jobs on a hosted Kubernetes provider that has disabled alpha resources. From 76f9a1b7853c5d38f3182773cef48844385259b3 Mon Sep 17 00:00:00 2001 From: Xiuyu Li Date: Fri, 3 Mar 2017 14:40:34 +0800 Subject: [PATCH 32/58] remove redundant a Signed-off-by: Xiuyu Li --- docs/user-guide/deployments.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/deployments.md b/docs/user-guide/deployments.md index f2e854690e..d99909916c 100644 --- a/docs/user-guide/deployments.md +++ b/docs/user-guide/deployments.md @@ -621,7 +621,7 @@ See the [Kubernetes API conventions](https://github.com/kubernetes/community/blo Note that in version 1.5, Kubernetes will take no action on a stalled Deployment other than to report a status condition with `Reason=ProgressDeadlineExceeded`. -**Note:** If you pause a Deployment, Kubernetes does not check progress against your specified deadline. You can safely pause a Deployment in the middle of a rollout and resume without triggering a the condition for exceeding the deadline. +**Note:** If you pause a Deployment, Kubernetes does not check progress against your specified deadline. You can safely pause a Deployment in the middle of a rollout and resume without triggering the condition for exceeding the deadline. You may experience transient errors with your Deployments, either due to a low timeout that you have set or due to any other kind of error that can be treated as transient. For example, let's suppose you have insufficient quota. If you describe the Deployment From a06df4d14ae43b7ef9f7d948894e1dae7c747ad8 Mon Sep 17 00:00:00 2001 From: jianglingxia Date: Fri, 3 Mar 2017 16:18:17 +0800 Subject: [PATCH 33/58] kubeadm reference--change any to some (#2683) * modify one word examples to example * doc-walkthrough-content modify * limitrange-update I think it's redundant that the second to ,in order to do sth and do sth!thanks! * cluster-components-could be running could be doing sth * update cluster-components.md In theory,Master components can be run.... * update cluster-components--add a space add a space after the comma: "In theory, Master components..." * Highlighted command --kubectl describe In web page ,there is no space ,need some empty space,thanks! * Revert "Highlighted command --kubectl describe" This reverts commit a70d0a3e3537c3f91b197b23f949e1e506c951d1. * kubeadm reference--change any to some kubeadm can install any add-on ? --- docs/admin/kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/kubeadm.md b/docs/admin/kubeadm.md index 787b59bdbe..ce9a83fc29 100644 --- a/docs/admin/kubeadm.md +++ b/docs/admin/kubeadm.md @@ -34,7 +34,7 @@ resources to create on startup. These are the core components of Kubernetes, and once they are up and running we can use `kubectl` to set up or manage any additional components. -1. kubeadm installs any add-on components, such as DNS or discovery, via the API +1. kubeadm installs some add-on components, such as DNS or discovery, via the API server. Running `kubeadm join` on each node in the cluster consists of the following steps: From ec03295bf0d13461aa17030f1087a8089484fbde Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Fri, 3 Mar 2017 11:21:01 -0800 Subject: [PATCH 34/58] Move Guide topics: Logging (#2687) --- _data/concepts.yml | 4 + _data/tasks.yml | 5 +- .../clusters}/counter-pod.yaml | 0 .../clusters}/fluentd-sidecar-config.yaml | 0 docs/concepts/clusters/logging.md | 223 ++++++++++++++++++ .../two-files-counter-pod-agent-sidecar.yaml | 0 ...o-files-counter-pod-streaming-sidecar.yaml | 0 .../clusters}/two-files-counter-pod.yaml | 0 .../counter-pod.yaml | 10 + .../debug-init-containers.md | 3 + .../logging-elasticsearch-kibana.md | 104 ++++++++ .../logging-stackdriver.md | 148 ++++++++++++ docs/user-guide/logging/elasticsearch.md | 97 +------- docs/user-guide/logging/overview.md | 217 +---------------- docs/user-guide/logging/stackdriver.md | 142 +---------- 15 files changed, 502 insertions(+), 451 deletions(-) rename docs/{user-guide/logging/examples => concepts/clusters}/counter-pod.yaml (100%) rename docs/{user-guide/logging/examples => concepts/clusters}/fluentd-sidecar-config.yaml (100%) create mode 100644 docs/concepts/clusters/logging.md rename docs/{user-guide/logging/examples => concepts/clusters}/two-files-counter-pod-agent-sidecar.yaml (100%) rename docs/{user-guide/logging/examples => concepts/clusters}/two-files-counter-pod-streaming-sidecar.yaml (100%) rename docs/{user-guide/logging/examples => concepts/clusters}/two-files-counter-pod.yaml (100%) create mode 100644 docs/tasks/debug-application-cluster/counter-pod.yaml rename docs/tasks/{troubleshoot => debug-application-cluster}/debug-init-containers.md (96%) create mode 100644 docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md create mode 100644 docs/tasks/debug-application-cluster/logging-stackdriver.md diff --git a/_data/concepts.yml b/_data/concepts.yml index 440f9dbf2b..32af951748 100644 --- a/_data/concepts.yml +++ b/_data/concepts.yml @@ -33,6 +33,10 @@ toc: section: - docs/concepts/workloads/pods/pod-lifecycle.md +- title: Clusters + section: + - docs/concepts/clusters/logging.md + - title: Configuration section: - docs/concepts/configuration/container-command-args.md diff --git a/_data/tasks.yml b/_data/tasks.yml index ab237c3474..8863559c77 100644 --- a/_data/tasks.yml +++ b/_data/tasks.yml @@ -29,9 +29,12 @@ toc: - docs/tasks/access-application-cluster/port-forward-access-application-cluster.md - docs/tasks/access-application-cluster/load-balance-access-application-cluster.md -- title: Debugging Applications in a Cluster +- title: Monitoring, Logging, and Debugging section: - docs/tasks/debug-application-cluster/determine-reason-pod-failure.md + - docs/tasks/debug-application-cluster/debug-init-containers.md + - docs/tasks/debug-application-cluster/logging-stackdriver.md + - docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md - title: Accessing the Kubernetes API section: diff --git a/docs/user-guide/logging/examples/counter-pod.yaml b/docs/concepts/clusters/counter-pod.yaml similarity index 100% rename from docs/user-guide/logging/examples/counter-pod.yaml rename to docs/concepts/clusters/counter-pod.yaml diff --git a/docs/user-guide/logging/examples/fluentd-sidecar-config.yaml b/docs/concepts/clusters/fluentd-sidecar-config.yaml similarity index 100% rename from docs/user-guide/logging/examples/fluentd-sidecar-config.yaml rename to docs/concepts/clusters/fluentd-sidecar-config.yaml diff --git a/docs/concepts/clusters/logging.md b/docs/concepts/clusters/logging.md new file mode 100644 index 0000000000..465a2d324e --- /dev/null +++ b/docs/concepts/clusters/logging.md @@ -0,0 +1,223 @@ +--- +assignees: +- crassirostris +- piosz +title: Logging and Monitoring Cluster Activity +--- + +Application and systems logs can help you understand what is happening inside your cluster. The logs are particularly useful for debugging problems and monitoring cluster activity. Most modern applications have some kind of logging mechanism; as such, most container engines are likewise designed to support some kind of logging. The easiest and most embraced logging method for containerized applications is to write to the standard output and standard error streams. + +However, the native functionality provided by a container engine or runtime is usually not enough for a complete logging solution. For example, if a container crashes, a pod is evicted, or a node dies, you'll usually still want to access your application's logs. As such, logs should have a separate storage and lifecycle independent of nodes, pods, or containers. This concept is called _cluster-level-logging_. Cluster-level logging requires a separate backend to store, analyze, and query logs. Kubernetes provides no native storage solution for log data, but you can integrate many existing logging solutions into your Kubernetes cluster. + +This document includes: + +* A basic demonstration of logging in Kubernetes using the standard output stream +* A detailed description of the node logging architecture in Kubernetes +* Guidance for implementing cluster-level logging in Kubernetes + +The guidance for cluster-level logging assumes that a logging backend is present inside or outside of your cluster. If you're not interested in having cluster-level logging, you might still find the description of how logs are stored and handled on the node to be useful. + +## Basic logging in Kubernetes + +In this section, you can see an example of basic logging in Kubernetes that +outputs data to the standard output stream. This demonstration uses +a [pod specification](/docs/concepts/clusters/counter-pod.yaml) with +a container that writes some text to standard output once per second. + +{% include code.html language="yaml" file="counter-pod.yaml" ghlink="/docs/tasks/debug-application-cluster/counter-pod.yaml" %} + +To run this pod, use the following command: + +```shell +$ kubectl create -f http://k8s.io/docs/tasks/debug-application-cluster/counter-pod.yaml +pod "counter" created +``` + +To fetch the logs, use the `kubectl logs` command, as follows + +```shell +$ kubectl logs counter +0: Mon Jan 1 00:00:00 UTC 2001 +1: Mon Jan 1 00:00:01 UTC 2001 +2: Mon Jan 1 00:00:02 UTC 2001 +... +``` + +You can use `kubectl logs` to retrieve logs from a previous instantiation of a container with `--previous` flag, in case the container has crashed. If your pod has multiple containers, you should specify which container's logs you want to access by appending a container name to the command. See the [`kubectl logs` documentation](/docs/user-guide/kubectl/kubectl_logs/) for more details. + +## Logging at the node level + +![Node level logging](/images/docs/user-guide/logging/logging-node-level.png) + +Everything a containerized application writes to `stdout` and `stderr` is handled and redirected somewhere by a container engine. For example, the Docker container engine redirects those two streams to [a logging driver](https://docs.docker.com/engine/admin/logging/overview), which is configured in Kubernetes to write to a file in json format. + +**Note:** The Docker json logging driver treats each line as a separate message. When using the Docker logging driver, there is no direct support for multi-line messages. You need to handle multi-line messages at the logging agent level or higher. + +By default, if a container restarts, the kubelet keeps one terminated container with its logs. If a pod is evicted from the node, all corresponding containers are also evicted, along with their logs. + +An important consideration in node-level logging is implementing log rotation, so that logs don't consume all available storage on the node. Kubernetes uses the [`logrotate`](http://www.linuxcommand.org/man_pages/logrotate8.html) tool to implement log rotation. + +Kubernetes performs log rotation daily, or if the log file grows beyond 10MB in size. Each rotation belongs to a single container; if the container repeatedly fails or the pod is evicted, all previous rotations for the container are lost. By default, Kubernetes keeps up to five logging rotations per container. + +The Kubernetes logging configuration differs depending on the node type. For example, you can find detailed information for GCI in the corresponding [configure helper](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/cluster/gce/gci/configure-helper.sh#L96). + +When you run [`kubectl logs`](/docs/user-guide/kubectl/kubectl_logs), as in the basic logging example, the kubelet on the node handles the request and reads directly from the log file, returning the contents in the response. Note that `kubectl logs` **only returns the last rotation**; you must manually extract prior rotations, if desired and cluster-level logging is not enabled. + +### System component logs + +There are two types of system components: those that run in a container and those +that do not run in a container. For example: + +* The Kubernetes scheduler and kube-proxy run in a container. +* The kubelet and container runtime, for example Docker, do not run in containers. + +On machines with systemd, the kubelet and container runtime write to journald. If +systemd is not present, they write to `.log` files in the `/var/log` directory. +System components inside containers always write to the `/var/log` directory, +bypassing the default logging mechanism. They use the [glog](https://godoc.org/github.com/golang/glog) +logging library. You can find the conventions for logging severity for those +components in the [development docs on logging](https://github.com/kubernetes/community/blob/master/contributors/devel/logging.md). + +Similarly to the container logs, system component logs in the `/var/log` +directory are rotated daily and based on the log size. However, +system component logs have a higher size retention: by default, +they can store up to 100MB. + +## Cluster-level logging architectures + +While Kubernetes does not provide a native solution for cluster-level logging, there are several common approaches you can consider. Here are some options: + +* Use a node-level logging agent that runs on every node. +* Include a dedicated sidecar container for logging in an application pod. +* Push logs directly to a backend from within an application. + +### Using a node logging agent + +![Using a node level logging agent](/images/docs/user-guide/logging/logging-with-node-agent.png) + +You can implement cluster-level logging by including a _node-level logging agent_ on each node. The logging agent is a dedicated tool that exposes logs or pushes logs to a backend. Commonly, the logging agent is a container that has access to a directory with log files from all of the application containers on that node. + +Because the logging agent must run on every node, it's common to implement it as either a DaemonSet replica, a manifest pod, or a dedicated native process on the node. However the latter two approaches are deprecated and highly discouraged. + +Using a node-level logging agent is the most common and encouraged approach for a Kubernetes cluster, because it creates only one agent per node, and it doesn't require any changes to the applications running on the node. However, node-level logging _only works for applications' standard output and standard error_. + +Kubernetes doesn't specify a logging agent, but two optional logging agents are packaged with the Kubernetes release: [Stackdriver Logging](/docs/user-guide/logging/stackdriver) for use with Google Cloud Platform, and [Elasticsearch](/docs/user-guide/logging/elasticsearch). You can find more information and instructions in the dedicated documents. Both use [fluentd](http://www.fluentd.org/) with custom configuration as an agent on the node. + +### Using a sidecar container with the logging agent + +You can use a sidecar container in one of the following ways: + +* The sidecar container streams application logs to its own `stdout`. +* The sidecar container runs a logging agent, which is configured to pick up logs from an application container. + +#### Streaming sidecar container + +![Sidecar container with a streaming container](/images/docs/user-guide/logging/logging-with-streaming-sidecar.png) + +By having your sidecar containers stream to their own `stdout` and `stderr` +streams, you can take advantage of the kubelet and the logging agent that +already run on each node. The sidecar containers read logs from a file, a socket, +or the journald. Each individual sidecar container prints log to its own `stdout` +or `stderr` stream. + +This approach allows you to separate several log streams from different +parts of your application, some of which can lack support +for writing to `stdout` or `stderr`. The logic behind redirecting logs +is minimal, so it's hardly a significant overhead. Additionally, because +`stdout` and `stderr` are handled by the kubelet, you can use built-in tools +like `kubectl logs`. + +Consider the following example. A pod runs a single container, and the container +writes to two different log files, using two different formats. Here's a +configuration file for the Pod: + +{% include code.html language="yaml" file="two-files-counter-pod.yaml" ghlink="/docs/concepts/clusters/two-files-counter-pod.yaml" %} + +It would be a mess to have log entries of different formats in the same log +stream, even if you managed to redirect both components to the `stdout` stream of +the container. Instead, you could introduce two sidecar containers. Each sidecar +container could tail a particular log file from a shared volume and then redirect +the logs to its own `stdout` stream. + +Here's a configuration file for a pod that has two sidecar containers: + +{% include code.html language="yaml" file="two-files-counter-pod-streaming-sidecar.yaml" ghlink="/docs/concepts/clusters/two-files-counter-pod-streaming-sidecar.yaml" %} + +Now when you run this pod, you can access each log stream separately by +running the following commands: + +```shell +$ kubectl logs counter count-log-1 +0: Mon Jan 1 00:00:00 UTC 2001 +1: Mon Jan 1 00:00:01 UTC 2001 +2: Mon Jan 1 00:00:02 UTC 2001 +... +``` + +```shell +$ kubectl logs counter count-log-2 +Mon Jan 1 00:00:00 UTC 2001 INFO 0 +Mon Jan 1 00:00:01 UTC 2001 INFO 1 +Mon Jan 1 00:00:02 UTC 2001 INFO 2 +... +``` + +The node-level agent installed in your cluster picks up those log streams +automatically without any further configuration. If you like, you can configure +the agent to parse log lines depending on the source container. + +Note, that despite low CPU and memory usage (order of couple of millicores +for cpu and order of several megabytes for memory), writing logs to a file and +then streaming them to `stdout` can double disk usage. If you have +an application that writes to a single file, it's generally better to set +`/dev/stdout` as destination rather than implementing the streaming sidecar +container approach. + +Sidecar containers can also be used to rotate log files that cannot be +rotated by the application itself. [An example](https://github.com/samsung-cnct/logrotate) +of this approach is a small container running logrotate periodically. +However, it's recommended to use `stdout` and `stderr` directly and leave rotation +and retention policies to the kubelet. + +#### Sidecar container with a logging agent + +![Sidecar container with a logging agent](/images/docs/user-guide/logging/logging-with-sidecar-agent.png) + +If the node-level logging agent is not flexible enough for your situation, you +can create a sidecar container with a separate logging agent that you have +configured specifically to run with your application. + +**Note**: Using a logging agent in a sidecar container can lead +to significant resource consumption. Moreover, you won't be able to access +those logs using `kubectl logs` command, because they are not controlled +by the kubelet. + +As an example, you could use [Stackdriver](/docs/user-guide/logging/stackdriver/), +which uses fluentd as a logging agent. Here are two configuration files that +you can use to implement this approach. The first file contains +a [ConfigMap](/docs/user-guide/configmap/) to configure fluentd. + +{% include code.html language="yaml" file="fluentd-sidecar-config.yaml" ghlink="/docs/concepts/clusters/fluentd-sidecar-config.yaml" %} + +**Note**: The configuration of fluentd is beyond the scope of this article. For +information about configuring fluentd, see the +[official fluentd documentation](http://docs.fluentd.org/). + +The second file describes a pod that has a sidecar container running fluentd. +The pod mounts a volume where fluentd can pick up its configuration data. + +{% include code.html language="yaml" file="two-files-counter-pod-agent-sidecar.yaml" ghlink="/docs/concepts/clusters/two-files-counter-pod-agent-sidecar.yaml" %} + +After some time you can find log messages in the Stackdriver interface. + +Remember, that this is just an example and you can actually replace fluentd +with any logging agent, reading from any source inside an application +container. + +### Exposing logs directly from the application + +![Exposing logs directly from the application](/images/docs/user-guide/logging/logging-from-application.png) + +You can implement cluster-level logging by exposing or pushing logs directly from +every application; however, the implementation for such a logging mechanism +is outside the scope of Kubernetes. diff --git a/docs/user-guide/logging/examples/two-files-counter-pod-agent-sidecar.yaml b/docs/concepts/clusters/two-files-counter-pod-agent-sidecar.yaml similarity index 100% rename from docs/user-guide/logging/examples/two-files-counter-pod-agent-sidecar.yaml rename to docs/concepts/clusters/two-files-counter-pod-agent-sidecar.yaml diff --git a/docs/user-guide/logging/examples/two-files-counter-pod-streaming-sidecar.yaml b/docs/concepts/clusters/two-files-counter-pod-streaming-sidecar.yaml similarity index 100% rename from docs/user-guide/logging/examples/two-files-counter-pod-streaming-sidecar.yaml rename to docs/concepts/clusters/two-files-counter-pod-streaming-sidecar.yaml diff --git a/docs/user-guide/logging/examples/two-files-counter-pod.yaml b/docs/concepts/clusters/two-files-counter-pod.yaml similarity index 100% rename from docs/user-guide/logging/examples/two-files-counter-pod.yaml rename to docs/concepts/clusters/two-files-counter-pod.yaml diff --git a/docs/tasks/debug-application-cluster/counter-pod.yaml b/docs/tasks/debug-application-cluster/counter-pod.yaml new file mode 100644 index 0000000000..f997886386 --- /dev/null +++ b/docs/tasks/debug-application-cluster/counter-pod.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: counter +spec: + containers: + - name: count + image: busybox + args: [/bin/sh, -c, + 'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done'] diff --git a/docs/tasks/troubleshoot/debug-init-containers.md b/docs/tasks/debug-application-cluster/debug-init-containers.md similarity index 96% rename from docs/tasks/troubleshoot/debug-init-containers.md rename to docs/tasks/debug-application-cluster/debug-init-containers.md index 3c362c5072..77abef0a84 100644 --- a/docs/tasks/troubleshoot/debug-init-containers.md +++ b/docs/tasks/debug-application-cluster/debug-init-containers.md @@ -8,6 +8,9 @@ assignees: - kow3ns - smarterclayton title: Debugging Init Containers +redirect_from: +- "/docs/tasks/troubleshoot/debug-init-containers/" +- "/docs/tasks/troubleshoot/debug-init-containers.html" --- {% capture overview %} diff --git a/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md b/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md new file mode 100644 index 0000000000..4441067d60 --- /dev/null +++ b/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md @@ -0,0 +1,104 @@ +--- +assignees: +- crassirostris +- piosz +title: Logging Using Elasticsearch and Kibana +--- + +On the Google Compute Engine (GCE) platform, the default logging support targets +[Stackdriver Logging](https://cloud.google.com/logging/), which is described in detail +in the [Logging With Stackdriver Logging](/docs/user-guide/logging/stackdriver). + +This article describes how to set up a cluster to ingest logs into +[Elasticsearch](https://www.elastic.co/products/elasticsearch), and view +them using [Kibana](https://www.elastic.co/products/kibana), as an alternative to +Stackdriver Logging when running on GCE. Note that Elasticsearch and Kibana do not work with Kubernetes clusters hosted on Google Container Engine. + +To use Elasticsearch and Kibana for cluster logging, you should set the +following environment variable as shown below when creating your cluster with +kube-up.sh: + +```shell +KUBE_LOGGING_DESTINATION=elasticsearch +``` + +You should also ensure that `KUBE_ENABLE_NODE_LOGGING=true` (which is the default for the GCE platform). + +Now, when you create a cluster, a message will indicate that the Fluentd log +collection daemons that run on each node will target Elasticsearch: + +```shell +$ cluster/kube-up.sh +... +Project: kubernetes-satnam +Zone: us-central1-b +... calling kube-up +Project: kubernetes-satnam +Zone: us-central1-b ++++ Staging server tars to Google Storage: gs://kubernetes-staging-e6d0e81793/devel ++++ kubernetes-server-linux-amd64.tar.gz uploaded (sha1 = 6987c098277871b6d69623141276924ab687f89d) ++++ kubernetes-salt.tar.gz uploaded (sha1 = bdfc83ed6b60fa9e3bff9004b542cfc643464cd0) +Looking for already existing resources +Starting master and configuring firewalls +Created [https://www.googleapis.com/compute/v1/projects/kubernetes-satnam/zones/us-central1-b/disks/kubernetes-master-pd]. +NAME ZONE SIZE_GB TYPE STATUS +kubernetes-master-pd us-central1-b 20 pd-ssd READY +Created [https://www.googleapis.com/compute/v1/projects/kubernetes-satnam/regions/us-central1/addresses/kubernetes-master-ip]. ++++ Logging using Fluentd to elasticsearch +``` + +The per-node Fluentd pods, the Elasticsearch pods, and the Kibana pods should +all be running in the kube-system namespace soon after the cluster comes to +life. + +```shell +$ kubectl get pods --namespace=kube-system +NAME READY REASON RESTARTS AGE +elasticsearch-logging-v1-78nog 1/1 Running 0 2h +elasticsearch-logging-v1-nj2nb 1/1 Running 0 2h +fluentd-elasticsearch-kubernetes-node-5oq0 1/1 Running 0 2h +fluentd-elasticsearch-kubernetes-node-6896 1/1 Running 0 2h +fluentd-elasticsearch-kubernetes-node-l1ds 1/1 Running 0 2h +fluentd-elasticsearch-kubernetes-node-lz9j 1/1 Running 0 2h +kibana-logging-v1-bhpo8 1/1 Running 0 2h +kube-dns-v3-7r1l9 3/3 Running 0 2h +monitoring-heapster-v4-yl332 1/1 Running 1 2h +monitoring-influx-grafana-v1-o79xf 2/2 Running 0 2h +``` + +The `fluentd-elasticsearch` pods gather logs from each node and send them to +the `elasticsearch-logging` pods, which are part of a +[service](/docs/user-guide/services/) named `elasticsearch-logging`. These +Elasticsearch pods store the logs and expose them via a REST API. +The `kibana-logging` pod provides a web UI for reading the logs stored in +Elasticsearch, and is part of a service named `kibana-logging`. + +The Elasticsearch and Kibana services are both in the `kube-system` namespace +and are not directly exposed via a publicly reachable IP address. To reach them, +follow the instructions for [Accessing services running in a cluster](/docs/user-guide/accessing-the-cluster/#accessing-services-running-on-the-cluster). + +If you try accessing the `elasticsearch-logging` service in your browser, you'll +see a status page that looks something like this: + +![Elasticsearch Status](/images/docs/es-browser.png) + +You can now type Elasticsearch queries directly into the browser, if you'd +like. See [Elasticsearch's documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html) +for more details on how to do so. + +Alternatively, you can view your cluster's logs using Kibana (again using the +[instructions for accessing a service running in the cluster](/docs/user-guide/accessing-the-cluster/#accessing-services-running-on-the-cluster)). +The first time you visit the Kibana URL you will be presented with a page that +asks you to configure your view of the ingested logs. Select the option for +timeseries values and select `@timestamp`. On the following page select the +`Discover` tab and then you should be able to see the ingested logs. +You can set the refresh interval to 5 seconds to have the logs +regularly refreshed. + +Here is a typical view of ingested logs from the Kibana viewer: + +![Kibana logs](/images/docs/kibana-logs.png) + +Kibana opens up all sorts of powerful options for exploring your logs! For some +ideas on how to dig into it, check out [Kibana's documentation](https://www.elastic.co/guide/en/kibana/current/discover.html). + diff --git a/docs/tasks/debug-application-cluster/logging-stackdriver.md b/docs/tasks/debug-application-cluster/logging-stackdriver.md new file mode 100644 index 0000000000..b382d0faf7 --- /dev/null +++ b/docs/tasks/debug-application-cluster/logging-stackdriver.md @@ -0,0 +1,148 @@ +--- +assignees: +- crassirostris +- piosz +title: Logging Using Stackdriver +--- + +Before reading this page, it's highly recommended to familiasrize yourself with the [overview of logging in Kubernetes](/docs/user-guide/logging/overview). + +This article assumes that you have created a Kubernetes cluster with cluster-level logging support for sending logs to Stackdriver Logging. You can do this either by selecting the **Enable Stackdriver Logging** checkbox in the create cluster dialogue in [GKE](https://cloud.google.com/container-engine/), or by setting the `KUBE_LOGGING_DESTINATION` flag to `gcp` when manually starting a cluster using `kube-up.sh`. + +The following guide describes gathering a container's standard output and standard error. To gather logs written by an application to a file, you can use [a sidecar approach](https://github.com/kubernetes/contrib/blob/master/logging/fluentd-sidecar-gcp/README.md). + +## Overview + +After creation, you can discover logging agent pods in the `kube-system` namespace, +one per node, by running the following command: + +```shell +$ kubectl get pods --namespace=kube-system +NAME READY STATUS RESTARTS AGE +... +fluentd-gcp-v1.30-50gnc 1/1 Running 0 5d +fluentd-gcp-v1.30-v255c 1/1 Running 0 5d +fluentd-gcp-v1.30-f02l5 1/1 Running 0 5d +... +``` + +To understand how logging with Stackdriver works, consider the following +synthetic log generator pod specification [counter-pod.yaml](/docs/tasks/debug-application-cluster/counter-pod.yaml): + +{% include code.html language="yaml" file="counter-pod.yaml" ghlink="/docs/tasks/debug-application-cluster/counter-pod.yaml" %} + +This pod specification has one container that runs a bash script +that writes out the value of a counter and the date once per +second, and runs indefinitely. Let's create this pod in the default namespace. + +```shell +$ kubectl create -f http://k8s.io/docs/user-guide/logging/examples/counter-pod.yaml +pod "counter" created +``` + +You can observe the running pod: + +```shell +$ kubectl get pods +NAME READY STATUS RESTARTS AGE +counter 1/1 Running 0 5m +``` + +For a short period of time you can observe the 'Pending' pod status, because the kubelet +has to download the container image first. When the pod status changes to `Running` +you can use the `kubectl logs` command to view the output of this counter pod. + +```shell +$ kubectl logs counter +0: Mon Jan 1 00:00:00 UTC 2001 +1: Mon Jan 1 00:00:01 UTC 2001 +2: Mon Jan 1 00:00:02 UTC 2001 +... +``` + +As described in the logging overview, this command fetches log entries +from the container log file. If the container is killed and then restarted by +Kubernetes, you can still access logs from the previous container. However, +if the pod is evicted from the node, log files are lost. Let's demonstrate this +by deleting the currently running counter container: + +```shell +$ kubectl delete pod counter +pod "counter" deleted +``` + +and then recreating it: + +```shell +$ kubectl create -f http://k8s.io/docs/user-guide/logging/examples/counter-pod.yaml +pod "counter" created +``` + +After some time, you can access logs from the counter pod again: + +```shell +$ kubectl logs counter +0: Mon Jan 1 00:01:00 UTC 2001 +1: Mon Jan 1 00:01:01 UTC 2001 +2: Mon Jan 1 00:01:02 UTC 2001 +... +``` + +As expected, only recent log lines are present. However, for a real-world +application you will likely want to be able to access logs from all containers, +especially for the debug purposes. This is exactly when the previously enabled +Stackdriver Logging can help. + +## Viewing logs + +Stackdriver Logging agent attaches metadata to each log entry, for you to use later +in queries to select only the messages you're interested in: for example, +the messages from a particular pod. + +The most important pieces of metadata are the resource type and log name. +The resource type of a container log is `container`, which is named +`GKE Containers` in the UI (even if the Kubernetes cluster is not on GKE). +The log name is the name of the container, so that if you have a pod with +two containers, named `container_1` and `container_2` in the spec, their logs +will have log names `container_1` and `container_2` respectively. + +System components have resource type `compute`, which is named +`GCE VM Instance` in the interface. Log names for system components are fixed. +For a GKE node, every log entry from a system component has one the following +log names: + +* docker +* kubelet +* kube-proxy + +You can learn more about viewing logs on [the dedicated Stackdriver page](https://cloud.google.com/logging/docs/view/logs_viewer). + +One of the possible ways to view logs is using the +[`gcloud logging`](https://cloud.google.com/logging/docs/api/gcloud-logging) +command line interface from the [Google Cloud SDK](https://cloud.google.com/sdk/). +It uses Stackdriver Logging [filtering syntax](https://cloud.google.com/logging/docs/view/advanced_filters) +to query specific logs. For example, you can run the following command: + +```shell +$ gcloud beta logging read 'logName="projects/$YOUR_PROJECT_ID/logs/count"' --format json | jq '.[].textPayload' +... +"2: Mon Jan 1 00:01:02 UTC 2001\n" +"1: Mon Jan 1 00:01:01 UTC 2001\n" +"0: Mon Jan 1 00:01:00 UTC 2001\n" +... +"2: Mon Jan 1 00:00:02 UTC 2001\n" +"1: Mon Jan 1 00:00:01 UTC 2001\n" +"0: Mon Jan 1 00:00:00 UTC 2001\n" +``` + +As you can see, it outputs messages for the count container from both +the first and second runs, despite the fact that the kubelet already deleted +the logs for the first container. + +### Exporting logs + +You can export logs to [Google Cloud Storage](https://cloud.google.com/storage/) +or to [BigQuery](https://cloud.google.com/bigquery/) to run further +analysis. Stackdriver Logging offers the concept of sinks, where you can +specify the destination of log entries. More information is available on +the Stackdriver [Exporting Logs page](https://cloud.google.com/logging/docs/export/configure_export_v2). diff --git a/docs/user-guide/logging/elasticsearch.md b/docs/user-guide/logging/elasticsearch.md index c61cfd7cd1..e55de7f30f 100644 --- a/docs/user-guide/logging/elasticsearch.md +++ b/docs/user-guide/logging/elasticsearch.md @@ -5,99 +5,6 @@ assignees: title: Logging with Elasticsearch and Kibana --- -On the Google Compute Engine (GCE) platform, the default logging support targets -[Stackdriver Logging](https://cloud.google.com/logging/), which is described in detail -in the [Logging With Stackdriver Logging](/docs/user-guide/logging/stackdriver). +{% include user-guide-content-moved.md %} -This article describes how to set up a cluster to ingest logs into -[Elasticsearch](https://www.elastic.co/products/elasticsearch), and view -them using [Kibana](https://www.elastic.co/products/kibana), as an alternative to -Stackdriver Logging when running on GCE. Note that Elasticsearch and Kibana do not work with Kubernetes clusters hosted on Google Container Engine. - -To use Elasticsearch and Kibana for cluster logging, you should set the -following environment variable as shown below when creating your cluster with -kube-up.sh: - -```shell -KUBE_LOGGING_DESTINATION=elasticsearch -``` - -You should also ensure that `KUBE_ENABLE_NODE_LOGGING=true` (which is the default for the GCE platform). - -Now, when you create a cluster, a message will indicate that the Fluentd log -collection daemons that run on each node will target Elasticsearch: - -```shell -$ cluster/kube-up.sh -... -Project: kubernetes-satnam -Zone: us-central1-b -... calling kube-up -Project: kubernetes-satnam -Zone: us-central1-b -+++ Staging server tars to Google Storage: gs://kubernetes-staging-e6d0e81793/devel -+++ kubernetes-server-linux-amd64.tar.gz uploaded (sha1 = 6987c098277871b6d69623141276924ab687f89d) -+++ kubernetes-salt.tar.gz uploaded (sha1 = bdfc83ed6b60fa9e3bff9004b542cfc643464cd0) -Looking for already existing resources -Starting master and configuring firewalls -Created [https://www.googleapis.com/compute/v1/projects/kubernetes-satnam/zones/us-central1-b/disks/kubernetes-master-pd]. -NAME ZONE SIZE_GB TYPE STATUS -kubernetes-master-pd us-central1-b 20 pd-ssd READY -Created [https://www.googleapis.com/compute/v1/projects/kubernetes-satnam/regions/us-central1/addresses/kubernetes-master-ip]. -+++ Logging using Fluentd to elasticsearch -``` - -The per-node Fluentd pods, the Elasticsearch pods, and the Kibana pods should -all be running in the kube-system namespace soon after the cluster comes to -life. - -```shell -$ kubectl get pods --namespace=kube-system -NAME READY REASON RESTARTS AGE -elasticsearch-logging-v1-78nog 1/1 Running 0 2h -elasticsearch-logging-v1-nj2nb 1/1 Running 0 2h -fluentd-elasticsearch-kubernetes-node-5oq0 1/1 Running 0 2h -fluentd-elasticsearch-kubernetes-node-6896 1/1 Running 0 2h -fluentd-elasticsearch-kubernetes-node-l1ds 1/1 Running 0 2h -fluentd-elasticsearch-kubernetes-node-lz9j 1/1 Running 0 2h -kibana-logging-v1-bhpo8 1/1 Running 0 2h -kube-dns-v3-7r1l9 3/3 Running 0 2h -monitoring-heapster-v4-yl332 1/1 Running 1 2h -monitoring-influx-grafana-v1-o79xf 2/2 Running 0 2h -``` - -The `fluentd-elasticsearch` pods gather logs from each node and send them to -the `elasticsearch-logging` pods, which are part of a -[service](/docs/user-guide/services/) named `elasticsearch-logging`. These -Elasticsearch pods store the logs and expose them via a REST API. -The `kibana-logging` pod provides a web UI for reading the logs stored in -Elasticsearch, and is part of a service named `kibana-logging`. - -The Elasticsearch and Kibana services are both in the `kube-system` namespace -and are not directly exposed via a publicly reachable IP address. To reach them, -follow the instructions for [Accessing services running in a cluster](/docs/user-guide/accessing-the-cluster/#accessing-services-running-on-the-cluster). - -If you try accessing the `elasticsearch-logging` service in your browser, you'll -see a status page that looks something like this: - -![Elasticsearch Status](/images/docs/es-browser.png) - -You can now type Elasticsearch queries directly into the browser, if you'd -like. See [Elasticsearch's documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html) -for more details on how to do so. - -Alternatively, you can view your cluster's logs using Kibana (again using the -[instructions for accessing a service running in the cluster](/docs/user-guide/accessing-the-cluster/#accessing-services-running-on-the-cluster)). -The first time you visit the Kibana URL you will be presented with a page that -asks you to configure your view of the ingested logs. Select the option for -timeseries values and select `@timestamp`. On the following page select the -`Discover` tab and then you should be able to see the ingested logs. -You can set the refresh interval to 5 seconds to have the logs -regularly refreshed. - -Here is a typical view of ingested logs from the Kibana viewer: - -![Kibana logs](/images/docs/kibana-logs.png) - -Kibana opens up all sorts of powerful options for exploring your logs! For some -ideas on how to dig into it, check out [Kibana's documentation](https://www.elastic.co/guide/en/kibana/current/discover.html). +[Logging Using ElasticSearch and Kibana](/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana/) diff --git a/docs/user-guide/logging/overview.md b/docs/user-guide/logging/overview.md index 42b9087172..e5d2e24ae4 100644 --- a/docs/user-guide/logging/overview.md +++ b/docs/user-guide/logging/overview.md @@ -5,219 +5,6 @@ assignees: title: Logging Overview --- -Application and systems logs can help you understand what is happening inside your cluster. The logs are particularly useful for debugging problems and monitoring cluster activity. Most modern applications have some kind of logging mechanism; as such, most container engines are likewise designed to support some kind of logging. The easiest and most embraced logging method for containerized applications is to write to the standard output and standard error streams. +{% include user-guide-content-moved.md %} -However, the native functionality provided by a container engine or runtime is usually not enough for a complete logging solution. For example, if a container crashes, a pod is evicted, or a node dies, you'll usually still want to access your application's logs. As such, logs should have a separate storage and lifecycle independent of nodes, pods, or containers. This concept is called _cluster-level-logging_. Cluster-level logging requires a separate backend to store, analyze, and query logs. Kubernetes provides no native storage solution for log data, but you can integrate many existing logging solutions into your Kubernetes cluster. - -This document includes: - -* A basic demonstration of logging in Kubernetes using the standard output stream -* A detailed description of the node logging architecture in Kubernetes -* Guidance for implementing cluster-level logging in Kubernetes - -The guidance for cluster-level logging assumes that a logging backend is present inside or outside of your cluster. If you're not interested in having cluster-level logging, you might still find the description of how logs are stored and handled on the node to be useful. - -## Basic logging in Kubernetes - -In this section, you can see an example of basic logging in Kubernetes that -outputs data to the standard output stream. This demonstration uses -a [pod specification](/docs/user-guide/logging/examples/counter-pod.yaml) with -a container that writes some text to standard output once per second. - -{% include code.html language="yaml" file="examples/counter-pod.yaml" ghlink="/docs/user-guide/logging/examples/counter-pod.yaml" %} - -To run this pod, use the following command: - -```shell -$ kubectl create -f http://k8s.io/docs/user-guide/logging/examples/counter-pod.yaml -pod "counter" created -``` - -To fetch the logs, use the `kubectl logs` command, as follows - -```shell -$ kubectl logs counter -0: Mon Jan 1 00:00:00 UTC 2001 -1: Mon Jan 1 00:00:01 UTC 2001 -2: Mon Jan 1 00:00:02 UTC 2001 -... -``` - -You can use `kubectl logs` to retrieve logs from a previous instantiation of a container with `--previous` flag, in case the container has crashed. If your pod has multiple containers, you should specify which container's logs you want to access by appending a container name to the command. See the [`kubectl logs` documentation](/docs/user-guide/kubectl/kubectl_logs/) for more details. - -## Logging at the node level - -![Node level logging](/images/docs/user-guide/logging/logging-node-level.png) - -Everything a containerized application writes to `stdout` and `stderr` is handled and redirected somewhere by a container engine. For example, the Docker container engine redirects those two streams to [a logging driver](https://docs.docker.com/engine/admin/logging/overview), which is configured in Kubernetes to write to a file in json format. - -**Note:** The Docker json logging driver treats each line as a separate message. When using the Docker logging driver, there is no direct support for multi-line messages. You need to handle multi-line messages at the logging agent level or higher. - -By default, if a container restarts, the kubelet keeps one terminated container with its logs. If a pod is evicted from the node, all corresponding containers are also evicted, along with their logs. - -An important consideration in node-level logging is implementing log rotation, so that logs don't consume all available storage on the node. Kubernetes uses the [`logrotate`](http://www.linuxcommand.org/man_pages/logrotate8.html) tool to implement log rotation. - -Kubernetes performs log rotation daily, or if the log file grows beyond 10MB in size. Each rotation belongs to a single container; if the container repeatedly fails or the pod is evicted, all previous rotations for the container are lost. By default, Kubernetes keeps up to five logging rotations per container. - -The Kubernetes logging configuration differs depending on the node type. For example, you can find detailed information for GCI in the corresponding [configure helper](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/cluster/gce/gci/configure-helper.sh#L96). - -When you run [`kubectl logs`](/docs/user-guide/kubectl/kubectl_logs), as in the basic logging example, the kubelet on the node handles the request and reads directly from the log file, returning the contents in the response. Note that `kubectl logs` **only returns the last rotation**; you must manually extract prior rotations, if desired and cluster-level logging is not enabled. - -### System component logs - -There are two types of system components: those that run in a container and those -that do not run in a container. For example: - -* The Kubernetes scheduler and kube-proxy run in a container. -* The kubelet and container runtime, for example Docker, do not run in containers. - -On machines with systemd, the kubelet and container runtime write to journald. If -systemd is not present, they write to `.log` files in the `/var/log` directory. -System components inside containers always write to the `/var/log` directory, -bypassing the default logging mechanism. They use the [glog](https://godoc.org/github.com/golang/glog) -logging library. You can find the conventions for logging severity for those -components in the [development docs on logging](https://github.com/kubernetes/community/blob/master/contributors/devel/logging.md). - -Similarly to the container logs, system component logs in the `/var/log` -directory are rotated daily and based on the log size. However, -system component logs have a higher size retention: by default, -they can store up to 100MB. - -## Cluster-level logging architectures - -While Kubernetes does not provide a native solution for cluster-level logging, there are several common approaches you can consider. Here are some options: - -* Use a node-level logging agent that runs on every node. -* Include a dedicated sidecar container for logging in an application pod. -* Push logs directly to a backend from within an application. - -### Using a node logging agent - -![Using a node level logging agent](/images/docs/user-guide/logging/logging-with-node-agent.png) - -You can implement cluster-level logging by including a _node-level logging agent_ on each node. The logging agent is a dedicated tool that exposes logs or pushes logs to a backend. Commonly, the logging agent is a container that has access to a directory with log files from all of the application containers on that node. - -Because the logging agent must run on every node, it's common to implement it as either a DaemonSet replica, a manifest pod, or a dedicated native process on the node. However the latter two approaches are deprecated and highly discouraged. - -Using a node-level logging agent is the most common and encouraged approach for a Kubernetes cluster, because it creates only one agent per node, and it doesn't require any changes to the applications running on the node. However, node-level logging _only works for applications' standard output and standard error_. - -Kubernetes doesn't specify a logging agent, but two optional logging agents are packaged with the Kubernetes release: [Stackdriver Logging](/docs/user-guide/logging/stackdriver) for use with Google Cloud Platform, and [Elasticsearch](/docs/user-guide/logging/elasticsearch). You can find more information and instructions in the dedicated documents. Both use [fluentd](http://www.fluentd.org/) with custom configuration as an agent on the node. - -### Using a sidecar container with the logging agent - -You can use a sidecar container in one of the following ways: - -* The sidecar container streams application logs to its own `stdout`. -* The sidecar container runs a logging agent, which is configured to pick up logs from an application container. - -#### Streaming sidecar container - -![Sidecar container with a streaming container](/images/docs/user-guide/logging/logging-with-streaming-sidecar.png) - -By having your sidecar containers stream to their own `stdout` and `stderr` -streams, you can take advantage of the kubelet and the logging agent that -already run on each node. The sidecar containers read logs from a file, a socket, -or the journald. Each individual sidecar container prints log to its own `stdout` -or `stderr` stream. - -This approach allows you to separate several log streams from different -parts of your application, some of which can lack support -for writing to `stdout` or `stderr`. The logic behind redirecting logs -is minimal, so it's hardly a significant overhead. Additionally, because -`stdout` and `stderr` are handled by the kubelet, you can use built-in tools -like `kubectl logs`. - -Consider the following example. A pod runs a single container, and the container -writes to two different log files, using two different formats. Here's a -configuration file for the Pod: - -{% include code.html language="yaml" file="examples/two-files-counter-pod.yaml" ghlink="/docs/user-guide/logging/examples/two-files-counter-pod.yaml" %} - -It would be a mess to have log entries of different formats in the same log -stream, even if you managed to redirect both components to the `stdout` stream of -the container. Instead, you could introduce two sidecar containers. Each sidecar -container could tail a particular log file from a shared volume and then redirect -the logs to its own `stdout` stream. - -Here's a configuration file for a pod that has two sidecar containers: - -{% include code.html language="yaml" file="examples/two-files-counter-pod-streaming-sidecar.yaml" ghlink="/docs/user-guide/logging/examples/two-files-counter-pod-streaming-sidecar.yaml" %} - -Now when you run this pod, you can access each log stream separately by -running the following commands: - -```shell -$ kubectl logs counter count-log-1 -0: Mon Jan 1 00:00:00 UTC 2001 -1: Mon Jan 1 00:00:01 UTC 2001 -2: Mon Jan 1 00:00:02 UTC 2001 -... -``` - -```shell -$ kubectl logs counter count-log-2 -Mon Jan 1 00:00:00 UTC 2001 INFO 0 -Mon Jan 1 00:00:01 UTC 2001 INFO 1 -Mon Jan 1 00:00:02 UTC 2001 INFO 2 -... -``` - -The node-level agent installed in your cluster picks up those log streams -automatically without any further configuration. If you like, you can configure -the agent to parse log lines depending on the source container. - -Note, that despite low CPU and memory usage (order of couple of millicores -for cpu and order of several megabytes for memory), writing logs to a file and -then streaming them to `stdout` can double disk usage. If you have -an application that writes to a single file, it's generally better to set -`/dev/stdout` as destination rather than implementing the streaming sidecar -container approach. - -Sidecar containers can also be used to rotate log files that cannot be -rotated by the application itself. [An example](https://github.com/samsung-cnct/logrotate) -of this approach is a small container running logrotate periodically. -However, it's recommended to use `stdout` and `stderr` directly and leave rotation -and retention policies to the kubelet. - -#### Sidecar container with a logging agent - -![Sidecar container with a logging agent](/images/docs/user-guide/logging/logging-with-sidecar-agent.png) - -If the node-level logging agent is not flexible enough for your situation, you -can create a sidecar container with a separate logging agent that you have -configured specifically to run with your application. - -**Note**: Using a logging agent in a sidecar container can lead -to significant resource consumption. Moreover, you won't be able to access -those logs using `kubectl logs` command, because they are not controlled -by the kubelet. - -As an example, you could use [Stackdriver](/docs/user-guide/logging/stackdriver/), -which uses fluentd as a logging agent. Here are two configuration files that -you can use to implement this approach. The first file contains -a [ConfigMap](/docs/user-guide/configmap/) to configure fluentd. - -{% include code.html language="yaml" file="examples/fluentd-sidecar-config.yaml" ghlink="/docs/user-guide/logging/examples/fluentd-sidecar-config.yaml" %} - -**Note**: The configuration of fluentd is beyond the scope of this article. For -information about configuring fluentd, see the -[official fluentd documentation](http://docs.fluentd.org/). - -The second file describes a pod that has a sidecar container running fluentd. -The pod mounts a volume where fluentd can pick up its configuration data. - -{% include code.html language="yaml" file="examples/two-files-counter-pod-agent-sidecar.yaml" ghlink="/docs/user-guide/logging/examples/two-files-counter-pod-agent-sidecar.yaml" %} - -After some time you can find log messages in the Stackdriver interface. - -Remember, that this is just an example and you can actually replace fluentd -with any logging agent, reading from any source inside an application -container. - -### Exposing logs directly from the application - -![Exposing logs directly from the application](/images/docs/user-guide/logging/logging-from-application.png) - -You can implement cluster-level logging by exposing or pushing logs directly from -every application; however, the implementation for such a logging mechanism -is outside the scope of Kubernetes. +[Logging and Monitoring Cluster Activity](/docs/concepts/clusters/logging/) diff --git a/docs/user-guide/logging/stackdriver.md b/docs/user-guide/logging/stackdriver.md index b71947ee1f..5664357ee5 100644 --- a/docs/user-guide/logging/stackdriver.md +++ b/docs/user-guide/logging/stackdriver.md @@ -5,144 +5,6 @@ assignees: title: Logging with Stackdriver Logging --- -Before reading this page, it's highly recommended to familiarize yourself with the [overview of logging in Kubernetes](/docs/user-guide/logging/overview). +{% include user-guide-content-moved.md %} -This article assumes that you have created a Kubernetes cluster with cluster-level logging support for sending logs to Stackdriver Logging. You can do this either by selecting the **Enable Stackdriver Logging** checkbox in the create cluster dialogue in [GKE](https://cloud.google.com/container-engine/), or by setting the `KUBE_LOGGING_DESTINATION` flag to `gcp` when manually starting a cluster using `kube-up.sh`. - -The following guide describes gathering a container's standard output and standard error. To gather logs written by an application to a file, you can use [a sidecar approach](https://github.com/kubernetes/contrib/blob/master/logging/fluentd-sidecar-gcp/README.md). - -## Overview - -After creation, you can discover logging agent pods in the `kube-system` namespace, -one per node, by running the following command: - -```shell -$ kubectl get pods --namespace=kube-system -NAME READY STATUS RESTARTS AGE -... -fluentd-gcp-v1.30-50gnc 1/1 Running 0 5d -fluentd-gcp-v1.30-v255c 1/1 Running 0 5d -fluentd-gcp-v1.30-f02l5 1/1 Running 0 5d -... -``` - -To understand how logging with Stackdriver works, consider the following -synthetic log generator pod specification [counter-pod.yaml](/docs/user-guide/logging/examples/counter-pod.yaml): - -{% include code.html language="yaml" file="examples/counter-pod.yaml" ghlink="/docs/user-guide/logging/examples/counter-pod.yaml" %} - -This pod specification has one container that runs a bash script -that writes out the value of a counter and the date once per -second, and runs indefinitely. Let's create this pod in the default namespace. - -```shell -$ kubectl create -f http://k8s.io/docs/user-guide/logging/examples/counter-pod.yaml -pod "counter" created -``` - -You can observe the running pod: - -```shell -$ kubectl get pods -NAME READY STATUS RESTARTS AGE -counter 1/1 Running 0 5m -``` - -For a short period of time you can observe the 'Pending' pod status, because the kubelet -has to download the container image first. When the pod status changes to `Running` -you can use the `kubectl logs` command to view the output of this counter pod. - -```shell -$ kubectl logs counter -0: Mon Jan 1 00:00:00 UTC 2001 -1: Mon Jan 1 00:00:01 UTC 2001 -2: Mon Jan 1 00:00:02 UTC 2001 -... -``` - -As described in the logging overview, this command fetches log entries -from the container log file. If the container is killed and then restarted by -Kubernetes, you can still access logs from the previous container. However, -if the pod is evicted from the node, log files are lost. Let's demonstrate this -by deleting the currently running counter container: - -```shell -$ kubectl delete pod counter -pod "counter" deleted -``` - -and then recreating it: - -```shell -$ kubectl create -f http://k8s.io/docs/user-guide/logging/examples/counter-pod.yaml -pod "counter" created -``` - -After some time, you can access logs from the counter pod again: - -```shell -$ kubectl logs counter -0: Mon Jan 1 00:01:00 UTC 2001 -1: Mon Jan 1 00:01:01 UTC 2001 -2: Mon Jan 1 00:01:02 UTC 2001 -... -``` - -As expected, only recent log lines are present. However, for a real-world -application you will likely want to be able to access logs from all containers, -especially for the debug purposes. This is exactly when the previously enabled -Stackdriver Logging can help. - -## Viewing logs - -Stackdriver Logging agent attaches metadata to each log entry, for you to use later -in queries to select only the messages you're interested in: for example, -the messages from a particular pod. - -The most important pieces of metadata are the resource type and log name. -The resource type of a container log is `container`, which is named -`GKE Containers` in the UI (even if the Kubernetes cluster is not on GKE). -The log name is the name of the container, so that if you have a pod with -two containers, named `container_1` and `container_2` in the spec, their logs -will have log names `container_1` and `container_2` respectively. - -System components have resource type `compute`, which is named -`GCE VM Instance` in the interface. Log names for system components are fixed. -For a GKE node, every log entry from a system component has one the following -log names: - -* docker -* kubelet -* kube-proxy - -You can learn more about viewing logs on [the dedicated Stackdriver page](https://cloud.google.com/logging/docs/view/logs_viewer). - -One of the possible ways to view logs is using the -[`gcloud logging`](https://cloud.google.com/logging/docs/api/gcloud-logging) -command line interface from the [Google Cloud SDK](https://cloud.google.com/sdk/). -It uses Stackdriver Logging [filtering syntax](https://cloud.google.com/logging/docs/view/advanced_filters) -to query specific logs. For example, you can run the following command: - -```shell -$ gcloud beta logging read 'logName="projects/$YOUR_PROJECT_ID/logs/count"' --format json | jq '.[].textPayload' -... -"2: Mon Jan 1 00:01:02 UTC 2001\n" -"1: Mon Jan 1 00:01:01 UTC 2001\n" -"0: Mon Jan 1 00:01:00 UTC 2001\n" -... -"2: Mon Jan 1 00:00:02 UTC 2001\n" -"1: Mon Jan 1 00:00:01 UTC 2001\n" -"0: Mon Jan 1 00:00:00 UTC 2001\n" -``` - -As you can see, it outputs messages for the count container from both -the first and second runs, despite the fact that the kubelet already deleted -the logs for the first container. - -### Exporting logs - -You can export logs to [Google Cloud Storage](https://cloud.google.com/storage/) -or to [BigQuery](https://cloud.google.com/bigquery/) to run further -analysis. Stackdriver Logging offers the concept of sinks, where you can -specify the destination of log entries. More information is available on -the Stackdriver [Exporting Logs page](https://cloud.google.com/logging/docs/export/configure_export_v2). +[Logging Using Stackdriver](/docs/tasks/debug-application-cluster/logging-stackdriver/) From adee25b76890b5980b51610c7fffc88649af1c67 Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Fri, 3 Mar 2017 12:10:47 -0800 Subject: [PATCH 35/58] Disallow indexing for liveness/index (#2689) --- robots.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/robots.txt b/robots.txt index 10fff656d2..313b796af8 100644 --- a/robots.txt +++ b/robots.txt @@ -5,6 +5,7 @@ Disallow: /v1.0/ Disallow: /v1.1/ Disallow: /404/ Disallow: 404.html -Disallow: /docs/user-guide/docs/user-guide/simple-nginx/ +Disallow: /docs/user-guide/simple-nginx +Disallow: /docs/user-guide/liveness/index SITEMAP: http://kubernetes.io/sitemap.xml From 4d7aecf5de8b1c5e76515899a4292335f42f298b Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Fri, 3 Mar 2017 13:32:41 -0800 Subject: [PATCH 36/58] Deprecate Guide topics. (#2691) --- _data/guides.yml | 4 ---- .../configuration/container-command-args.md | 3 +++ docs/tasks/index.md | 5 ++++ .../run-stateless-application-deployment.md | 2 ++ docs/user-guide/configuring-containers.md | 7 ------ docs/user-guide/containers.md | 10 -------- docs/user-guide/pods/single-container.md | 7 ------ docs/user-guide/production-pods.md | 23 ------------------- robots.txt | 8 ++++++- 9 files changed, 17 insertions(+), 52 deletions(-) delete mode 100644 docs/user-guide/configuring-containers.md delete mode 100644 docs/user-guide/containers.md delete mode 100644 docs/user-guide/pods/single-container.md delete mode 100644 docs/user-guide/production-pods.md diff --git a/_data/guides.yml b/_data/guides.yml index df3ebad90a..87ca562c6f 100644 --- a/_data/guides.yml +++ b/_data/guides.yml @@ -56,13 +56,9 @@ toc: - title: Containers and Pods section: - - docs/user-guide/pods/single-container.md - docs/user-guide/pods/multi-container.md - docs/user-guide/pods/init-container.md - - docs/user-guide/configuring-containers.md - docs/user-guide/pod-templates.md - - docs/user-guide/production-pods.md - - docs/user-guide/containers.md - docs/user-guide/environment-guide/index.md - docs/user-guide/compute-resources.md - docs/user-guide/pod-states.md diff --git a/docs/concepts/configuration/container-command-args.md b/docs/concepts/configuration/container-command-args.md index 3f39baff57..c2dafaadfa 100644 --- a/docs/concepts/configuration/container-command-args.md +++ b/docs/concepts/configuration/container-command-args.md @@ -1,5 +1,8 @@ --- title: Container Command and Arguments +redirect_from: +- "/docs/user-guide/containers/" +- "/docs/user-guide/containers.html" --- {% capture overview %} diff --git a/docs/tasks/index.md b/docs/tasks/index.md index 6bd8db2e6c..1b532b9232 100644 --- a/docs/tasks/index.md +++ b/docs/tasks/index.md @@ -1,5 +1,10 @@ --- title: Tasks +redirect_from: +- "/docs/user-guide/configuring-containers/" +- "/docs/user-guide/configuring-containers.html" +- "/docs/user-guide/production-pods/" +- "/docs/user-guide/production-pods.html" --- This section of the Kubernetes documentation contains pages that diff --git a/docs/tutorials/stateless-application/run-stateless-application-deployment.md b/docs/tutorials/stateless-application/run-stateless-application-deployment.md index 2b9793bfa4..c81bcdae18 100644 --- a/docs/tutorials/stateless-application/run-stateless-application-deployment.md +++ b/docs/tutorials/stateless-application/run-stateless-application-deployment.md @@ -3,6 +3,8 @@ title: Running a Stateless Application Using a Deployment redirect_from: - "/docs/user-guide/simple-nginx/" - "/docs/user-guide/simple-nginx.html" +- "/docs/user-guide/pods/single-container/" +- "/docs/user-guide/pods/single-container.html" --- {% capture overview %} diff --git a/docs/user-guide/configuring-containers.md b/docs/user-guide/configuring-containers.md deleted file mode 100644 index 8e09d7aaa4..0000000000 --- a/docs/user-guide/configuring-containers.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Configuring Containers ---- - -{% include user-guide-content-moved.md %} - -[Tasks](/docs/tasks/) diff --git a/docs/user-guide/containers.md b/docs/user-guide/containers.md deleted file mode 100644 index dfe48ade49..0000000000 --- a/docs/user-guide/containers.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -assignees: -- mikedanese -title: Commands and Capabilities ---- - -{% include user-guide-content-moved.md %} - -* [Container Command and Arguments](/docs/concepts/configuration/container-command-args/) -* [Container Capabilities](/docs/concepts/policy/container-capabilities/) diff --git a/docs/user-guide/pods/single-container.md b/docs/user-guide/pods/single-container.md deleted file mode 100644 index fd7a44ba66..0000000000 --- a/docs/user-guide/pods/single-container.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Creating Single-Container Pods ---- - -{% include user-guide-content-moved.md %} - -[Running a Stateless Application Using a Deployment](/docs/tutorials/stateless-application/run-stateless-application-deployment/) diff --git a/docs/user-guide/production-pods.md b/docs/user-guide/production-pods.md deleted file mode 100644 index 5ea3a0edd5..0000000000 --- a/docs/user-guide/production-pods.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Working with Containers in Production ---- - -{% include user-guide-content-moved.md %} - -* [Configuring a Pod to Use a Volume for Storage](/docs/tasks/configure-pod-container/configure-volume-storage/) - -* [Distributing Credentials Securely](/docs/tasks/configure-pod-container/distribute-credentials-secure/) - -* [Pulling an Image from a Private Registry](/docs/tasks/configure-pod-container/pull-image-private-registry/) - -* [Communicating Between Containers Running in the Same Pod](/docs/tasks/configure-pod-container/communicate-containers-same-pod/) - -* [Assigning CPU and RAM Resources to a Container](/docs/tasks/configure-pod-container/assign-cpu-ram-container/) - -* [Configuring Liveness and Readiness Probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) - -* [Configuring Pod Initialization](/docs/tasks/configure-pod-container/configure-pod-initialization/) - -* [Attaching Handlers to Container Lifecycle Events](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/) - -* [Determining the Reason for Pod Failure](/docs/tasks/debug-application-cluster/determine-reason-pod-failure/) diff --git a/robots.txt b/robots.txt index 313b796af8..34417b3527 100644 --- a/robots.txt +++ b/robots.txt @@ -5,7 +5,13 @@ Disallow: /v1.0/ Disallow: /v1.1/ Disallow: /404/ Disallow: 404.html -Disallow: /docs/user-guide/simple-nginx + +Disallow: /docs/user-guide/configuring-containers +Disallow: /docs/user-guide/containers Disallow: /docs/user-guide/liveness/index +Disallow: /docs/user-guide/simple-nginx +Disallow: /docs/user-guide/production-pods + +Disallow: /docs/user-guide/pods/single-container SITEMAP: http://kubernetes.io/sitemap.xml From 50471b3395fa74452634a0d832f05bf2df93340f Mon Sep 17 00:00:00 2001 From: Eduardo Baitello Date: Fri, 3 Mar 2017 16:21:22 -0300 Subject: [PATCH 37/58] Wrong label and kubectl get completed pods The label `app=jobexample` should be `jobgroup=jobexample`. Also, for get completed pods the flag `--show-all` is necessary. --- docs/user-guide/jobs/expansions/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/jobs/expansions/index.md b/docs/user-guide/jobs/expansions/index.md index f401574519..8d5cb87bd4 100644 --- a/docs/user-guide/jobs/expansions/index.md +++ b/docs/user-guide/jobs/expansions/index.md @@ -71,7 +71,7 @@ job "process-item-cherry" created Now, check on the jobs: ```shell -$ kubectl get jobs -l app=jobexample +$ kubectl get jobs -l jobgroup=jobexample JOB CONTAINER(S) IMAGE(S) SELECTOR SUCCESSFUL process-item-apple c busybox app in (jobexample),item in (apple) 1 process-item-banana c busybox app in (jobexample),item in (banana) 1 @@ -85,7 +85,7 @@ do not care to see.) We can check on the pods as well using the same label selector: ```shell -$ kubectl get pods -l app=jobexample +$ kubectl get pods -l jobgroup=jobexample --show-all NAME READY STATUS RESTARTS AGE process-item-apple-kixwv 0/1 Completed 0 4m process-item-banana-wrsf7 0/1 Completed 0 4m @@ -96,7 +96,7 @@ There is not a single command to check on the output of all jobs at once, but looping over all the pods is pretty easy: ```shell -$ for p in $(kubectl get pods -l app=jobexample -o name) +$ for p in $(kubectl get pods -l jobgroup=jobexample -o name) do kubectl logs $p done From c235b99649b94cec2bc15dc01d063515022efd4e Mon Sep 17 00:00:00 2001 From: Xiaoyu Zhang Date: Fri, 3 Mar 2017 17:39:53 +0800 Subject: [PATCH 38/58] Update garbage-collection.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit change “any” to "every" --- docs/admin/garbage-collection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/garbage-collection.md b/docs/admin/garbage-collection.md index f34b7e3156..6ee78b5079 100644 --- a/docs/admin/garbage-collection.md +++ b/docs/admin/garbage-collection.md @@ -23,7 +23,7 @@ threshold has been met. ### Container Collection -The policy for garbage collecting containers considers three user-defined variables. `MinAge` is the minimum age at which a container can be garbage collected. `MaxPerPodContainer` is the maximum number of dead containers any single +The policy for garbage collecting containers considers three user-defined variables. `MinAge` is the minimum age at which a container can be garbage collected. `MaxPerPodContainer` is the maximum number of dead containers every single pod (UID, container name) pair is allowed to have. `MaxContainers` is the maximum number of total dead containers. These variables can be individually disabled by setting `MinAge` to zero and setting `MaxPerPodContainer` and `MaxContainers` respectively to less than zero. Kubelet will act on containers that are unidentified, deleted, or outside of the boundaries set by the previously mentioned flags. The oldest containers will generally be removed first. `MaxPerPodContainer` and `MaxContainer` may potentially conflict with each other in situations where retaining the maximum number of containers per pod (`MaxPerPodContainer`) would go outside the allowable range of global dead containers (`MaxContainers`). `MaxPerPodContainer` would be adjusted in this situation: A worst case scenario would be to downgrade `MaxPerPodContainer` to 1 and evict the oldest containers. Additionally, containers owned by pods that have been deleted are removed once they are older than `MinAge`. From a238ed8ced30d24e48fe656a742fb383df1ff51b Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Fri, 3 Mar 2017 14:02:35 -0800 Subject: [PATCH 39/58] Deprecate Guide topic: Persistent Volume Walkthrough. (#2692) --- _data/guides.yml | 1 - .../configure-persistent-volume-storage.md | 3 +++ docs/user-guide/persistent-volumes/walkthrough.md | 10 ---------- robots.txt | 1 + 4 files changed, 4 insertions(+), 11 deletions(-) delete mode 100644 docs/user-guide/persistent-volumes/walkthrough.md diff --git a/_data/guides.yml b/_data/guides.yml index 87ca562c6f..318f965319 100644 --- a/_data/guides.yml +++ b/_data/guides.yml @@ -67,7 +67,6 @@ toc: - docs/user-guide/node-selection/index.md - docs/user-guide/downward-api/index.md - docs/user-guide/downward-api/volume/index.md - - docs/user-guide/persistent-volumes/walkthrough.md - docs/user-guide/petset/bootstrapping/index.md - title: Monitoring, Logging, and Debugging Containers diff --git a/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md b/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md index 27b5249138..f5be254f2e 100644 --- a/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md +++ b/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md @@ -1,5 +1,8 @@ --- title: Configuring a Pod to Use a PersistentVolume for Storage +redirect_from: +- "/docs/user-guide/persistent-volumes/walkthrough/" +- "/docs/user-guide/persistent-volumes/walkthrough.html" --- {% capture overview %} diff --git a/docs/user-guide/persistent-volumes/walkthrough.md b/docs/user-guide/persistent-volumes/walkthrough.md deleted file mode 100644 index 2feee3f7d9..0000000000 --- a/docs/user-guide/persistent-volumes/walkthrough.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -assignees: -- jsafrane -- saad-ali -title: Persistent Volumes Walkthrough ---- - -{% include user-guide-content-moved.md %} - -[Configuring a Pod to Use a Persistent Volume for Storage](/docs/tasks/configure-pod-container/configure-persistent-volume-storage/) diff --git a/robots.txt b/robots.txt index 34417b3527..8e77127e0b 100644 --- a/robots.txt +++ b/robots.txt @@ -12,6 +12,7 @@ Disallow: /docs/user-guide/liveness/index Disallow: /docs/user-guide/simple-nginx Disallow: /docs/user-guide/production-pods +Disallow: /docs/user-guide/persistent-volumes/walkthrough Disallow: /docs/user-guide/pods/single-container SITEMAP: http://kubernetes.io/sitemap.xml From 1407f52478aab79b36c0b9b4bf5a03db12163232 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Fri, 3 Mar 2017 14:18:52 -0800 Subject: [PATCH 40/58] Reimplement PR #2525 Fixes typo by removing the word "controller" --- docs/admin/admission-controllers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/admission-controllers.md b/docs/admin/admission-controllers.md index 29429c5b2c..fada47fd50 100644 --- a/docs/admin/admission-controllers.md +++ b/docs/admin/admission-controllers.md @@ -87,7 +87,7 @@ The ImagePolicyWebhook plug-in allows a backend webhook to make admission decisi ``` #### Configuration File Format -ImagePolicyWebhook uses the admission controller config file (`--admission-controller-config-file`) to set configuration options for the behavior of the backend. This file may be json or yaml and has the following format: +ImagePolicyWebhook uses the admission config file `--admission-controller-config-file` to set configuration options for the behavior of the backend. This file may be json or yaml and has the following format: ```javascript { From b50ffef3fb6244817448422d6ba1f335b04b05cf Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Fri, 3 Mar 2017 14:19:34 -0800 Subject: [PATCH 41/58] remove extra space --- docs/admin/admission-controllers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/admission-controllers.md b/docs/admin/admission-controllers.md index fada47fd50..e3d839f0d5 100644 --- a/docs/admin/admission-controllers.md +++ b/docs/admin/admission-controllers.md @@ -87,7 +87,7 @@ The ImagePolicyWebhook plug-in allows a backend webhook to make admission decisi ``` #### Configuration File Format -ImagePolicyWebhook uses the admission config file `--admission-controller-config-file` to set configuration options for the behavior of the backend. This file may be json or yaml and has the following format: +ImagePolicyWebhook uses the admission config file `--admission-controller-config-file` to set configuration options for the behavior of the backend. This file may be json or yaml and has the following format: ```javascript { From 3456093031f3661e5a81e42b4e836b3c9cd87997 Mon Sep 17 00:00:00 2001 From: Anirudh Ramanathan Date: Fri, 3 Mar 2017 15:28:17 -0700 Subject: [PATCH 42/58] Update multiple-schedulers doc (#2063) * Update tutorial * Fix md formatting. * Remove extraneous space --- docs/admin/multiple-schedulers.md | 16 ++++++++-------- docs/admin/multiple-schedulers/my-scheduler.yaml | 9 ++++++--- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/admin/multiple-schedulers.md b/docs/admin/multiple-schedulers.md index c20e129b19..e4f1b4a9f1 100644 --- a/docs/admin/multiple-schedulers.md +++ b/docs/admin/multiple-schedulers.md @@ -34,7 +34,7 @@ to build the image: ```docker FROM busybox -ADD _output/local/go/bin/kube-scheduler /usr/local/bin/kube-scheduler +ADD ./_output/dockerized/bin/linux/amd64/kube-scheduler /usr/local/bin/kube-scheduler ``` Save the file as `Dockerfile`, build the image and push it to a registry. This example @@ -45,7 +45,7 @@ For more details, please read the GCR ```shell docker build -t my-kube-scheduler:1.0 . -gcloud docker push gcr.io/my-gcp-project/my-kube-scheduler:1.0 +gcloud docker -- push gcr.io/my-gcp-project/my-kube-scheduler:1.0 ``` ### 2. Define a Kubernetes Deployment for the scheduler @@ -131,15 +131,15 @@ scheduler in that pod spec. Let's look at three examples. Save this file as `pod3.yaml` and submit it to the Kubernetes cluster. - ```shell - kubectl create -f pod3.yaml - ``` +```shell +kubectl create -f pod3.yaml +``` Verify that all three pods are running. - ```shell - kubectl get pods - ``` +```shell +kubectl get pods +``` ### Verifying that the pods were scheduled using the desired schedulers diff --git a/docs/admin/multiple-schedulers/my-scheduler.yaml b/docs/admin/multiple-schedulers/my-scheduler.yaml index aa7cc1baef..5e97f46434 100644 --- a/docs/admin/multiple-schedulers/my-scheduler.yaml +++ b/docs/admin/multiple-schedulers/my-scheduler.yaml @@ -16,8 +16,11 @@ spec: version: second spec: containers: - - command: [/usr/local/bin/kube-scheduler, --address=0.0.0.0, - --scheduler-name=my-scheduler, --leader-elect=false] + - command: + - /usr/local/bin/kube-scheduler + - --address=0.0.0.0 + - --leader-elect=false + - --scheduler-name=my-scheduler image: gcr.io/my-gcp-project/my-kube-scheduler:1.0 livenessProbe: httpGet: @@ -37,4 +40,4 @@ spec: volumeMounts: [] hostNetwork: false hostPID: false - volumes: [] \ No newline at end of file + volumes: [] From 172900f9aae66d6ba2ff762d6277f6aaacc59b5d Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Fri, 3 Mar 2017 14:54:05 -0800 Subject: [PATCH 43/58] Deprecate Guide topic: Secrets Walkthrough. (#2695) --- _data/guides.yml | 1 - .../distribute-credentials-secure.md | 3 +++ docs/user-guide/secrets/walkthrough.md | 7 ------- robots.txt | 2 ++ 4 files changed, 5 insertions(+), 8 deletions(-) delete mode 100644 docs/user-guide/secrets/walkthrough.md diff --git a/_data/guides.yml b/_data/guides.yml index 318f965319..bf188b9037 100644 --- a/_data/guides.yml +++ b/_data/guides.yml @@ -25,7 +25,6 @@ toc: - docs/user-guide/resizing-a-replication-controller.md - docs/user-guide/rolling-updates.md - docs/user-guide/update-demo/index.md - - docs/user-guide/secrets/walkthrough.md - docs/user-guide/configmap/index.md - docs/user-guide/horizontal-pod-autoscaling/walkthrough.md - docs/user-guide/config-best-practices.md diff --git a/docs/tasks/configure-pod-container/distribute-credentials-secure.md b/docs/tasks/configure-pod-container/distribute-credentials-secure.md index 1a0e25e46e..6dcd642262 100644 --- a/docs/tasks/configure-pod-container/distribute-credentials-secure.md +++ b/docs/tasks/configure-pod-container/distribute-credentials-secure.md @@ -1,5 +1,8 @@ --- title: Distributing Credentials Securely +redirect_from: +- "/docs/user-guide/secrets/walkthrough/" +- "/docs/user-guide/secrets/walkthrough.html" --- {% capture overview %} diff --git a/docs/user-guide/secrets/walkthrough.md b/docs/user-guide/secrets/walkthrough.md deleted file mode 100644 index a58364859f..0000000000 --- a/docs/user-guide/secrets/walkthrough.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Secrets Walkthrough ---- - -{% include user-guide-content-moved.md %} - -[Distributing Credentials Securely](/docs/tasks/configure-pod-container/distribute-credentials-secure/) diff --git a/robots.txt b/robots.txt index 8e77127e0b..f5e996388b 100644 --- a/robots.txt +++ b/robots.txt @@ -15,4 +15,6 @@ Disallow: /docs/user-guide/production-pods Disallow: /docs/user-guide/persistent-volumes/walkthrough Disallow: /docs/user-guide/pods/single-container +Disallow: /docs/user-guide/secrets/walkthrough + SITEMAP: http://kubernetes.io/sitemap.xml From 5e4a1ed081149d5e62491744a2b94463eb6151cf Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Fri, 3 Mar 2017 15:18:37 -0800 Subject: [PATCH 44/58] Deprecate Guide topics: quick-start ... (#2696) --- _data/guides.yml | 2 -- .../expose-external-ip-address-service.md | 3 +++ .../run-stateless-application-deployment.md | 2 ++ docs/user-guide/deploying-applications.md | 11 ----------- docs/user-guide/quick-start.md | 10 ---------- robots.txt | 9 +++++++++ 6 files changed, 14 insertions(+), 23 deletions(-) delete mode 100644 docs/user-guide/deploying-applications.md delete mode 100644 docs/user-guide/quick-start.md diff --git a/_data/guides.yml b/_data/guides.yml index bf188b9037..31be2a277e 100644 --- a/_data/guides.yml +++ b/_data/guides.yml @@ -18,8 +18,6 @@ toc: - title: Workload Deployment and Management section: - - docs/user-guide/quick-start.md - - docs/user-guide/deploying-applications.md - docs/user-guide/managing-deployments.md - docs/user-guide/replication-controller/operations.md - docs/user-guide/resizing-a-replication-controller.md diff --git a/docs/tutorials/stateless-application/expose-external-ip-address-service.md b/docs/tutorials/stateless-application/expose-external-ip-address-service.md index f4a63b1e31..8564ed7d72 100644 --- a/docs/tutorials/stateless-application/expose-external-ip-address-service.md +++ b/docs/tutorials/stateless-application/expose-external-ip-address-service.md @@ -1,5 +1,8 @@ --- title: Using a Service to Access an Application in a Cluster +redirect_from: +- "/docs/user-guide/quick-start/" +- "/docs/user-guide/quick-start.html" --- {% capture overview %} diff --git a/docs/tutorials/stateless-application/run-stateless-application-deployment.md b/docs/tutorials/stateless-application/run-stateless-application-deployment.md index c81bcdae18..831ed6bb45 100644 --- a/docs/tutorials/stateless-application/run-stateless-application-deployment.md +++ b/docs/tutorials/stateless-application/run-stateless-application-deployment.md @@ -5,6 +5,8 @@ redirect_from: - "/docs/user-guide/simple-nginx.html" - "/docs/user-guide/pods/single-container/" - "/docs/user-guide/pods/single-container.html" +- "/docs/user-guide/deploying-applications/" +- "/docs/user-guide/deploying-applications.html" --- {% capture overview %} diff --git a/docs/user-guide/deploying-applications.md b/docs/user-guide/deploying-applications.md deleted file mode 100644 index a1c04e1003..0000000000 --- a/docs/user-guide/deploying-applications.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -assignees: -- bgrant0607 -- caesarxuchao -- thockin -title: Deploying Applications ---- - -{% include user-guide-content-moved.md %} - -[Running a Stateless Application Using a Deployment](/docs/tutorials/stateless-application/run-stateless-application-deployment/) diff --git a/docs/user-guide/quick-start.md b/docs/user-guide/quick-start.md deleted file mode 100644 index 67dfb1dc77..0000000000 --- a/docs/user-guide/quick-start.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -assignees: -- bgrant0607 -- janetkuo -title: Launching, Exposing, and Killing Applications ---- - -{% include user-guide-content-moved.md %} - -[Using a Service to Access an Application in a Cluster](https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address-service/) diff --git a/robots.txt b/robots.txt index f5e996388b..3fbd70eb24 100644 --- a/robots.txt +++ b/robots.txt @@ -8,9 +8,11 @@ Disallow: 404.html Disallow: /docs/user-guide/configuring-containers Disallow: /docs/user-guide/containers +Disallow: /docs/user-guide/deploying-applications Disallow: /docs/user-guide/liveness/index Disallow: /docs/user-guide/simple-nginx Disallow: /docs/user-guide/production-pods +Disallow: /docs/user-guide/quick-start Disallow: /docs/user-guide/persistent-volumes/walkthrough Disallow: /docs/user-guide/pods/single-container @@ -18,3 +20,10 @@ Disallow: /docs/user-guide/pods/single-container Disallow: /docs/user-guide/secrets/walkthrough SITEMAP: http://kubernetes.io/sitemap.xml + + + + + + + From 1bc38a5bab60ac69fc31b88546fb635b32a82e0e Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Fri, 3 Mar 2017 16:00:04 -0800 Subject: [PATCH 45/58] Update Tasks landing page. (#2697) --- _data/tasks.yml | 5 ----- docs/tasks/index.md | 9 ++++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/_data/tasks.yml b/_data/tasks.yml index 8863559c77..bfc5c9426f 100644 --- a/_data/tasks.yml +++ b/_data/tasks.yml @@ -54,8 +54,3 @@ toc: - docs/tasks/manage-stateful-set/deleting-a-statefulset.md - docs/tasks/manage-stateful-set/debugging-a-statefulset.md - docs/tasks/manage-stateful-set/delete-pods.md - -- title: Troubleshooting - section: - - docs/tasks/troubleshoot/debug-init-containers.md - - docs/tasks/administer-cluster/access-control-identity-management/ diff --git a/docs/tasks/index.md b/docs/tasks/index.md index 1b532b9232..4572ca077b 100644 --- a/docs/tasks/index.md +++ b/docs/tasks/index.md @@ -37,9 +37,12 @@ single thing, typically by giving a short sequence of steps. * [Using Port Forwarding to Access Applications in a Cluster](/docs/tasks/access-application-cluster/port-forward-access-application-cluster/) * [Providing Load-Balanced Access to an Application in a Cluster](/docs/tasks/access-application-cluster/load-balance-access-application-cluster/) -#### Debugging Applications in a Cluster +#### Monitoring, Logging, and Debugging * [Determining the Reason for Pod Failure](/docs/tasks/debug-application-cluster/determine-reason-pod-failure/) +* [Debugging Init Containers](/docs/tasks/debug-application-cluster/debug-init-containers/) +* [Logging Using Stackdriver](/docs/tasks/debug-application-cluster/logging-stackdriver/) +* [Logging Using ElasticSearch and Kibana](/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana/) #### Accessing the Kubernetes API @@ -60,10 +63,6 @@ single thing, typically by giving a short sequence of steps. * [Debugging a StatefulSet](/docs/tasks/manage-stateful-set/debugging-a-statefulset/) * [Force Deleting StatefulSet Pods](/docs/tasks/manage-stateful-set/delete-pods/) -#### Troubleshooting - -* [Debugging Init Containers](/docs/tasks/troubleshoot/debug-init-containers/) - ### What's next If you would like to write a task page, see From 1cbcd2b596cc88d23fde75b02120456e74efb076 Mon Sep 17 00:00:00 2001 From: Guangya Liu Date: Thu, 2 Mar 2017 07:28:36 +0800 Subject: [PATCH 46/58] Highlighted command for `kubectl proxy`. --- docs/user-guide/kubectl/kubectl_proxy.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/kubectl/kubectl_proxy.md b/docs/user-guide/kubectl/kubectl_proxy.md index 9616d6add6..f2e4b9f58a 100644 --- a/docs/user-guide/kubectl/kubectl_proxy.md +++ b/docs/user-guide/kubectl/kubectl_proxy.md @@ -11,19 +11,26 @@ Run a proxy to the Kubernetes API server To proxy all of the Kubernetes api and nothing else, use: +``` $ kubectl proxy --api-prefix=/ +``` To proxy only part of the Kubernetes api and also some static files: +``` $ kubectl proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/ +``` The above lets you 'curl localhost:8001/api/v1/pods'. To proxy the entire Kubernetes api at a different root, use: +``` $ kubectl proxy --api-prefix=/custom/ +``` + +The above lets you `curl localhost:8001/custom/api/v1/pods` -The above lets you 'curl localhost:8001/custom/api/v1/pods' ``` kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] From 458f80b77a35dff4b7e310e9a28acb3a1fe47a18 Mon Sep 17 00:00:00 2001 From: "Jorge O. Castro" Date: Tue, 28 Feb 2017 11:23:10 -0500 Subject: [PATCH 47/58] Update ubuntu install instructions. --- docs/getting-started-guides/ubuntu/index.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/getting-started-guides/ubuntu/index.md b/docs/getting-started-guides/ubuntu/index.md index 5635c1d553..e5a5125f2f 100644 --- a/docs/getting-started-guides/ubuntu/index.md +++ b/docs/getting-started-guides/ubuntu/index.md @@ -20,11 +20,8 @@ Supports AWS, GCE, Azure, Joyent, OpenStack, Bare Metal and local workstation de Available for Ubuntu 16.04 and newer: ``` -sudo apt-add-repository ppa:juju/stable -sudo apt-add-repository ppa:conjure-up/next -sudo apt update -sudo apt install conjure-up -conjure-up +sudo snap install conjure-up --classic +conjure-up kubernetes ``` ### Operational Guides From 1c5e5248adcd17e52f5abac36d3cc18bb4578643 Mon Sep 17 00:00:00 2001 From: "Jorge O. Castro" Date: Tue, 28 Feb 2017 12:08:17 -0500 Subject: [PATCH 48/58] Update local instructions to new method. --- docs/getting-started-guides/ubuntu/local.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/getting-started-guides/ubuntu/local.md b/docs/getting-started-guides/ubuntu/local.md index 7285b5915a..767e867680 100644 --- a/docs/getting-started-guides/ubuntu/local.md +++ b/docs/getting-started-guides/ubuntu/local.md @@ -42,11 +42,8 @@ Next, apply those kernel parameters (you should see the above options echoed bac Now you're ready to install conjure-up and deploy Kubernetes. ``` - sudo apt-add-repository ppa:juju/stable - sudo apt-add-repository ppa:conjure-up/next - sudo apt update - sudo apt install conjure-up - + sudo snap install conjure-up --classic + conjure-up kubernetes ``` Note: During this set up phase conjure-up will ask you to "Setup an ipv6 subnet" with LXD, ensure you answer NO. ipv6 with Juju/LXD is currently unsupported. From deef42e84988e8fa52c4fe69994038a2cde8f630 Mon Sep 17 00:00:00 2001 From: Xiaoyu Zhang Date: Sat, 4 Mar 2017 15:22:54 +0800 Subject: [PATCH 49/58] update init-containers.md add one word. --- docs/concepts/abstractions/init-containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/abstractions/init-containers.md b/docs/concepts/abstractions/init-containers.md index 89738eef56..4be8890e48 100644 --- a/docs/concepts/abstractions/init-containers.md +++ b/docs/concepts/abstractions/init-containers.md @@ -67,7 +67,7 @@ have some advantages for start-up related code: `sed`, `awk`, `python`, or `dig` during setup. * The application image builder and deployer roles can work independently without the need to jointly build a single app image. -* They use Linux namespaces so they have a different filesystem view from app Containers. +* They use Linux namespaces so that they have a different filesystem view from app Containers. Consequently, they can be given access to Secrets that app Containers are not able to access. * They run to completion before any app Containers start, whereas app From ac31bb82704961108fd224a8c98e65a580ae50f1 Mon Sep 17 00:00:00 2001 From: Craig Sutherland Date: Sat, 4 Mar 2017 19:34:27 -0500 Subject: [PATCH 50/58] Minor spelling correction -- "rtk" to "rkt" --- docs/tutorials/kubernetes-basics/cluster-intro.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/kubernetes-basics/cluster-intro.html b/docs/tutorials/kubernetes-basics/cluster-intro.html index a7ca857705..1041f1af36 100644 --- a/docs/tutorials/kubernetes-basics/cluster-intro.html +++ b/docs/tutorials/kubernetes-basics/cluster-intro.html @@ -74,7 +74,7 @@ title: Using Minikube to Create a Cluster

    The Master is responsible for managing the cluster. The master coordinates all activities in your cluster, such as scheduling applications, maintaining applications' desired state, scaling applications, and rolling out new updates.

    -

    A node is a VM or a physical computer that serves as a worker machine in a Kubernetes cluster. Each node has a Kubelet, which is an agent for managing the node and communicating with the Kubernetes master. The node should also have tools for handling container operations, such as Docker or rtk. A Kubernetes cluster that handles production traffic should have a minimum of three nodes.

    +

    A node is a VM or a physical computer that serves as a worker machine in a Kubernetes cluster. Each node has a Kubelet, which is an agent for managing the node and communicating with the Kubernetes master. The node should also have tools for handling container operations, such as Docker or rkt. A Kubernetes cluster that handles production traffic should have a minimum of three nodes.

    From 133af46f89f8c9bf56f0fa6df049659aeeea0d71 Mon Sep 17 00:00:00 2001 From: Phanindra Pydisetty Date: Sun, 5 Mar 2017 10:24:43 +0530 Subject: [PATCH 51/58] fixing typo --- docs/tutorials/services/source-ip.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/services/source-ip.md b/docs/tutorials/services/source-ip.md index 4f5f7d884a..0df6c11f58 100644 --- a/docs/tutorials/services/source-ip.md +++ b/docs/tutorials/services/source-ip.md @@ -174,7 +174,7 @@ service "nodeport" annotated Now, re-run the test: ```console -$ for node in $NODES; do curl --connect-timeout 1 -s $node:$NODEPORT | grep -i client_address; do +$ for node in $NODES; do curl --connect-timeout 1 -s $node:$NODEPORT | grep -i client_address; done client_address=104.132.1.79 ``` From d8595aa4ea62638ccdbd6e7c4108d1e1da2a9686 Mon Sep 17 00:00:00 2001 From: Justin Nauman Date: Sun, 5 Mar 2017 15:53:32 -0600 Subject: [PATCH 52/58] Doc formatting update Corrected indentation for the `nonResourcePath` and got a bit zealous with restructuring that section... --- docs/admin/authorization.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/docs/admin/authorization.md b/docs/admin/authorization.md index e5c091b772..2c3e29338b 100644 --- a/docs/admin/authorization.md +++ b/docs/admin/authorization.md @@ -87,15 +87,25 @@ properties: - Subject-matching properties: - `user`, type string; the user-string from `--token-auth-file`. If you specify `user`, it must match the username of the authenticated user. - `group`, type string; if you specify `group`, it must match one of the groups of the authenticated user. `system:authenticated` matches all authenticated requests. `system:unauthenticated` matches all unauthenticated requests. - - `readonly`, type boolean, when true, means that the policy only applies to get, list, and watch operations. - Resource-matching properties: - - `apiGroup`, type string; an API group, such as `extensions`. `*` matches all API groups. - - `namespace`, type string; a namespace string. `*` matches all resource requests. - - `resource`, type string; a resource, such as `pods`. `*` matches all resource requests. + - `apiGroup`, type string; an API group. + - Ex: `extensions` + - Wildard: `*` matches all API groups. + - `namespace`, type string; a namespace. + - Ex: `kube-system` + - Wildard: `*` matches all resource requests. + - `resource`, type string; a resource type + - Ex: `pods` + - Wildcard: `*` matches all resource requests. - Non-resource-matching properties: - - `nonResourcePath`, type string; matches the non-resource request paths (like `/version` and `/apis`). `*` matches all non-resource requests. `/foo/*` matches `/foo/` and all of its subpaths. + - `nonResourcePath`, type string; non-resource request paths. + - Ex: `/version` or `/apis` + - Wildcard: + - `*` matches all non-resource requests. + - `/foo/*` matches `/foo/` and all of its subpaths. + - `readonly`, type boolean, when true, means that the policy only applies to get, list, and watch operations. -An unset property is the same as a property set to the zero value for its type +**NOTES:** An unset property is the same as a property set to the zero value for its type (e.g. empty string, 0, false). However, unset should be preferred for readability. From 3abc2a301d70a726805b85e55b24eb5ab5ac99c0 Mon Sep 17 00:00:00 2001 From: mlambert890b Date: Sun, 5 Mar 2017 20:44:47 -0800 Subject: [PATCH 53/58] Repair Spotinst logo Corrected size --- images/square-logos/spotinst.png | Bin 86339 -> 5239 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/square-logos/spotinst.png b/images/square-logos/spotinst.png index b933c77546138512c3a36c907f37cced6bdfac76..645abbed45c5cd16f3196e27a0e37a718129b19d 100644 GIT binary patch literal 5239 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 LG=NoW*v9?`NY|+G literal 86339 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�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 Date: Sun, 5 Mar 2017 20:56:00 -0800 Subject: [PATCH 54/58] fixed ASM blurb --- _includes/partner-script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/partner-script.js b/_includes/partner-script.js index ad8b4ea61a..da3cf15ee0 100644 --- a/_includes/partner-script.js +++ b/_includes/partner-script.js @@ -313,7 +313,7 @@ name: 'ASM Technologies Limited', logo: 'asmtech', link: 'http://www.asmtech.com/', - blurb: 'http://www.asmtech.com/audience-channels/software_publisher/' + blurb: 'Our technology supply chain portfolio enables your software products to be accessible, viable and available more effectively.' }, { type: 1, From e1fcf04cc185abf3597da24ef492dae0939139d5 Mon Sep 17 00:00:00 2001 From: mlambert890b Date: Sun, 5 Mar 2017 20:58:01 -0800 Subject: [PATCH 55/58] Correct ASM logo filename --- _includes/partner-script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/partner-script.js b/_includes/partner-script.js index da3cf15ee0..43352b0f03 100644 --- a/_includes/partner-script.js +++ b/_includes/partner-script.js @@ -311,7 +311,7 @@ { type: 0, name: 'ASM Technologies Limited', - logo: 'asmtech', + logo: 'asm', link: 'http://www.asmtech.com/', blurb: 'Our technology supply chain portfolio enables your software products to be accessible, viable and available more effectively.' }, From b71c9927e4f21e92800e024b3d317babdbffb2c1 Mon Sep 17 00:00:00 2001 From: Xiaoyu Zhang Date: Mon, 6 Mar 2017 18:22:51 +0800 Subject: [PATCH 56/58] Update garbage-collection.md change "any" to "every" --- docs/admin/garbage-collection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/garbage-collection.md b/docs/admin/garbage-collection.md index 6ee78b5079..ffd8ed132a 100644 --- a/docs/admin/garbage-collection.md +++ b/docs/admin/garbage-collection.md @@ -42,7 +42,7 @@ to free. Default is 80%. We also allow users to customize garbage collection policy through the following kubelet flags: 1. `minimum-container-ttl-duration`, minimum age for a finished container before it is -garbage collected. Default is 0 minute, which means any finished container will be garbaged collected. +garbage collected. Default is 0 minute, which means every finished container will be garbaged collected. 2. `maximum-dead-containers-per-container`, maximum number of old instances to retain per container. Default is 1. 3. `maximum-dead-containers`, maximum number of old instances of containers to retain globally. From 740e0798495680f94c81237349364f2e82a013db Mon Sep 17 00:00:00 2001 From: Marc CARRE Date: Mon, 6 Mar 2017 11:54:45 +0000 Subject: [PATCH 57/58] Update Weave Net's title. --- docs/getting-started-guides/network-policy/weave.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/network-policy/weave.md b/docs/getting-started-guides/network-policy/weave.md index d26634e8d9..02224b7425 100644 --- a/docs/getting-started-guides/network-policy/weave.md +++ b/docs/getting-started-guides/network-policy/weave.md @@ -1,7 +1,7 @@ --- assignees: - bboreham -title: Weave Net Addon +title: Using Weave Net for NetworkPolicy --- The [Weave Net Addon](https://www.weave.works/docs/net/latest/kube-addon/) for Kubernetes comes with a Network Policy Controller. From 68d5fe503fe4b5c3d5f7522ea41487edb347f6cb Mon Sep 17 00:00:00 2001 From: chentao1596 Date: Mon, 6 Mar 2017 14:27:04 +0800 Subject: [PATCH 58/58] fix unsupported parameter of wget command --- docs/getting-started-guides/network-policy/walkthrough.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/getting-started-guides/network-policy/walkthrough.md b/docs/getting-started-guides/network-policy/walkthrough.md index 041c4e99f8..ef722f9ddc 100644 --- a/docs/getting-started-guides/network-policy/walkthrough.md +++ b/docs/getting-started-guides/network-policy/walkthrough.md @@ -50,7 +50,7 @@ Waiting for pod default/busybox-472357175-y0m47 to be running, status is Pending Hit enter for command prompt -/ # wget -s --timeout=1 nginx +/ # wget --spider --timeout=1 nginx Connecting to nginx (10.100.0.16:80) / # ``` @@ -96,7 +96,7 @@ Waiting for pod default/busybox-472357175-y0m47 to be running, status is Pending Hit enter for command prompt -/ # wget -s --timeout=1 nginx +/ # wget --spider --timeout=1 nginx Connecting to nginx (10.100.0.16:80) wget: download timed out / # @@ -110,7 +110,7 @@ Waiting for pod default/busybox-472357175-y0m47 to be running, status is Pending Hit enter for command prompt -/ # wget -s --timeout=1 nginx +/ # wget --spider --timeout=1 nginx Connecting to nginx (10.100.0.16:80) / # ```