From 819aae8c35ffc51903a7c3b0ae7f573b1a44731b Mon Sep 17 00:00:00 2001 From: Mike Spreitzer Date: Mon, 6 Jun 2016 14:05:17 -0400 Subject: [PATCH 001/128] Fix doc issues 617, 616, and 614 For 617: changed the master setup instructions to install the kubelet after Calico. Also noted the additional file, to fix 616 and replaced `rkt` with `cni` to fix 614. --- docs/getting-started-guides/ubuntu-calico.md | 78 ++++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/docs/getting-started-guides/ubuntu-calico.md b/docs/getting-started-guides/ubuntu-calico.md index d1adfa2c73..be3d26fac4 100644 --- a/docs/getting-started-guides/ubuntu-calico.md +++ b/docs/getting-started-guides/ubuntu-calico.md @@ -70,42 +70,6 @@ The master requires the root CA public key, `ca.pem`; the apiserver certificate, sudo chown root:root /etc/kubernetes/ssl/apiserver-key.pem ``` -### Install Kubernetes on the Master - -We'll use the `kubelet` to bootstrap the Kubernetes master. - -1. Download and install the `kubelet` and `kubectl` binaries: - - ```shell - sudo wget -N -P /usr/bin http://storage.googleapis.com/kubernetes-release/release/v1.1.4/bin/linux/amd64/kubectl - sudo wget -N -P /usr/bin http://storage.googleapis.com/kubernetes-release/release/v1.1.4/bin/linux/amd64/kubelet - sudo chmod +x /usr/bin/kubelet /usr/bin/kubectl - ``` - -2. Install the `kubelet` systemd unit file and start the `kubelet`: - - ```shell - # Install the unit file - sudo wget -N -P /etc/systemd https://raw.githubusercontent.com/projectcalico/calico-cni/k8s-1.1-docs/samples/kubernetes/master/kubelet.service - - # Enable the unit file so that it runs on boot - sudo systemctl enable /etc/systemd/kubelet.service - - # Start the kubelet service - sudo systemctl start kubelet.service - ``` - -3. Download and install the master manifest file, which will start the Kubernetes master services automatically: - - ```shell - sudo mkdir -p /etc/kubernetes/manifests - sudo wget -N -P /etc/kubernetes/manifests https://raw.githubusercontent.com/projectcalico/calico-cni/k8s-1.1-docs/samples/kubernetes/master/kubernetes-master.manifest - ``` - -4. Check the progress by running `docker ps`. After a while, you should see the `etcd`, `apiserver`, `controller-manager`, `scheduler`, and `kube-proxy` containers running. - - > Note: it may take some time for all the containers to start. Don't worry if `docker ps` doesn't show any containers for a while or if some containers start before others. - ### Install Calico's etcd on the master Calico needs its own etcd cluster to store its state. In this guide we install a single-node cluster on the master server. @@ -120,7 +84,7 @@ Calico needs its own etcd cluster to store its state. In this guide we install 2. Replace all instances of `` in the `calico-etcd.manifest` file with your master's IP address. -3. Then, move the file to the `/etc/kubernetes/manifests` directory: +3. Then, move the file to the `/etc/kubernetes/manifests` directory. This will not have any effect until we later run the kubelet, but Calico seems to tolerate the lack of its etcd in the interim. ```shell sudo mv -f calico-etcd.manifest /etc/kubernetes/manifests @@ -168,6 +132,42 @@ We need to install Calico on the master. This allows the master to route packet sudo systemctl start calico-node.service ``` +### Install Kubernetes on the Master + +We'll use the `kubelet` to bootstrap the Kubernetes master. + +1. Download and install the `kubelet` and `kubectl` binaries: + + ```shell + sudo wget -N -P /usr/bin http://storage.googleapis.com/kubernetes-release/release/v1.1.4/bin/linux/amd64/kubectl + sudo wget -N -P /usr/bin http://storage.googleapis.com/kubernetes-release/release/v1.1.4/bin/linux/amd64/kubelet + sudo chmod +x /usr/bin/kubelet /usr/bin/kubectl + ``` + +2. Install the `kubelet` systemd unit file and start the `kubelet`: + + ```shell + # Install the unit file + sudo wget -N -P /etc/systemd https://raw.githubusercontent.com/projectcalico/calico-cni/k8s-1.1-docs/samples/kubernetes/master/kubelet.service + + # Enable the unit file so that it runs on boot + sudo systemctl enable /etc/systemd/kubelet.service + + # Start the kubelet service + sudo systemctl start kubelet.service + ``` + +3. Download and install the master manifest file, which will start the Kubernetes master services automatically: + + ```shell + sudo mkdir -p /etc/kubernetes/manifests + sudo wget -N -P /etc/kubernetes/manifests https://raw.githubusercontent.com/projectcalico/calico-cni/k8s-1.1-docs/samples/kubernetes/master/kubernetes-master.manifest + ``` + +4. Check the progress by running `docker ps`. After a while, you should see the `etcd`, `apiserver`, `controller-manager`, `scheduler`, and `kube-proxy` containers running. + + > Note: it may take some time for all the containers to start. Don't worry if `docker ps` doesn't show any containers for a while or if some containers start before others. + ## Set up the nodes The following steps should be run on each Kubernetes node. @@ -192,7 +192,7 @@ Worker nodes require three keys: `ca.pem`, `worker.pem`, and `worker-key.pem`. IP.1 = $ENV::WORKER_IP ``` -2. Generate the necessary TLS assets for this worker. This relies on the worker's IP address, and the `ca.pem` file generated earlier in the guide. +2. Generate the necessary TLS assets for this worker. This relies on the worker's IP address, and the `ca.pem` and `ca-key.pem` files generated earlier in the guide. ```shell # Export this worker's IP address. @@ -304,7 +304,7 @@ On your compute nodes, it is important that you install Calico before Kubernetes mkdir -p /etc/cni/net.d # Make the network configuration file - cat >/etc/rkt/net.d/10-calico.conf </etc/cni/net.d/10-calico.conf < Date: Fri, 17 Jun 2016 20:03:39 -0400 Subject: [PATCH 002/128] Updated index.md fixed sample which was failing. Updated index.md fixed sample which was failing. --- docs/user-guide/configmap/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/configmap/index.md b/docs/user-guide/configmap/index.md index 17cc9c154b..ccd3b74ebb 100644 --- a/docs/user-guide/configmap/index.md +++ b/docs/user-guide/configmap/index.md @@ -362,7 +362,7 @@ spec: containers: - name: test-container image: gcr.io/google_containers/busybox - command: [ "/bin/sh", "cat", "/etc/config/special.how" ] + command: ["cat", "/etc/config/special.how" ] volumeMounts: - name: config-volume mountPath: /etc/config From 429028dc54920e124187502e42a80c195f7bf1b5 Mon Sep 17 00:00:00 2001 From: Tolleiv Nietsch Date: Sat, 25 Jun 2016 13:04:54 +0200 Subject: [PATCH 003/128] Add some missing PVs and a capability overview --- docs/user-guide/persistent-volumes/index.md | 24 ++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index ae465eea00..1c4bb150f5 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -51,10 +51,15 @@ The reclaim policy for a `PersistentVolume` tells the cluster what to do with th * GCEPersistentDisk * AWSElasticBlockStore +* AzureFile +* FC (Fibre Channel) * NFS * iSCSI * RBD (Ceph Block Device) +* CephFS +* Cinder (OpenStack block storage) * Glusterfs +* VsphereVolume * HostPath (single node testing only -- local storage is not supported in any way and WILL NOT WORK in a multi-node cluster) @@ -86,7 +91,7 @@ Currently, storage size is the only resource that can be set or requested. Futu ### Access Modes -A `PersistentVolume` can be mounted on a host in any way supported by the resource provider. Providers will have different capabilities and each PV's access modes are set to the specific modes supported by that particular volume. For example, NFS can support multiple read/write clients, but a specific NFS PV might be exported on the server as read-only. Each PV gets its own set of access modes describing that specific PV's capabilities. +A `PersistentVolume` can be mounted on a host in any way supported by the resource provider. As shown in the table below, providers will have different capabilities and each PV's access modes are set to the specific modes supported by that particular volume. For example, NFS can support multiple read/write clients, but a specific NFS PV might be exported on the server as read-only. Each PV gets its own set of access modes describing that specific PV's capabilities. The access modes are: @@ -103,6 +108,23 @@ In the CLI, the access modes are abbreviated to: > __Important!__ A volume can only be mounted using one access mode at a time, even if it supports many. For example, a GCEPersistentDisk can be mounted as ReadWriteOnce by a single node or ReadOnlyMany by many nodes, but not at the same time. +| | ReadWriteOnce| ReadOnlyMany| ReadWriteMany| +| :--- | :---: | :---: | :---: | +| AWSElasticBlockStore | x | - | - | +| AzureFile | x | x | x | +| CephFS | x | x | x | +| Cinder | x | - | - | +| FC | x | x | - | +| FlexVolume | x | x | - | +| GCEPersistentDisk | x | x | - | +| Glusterfs | x | x | x | +| HostPath | x | - | - | +| iSCSI | x | x | - | +| NFS | x | x | x | +| RDB | x | x | - | +| VsphereVolume | x | - | - | + + ### Recycling Policy Current recycling policies are: From ad83d18db4acb3c1f784839cf5230aa32002b27b Mon Sep 17 00:00:00 2001 From: Tolleiv Nietsch Date: Thu, 30 Jun 2016 12:32:40 +0200 Subject: [PATCH 004/128] Add header to the empty column --- docs/getting-started-guides/ubuntu.md | 4 ++-- docs/user-guide/persistent-volumes/index.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/getting-started-guides/ubuntu.md b/docs/getting-started-guides/ubuntu.md index c47a15dc9d..ac1abbf233 100644 --- a/docs/getting-started-guides/ubuntu.md +++ b/docs/getting-started-guides/ubuntu.md @@ -80,7 +80,7 @@ First configure the cluster information in cluster/ubuntu/config-default.sh, fol ```shell export nodes="vcap@10.10.103.250 vcap@10.10.103.162 vcap@10.10.103.223" -export role="ai i i" +export roles="ai i i" export NUM_NODES=${NUM_NODES:-3} @@ -92,7 +92,7 @@ export FLANNEL_NET=172.16.0.0/16 The first variable `nodes` defines all your cluster nodes, master node comes first and separated with blank space like ` ` -Then the `role` variable defines the role of above machine in the same order, "ai" stands for machine +Then the `roles` variable defines the role of above machine in the same order, "ai" stands for machine acts as both master and node, "a" stands for master, "i" stands for node. The `NUM_NODES` variable defines the total number of nodes. diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index 1c4bb150f5..27fb34f14f 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -108,7 +108,7 @@ In the CLI, the access modes are abbreviated to: > __Important!__ A volume can only be mounted using one access mode at a time, even if it supports many. For example, a GCEPersistentDisk can be mounted as ReadWriteOnce by a single node or ReadOnlyMany by many nodes, but not at the same time. -| | ReadWriteOnce| ReadOnlyMany| ReadWriteMany| +| Volume Plugin | ReadWriteOnce| ReadOnlyMany| ReadWriteMany| | :--- | :---: | :---: | :---: | | AWSElasticBlockStore | x | - | - | | AzureFile | x | x | x | From d58ba7b075bb4848349a2c920caaa08ff3773d70 Mon Sep 17 00:00:00 2001 From: Dmitry Shulyak Date: Wed, 20 Jul 2016 17:05:19 +0300 Subject: [PATCH 005/128] Add example mounting ConfigMap as a single file into /etc dir ref: https://github.com/kubernetes/kubernetes/pull/22575 --- docs/user-guide/configmap/README.md | 3 +++ docs/user-guide/configmap/mount-file-pod.yaml | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 docs/user-guide/configmap/mount-file-pod.yaml diff --git a/docs/user-guide/configmap/README.md b/docs/user-guide/configmap/README.md index e6bf6f52a5..2df57176dd 100644 --- a/docs/user-guide/configmap/README.md +++ b/docs/user-guide/configmap/README.md @@ -101,3 +101,6 @@ This pod runs a `cat` command to print the value of one of the keys in the volum $ kubectl logs config-volume-test-pod value-1 ``` + +Alternatively you can use [`mount-file-pod.yaml`](mount-file-pod.yaml) file to mount +only a file from ConfigMap, preserving original content of /etc directory. diff --git a/docs/user-guide/configmap/mount-file-pod.yaml b/docs/user-guide/configmap/mount-file-pod.yaml new file mode 100644 index 0000000000..7efd9b4003 --- /dev/null +++ b/docs/user-guide/configmap/mount-file-pod.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: Pod +metadata: + name: config-single-file-volume-pod +spec: + containers: + - name: test-container + image: gcr.io/google_containers/busybox + command: [ "/bin/sh", "-c", "cat /etc/special-key" ] + volumeMounts: + - name: config-volume + mountPath: /etc/special-key + subPath: path/to/special-key + volumes: + - name: config-volume + configMap: + name: test-configmap + items: + - key: data-1 + path: path/to/special-key + restartPolicy: Never From febeb5825b711527331fa901fe24efa4473bc5a0 Mon Sep 17 00:00:00 2001 From: George G Date: Fri, 15 Jul 2016 13:34:58 +0100 Subject: [PATCH 006/128] scratch.md: kubernetes/cluster/images/etcd/Makefile no longer uses ETCD_VERSION --- docs/getting-started-guides/scratch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index a40b4ec546..658a1de190 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -179,7 +179,7 @@ For etcd, you can: We recommend that you use the etcd version which is provided in the Kubernetes binary distribution. The Kubernetes binaries in the release were tested extensively with this version of etcd and not with any other version. -The recommended version number can also be found as the value of `ETCD_VERSION` in `kubernetes/cluster/images/etcd/Makefile`. +The recommended version number can also be found as the value of `TAG` in `kubernetes/cluster/images/etcd/Makefile`. The remainder of the document assumes that the image identifiers have been chosen and stored in corresponding env vars. Examples (replace with latest tags and appropriate registry): From c2f5bf2cc650f933fadf715562d419f214e163ea Mon Sep 17 00:00:00 2001 From: George G Date: Fri, 15 Jul 2016 13:38:14 +0100 Subject: [PATCH 007/128] scratch.md: Don't duplicate CA instructions --- docs/getting-started-guides/scratch.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index 658a1de190..34d75a79d8 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -208,11 +208,10 @@ You need to prepare several certs: - The kubelets optionally need certs to identify themselves as clients of the master, and when serving its own API over HTTPS. -Unless you plan to have a real CA generate your certs, you will need to generate a root cert and use that to sign the master, kubelet, and kubectl certs. - -- see function `create-certs` in `cluster/common.sh` -- see also `cluster/saltbase/salt/generate-cert/make-ca-cert.sh` and - `cluster/saltbase/salt/generate-cert/make-cert.sh` +Unless you plan to have a real CA generate your certs, you will need +to generate a root cert and use that to sign the master, kubelet, and +kubectl certs. How to do this is described in the [authentication +documentation](/docs/admin/authentication/#creating-certificates). You will end up with the following files (we will use these variables later on) From b678c151f5f573096f53f10994ae9c69b9db34c0 Mon Sep 17 00:00:00 2001 From: George G Date: Fri, 15 Jul 2016 14:35:58 +0100 Subject: [PATCH 008/128] scratch.md: Remove extra = --- docs/getting-started-guides/scratch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index 34d75a79d8..a571e21845 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -183,7 +183,7 @@ The recommended version number can also be found as the value of `TAG` in `kuber The remainder of the document assumes that the image identifiers have been chosen and stored in corresponding env vars. Examples (replace with latest tags and appropriate registry): - - `HYPERKUBE_IMAGE==gcr.io/google_containers/hyperkube:$TAG` + - `HYPERKUBE_IMAGE=gcr.io/google_containers/hyperkube:$TAG` - `ETCD_IMAGE=gcr.io/google_containers/etcd:$ETCD_VERSION` ### Security Models From 489892d65d24face65093fc8e5a459b4c2c28ac0 Mon Sep 17 00:00:00 2001 From: George G Date: Fri, 15 Jul 2016 14:37:44 +0100 Subject: [PATCH 009/128] scratch.md: Clarify CA_CERT_BASE64_ENCODED / certificate-authority --- docs/getting-started-guides/scratch.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index a571e21845..d9e1a561d1 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -288,6 +288,10 @@ contexts: current-context: service-account-context ``` +Where CA_CERT_BASE64_ENCODED can be generated like `< ca.crt base64 +-w0`. Alternatively you can refer to a file (e.g. `certificate-authority: +/etc/kubernetes/ca.crt`). + Put the kubeconfig(s) on every node. The examples later in this guide assume that there are kubeconfigs in `/var/lib/kube-proxy/kubeconfig` and `/var/lib/kubelet/kubeconfig`. From 3e55a5ba5af6ef1c7d2f7614ed13fb5254a8302e Mon Sep 17 00:00:00 2001 From: George G Date: Fri, 15 Jul 2016 15:36:54 +0100 Subject: [PATCH 010/128] scratch.md: Fix formatting --- docs/getting-started-guides/scratch.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index d9e1a561d1..84f789a679 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -106,6 +106,7 @@ be active at once. Note that you can grow the end of this range, but you cannot move it without disrupting the services and pods that already use it. Also, you need to pick a static IP for master node. + - Call this `MASTER_IP`. - Open any firewalls to allow access to the apiserver ports 80 and/or 443. - Enable ipv4 forwarding sysctl, `net.ipv4.ip_forward = 1` From 5b91603d693cb9fa3a160d758c1e8048d3c310a5 Mon Sep 17 00:00:00 2001 From: George G Date: Fri, 15 Jul 2016 15:47:01 +0100 Subject: [PATCH 011/128] scratch.md: kubeconfig should not embed the CA cert --- docs/getting-started-guides/scratch.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index 84f789a679..f1b222ae7e 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -280,7 +280,7 @@ users: clusters: - name: local cluster: - certificate-authority-data: ${CA_CERT_BASE64_ENCODED} + certificate-authority: /srv/kubernetes/ca.crt contexts: - context: cluster: local @@ -289,10 +289,6 @@ contexts: current-context: service-account-context ``` -Where CA_CERT_BASE64_ENCODED can be generated like `< ca.crt base64 --w0`. Alternatively you can refer to a file (e.g. `certificate-authority: -/etc/kubernetes/ca.crt`). - Put the kubeconfig(s) on every node. The examples later in this guide assume that there are kubeconfigs in `/var/lib/kube-proxy/kubeconfig` and `/var/lib/kubelet/kubeconfig`. From 0859bcfad15516df5d4ca6e79bd17badd7e9e20c Mon Sep 17 00:00:00 2001 From: George G Date: Fri, 15 Jul 2016 18:07:02 +0100 Subject: [PATCH 012/128] scratch.md: Add missing newline --- docs/getting-started-guides/scratch.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index f1b222ae7e..bf31a5422d 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -600,6 +600,7 @@ If you are following the firewall-only security approach, then use these argumen - `--advertise-address=$MASTER_IP` If you are using the HTTPS approach, then set: + - `--client-ca-file=/srv/kubernetes/ca.crt` - `--token-auth-file=/srv/kubernetes/known_tokens.csv` - `--basic-auth-file=/srv/kubernetes/basic_auth.csv` From 3195bc7db94a6faeef62a7f2d318c38b112742fc Mon Sep 17 00:00:00 2001 From: George G Date: Wed, 20 Jul 2016 12:01:25 +0100 Subject: [PATCH 013/128] scratch.md: Whitespace --- docs/getting-started-guides/scratch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index bf31a5422d..d9817d4098 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -662,7 +662,7 @@ Complete this template for the scheduler pod: ], "livenessProbe": { "httpGet": { - "host" : "127.0.0.1", + "host": "127.0.0.1", "path": "/healthz", "port": 10251 }, From c6ad7e587f849273518be260a8aab957225e8055 Mon Sep 17 00:00:00 2001 From: George G Date: Thu, 21 Jul 2016 18:42:46 +0100 Subject: [PATCH 014/128] scratch.md: More consistent/explicit livenessProbes --- docs/getting-started-guides/scratch.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index d9817d4098..8ebc6c81d9 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -553,8 +553,10 @@ For each of these components, the steps to start them running are similar: ], "livenessProbe": { "httpGet": { - "path": "/healthz", - "port": 8080 + "scheme": "HTTP", + "host": "127.0.0.1", + "port": 8080, + "path": "/healthz" }, "initialDelaySeconds": 15, "timeoutSeconds": 15 @@ -662,9 +664,10 @@ Complete this template for the scheduler pod: ], "livenessProbe": { "httpGet": { + "scheme": "HTTP", "host": "127.0.0.1", - "path": "/healthz", - "port": 10251 + "port": 10251, + "path": "/healthz" }, "initialDelaySeconds": 15, "timeoutSeconds": 15 @@ -717,9 +720,10 @@ Template for controller manager pod: ], "livenessProbe": { "httpGet": { + "scheme": "HTTP", "host": "127.0.0.1", - "path": "/healthz", - "port": 10252 + "port": 10252, + "path": "/healthz" }, "initialDelaySeconds": 15, "timeoutSeconds": 15 From 87e8f37dfffdda1772c26b9fd946e430a5217173 Mon Sep 17 00:00:00 2001 From: Ace Nassri Date: Fri, 29 Jul 2016 12:19:38 -0700 Subject: [PATCH 015/128] Convert PROJECT_ID to a variable in shell snippets --- docs/hellonode.md | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/docs/hellonode.md b/docs/hellonode.md index 78acac80d8..146e6452f7 100755 --- a/docs/hellonode.md +++ b/docs/hellonode.md @@ -22,7 +22,11 @@ If you don't already have a Google Account (Gmail or Google Apps), you must [cre ![image](/images/hellonode/image_3.png) -Remember the project ID; it will be referred to later in this codelab as `PROJECT_ID`. +Remember the project ID; it will be referred to later in this codelab as `$PROJECT_ID`. It may be helpful to store your project ID into a variable: + + ```shell + export $PROJECT_ID="your-project-id" + ``` Next, [enable billing](https://console.developers.google.com/billing) in the Developers Console in order to use Google Cloud resources and [enable the Container Engine API](https://console.developers.google.com/project/_/kubernetes/list). @@ -83,17 +87,17 @@ CMD node server.js This "recipe" for the Docker image will start from the official Node.js LTS image found on the Docker registry, expose port 8080, copy our `server.js` file to the image and start the Node server. -Now build an image of your container by running `docker build`, tagging the image with the Google Container Registry repo for your `PROJECT_ID`: +Now build an image of your container by running `docker build`, tagging the image with the Google Container Registry repo for your `$PROJECT_ID`: ```shell -docker build -t gcr.io/PROJECT_ID/hello-node:v1 . +docker build -t gcr.io/$PROJECT_ID/hello-node:v1 . ``` Now there is a trusted source for getting an image of your containerized app. Let's try your image out with Docker: ```shell -$ docker run -d -p 8080:8080 gcr.io/PROJECT_ID/hello-node:v1 +$ docker run -d -p 8080:8080 gcr.io/$PROJECT_ID/hello-node:v1 325301e6b2bffd1d0049c621866831316d653c0b25a496d04ce0ec6854cb7998 ``` @@ -115,16 +119,16 @@ Let’s now stop the container. In this example, our app was running as Docker p ```shell docker ps CONTAINER ID IMAGE COMMAND -2c66d0efcbd4 gcr.io/PROJECT_ID/hello-node:v1 "/bin/sh -c 'node +2c66d0efcbd4 gcr.io/$PROJECT_ID/hello-node:v1 "/bin/sh -c 'node docker stop 2c66d0efcbd4 2c66d0efcbd4 ``` -Now that the image works as intended and is all tagged with your `PROJECT_ID`, we can push it to the [Google Container Registry](https://cloud.google.com/tools/container-registry/), a private repository for your Docker images accessible from every Google Cloud project (but also from outside Google Cloud Platform) : +Now that the image works as intended and is all tagged with your `$PROJECT_ID`, we can push it to the [Google Container Registry](https://cloud.google.com/tools/container-registry/), a private repository for your Docker images accessible from every Google Cloud project (but also from outside Google Cloud Platform) : ```shell -gcloud docker push gcr.io/PROJECT_ID/hello-node:v1 +gcloud docker push gcr.io/$PROJECT_ID/hello-node:v1 ``` If all goes well, you should be able to see the container image listed in the console: *Compute > Container Engine > Container Registry*. We now have a project-wide Docker image available which Kubernetes can access and orchestrate. @@ -154,7 +158,7 @@ A Kubernetes **[pod](/docs/user-guide/pods/)** is a group of containers, tied to Create a pod with the `kubectl run` command: ```shell -$ kubectl run hello-node --image=gcr.io/PROJECT_ID/hello-node:v1 --port=8080 +$ kubectl run hello-node --image=gcr.io/$PROJECT_ID/hello-node:v1 --port=8080 deployment "hello-node" created ``` @@ -287,18 +291,18 @@ First, let’s modify the application. On the development machine, edit server.j We can now build and publish a new container image to the registry with an incremented tag: ```shell -docker build -t gcr.io/PROJECT_ID/hello-node:v2 . -gcloud docker push gcr.io/PROJECT_ID/hello-node:v2 +docker build -t gcr.io/$PROJECT_ID/hello-node:v2 . +gcloud docker push gcr.io/$PROJECT_ID/hello-node:v2 ``` Building and pushing this updated image should be much quicker as we take full advantage of the Docker cache. We’re now ready for Kubernetes to smoothly update our deployment to the new version of the application. In order to change the image label for our running container, we will need to edit the existing *hello-node deployment* and change the image from -`gcr.io/PROJECT_ID/hello-node:v1` to `gcr.io/PROJECT_ID/hello-node:v2`. To do this, we will use the `kubectl set image` command. +`gcr.io/$PROJECT_ID/hello-node:v1` to `gcr.io/$PROJECT_ID/hello-node:v2`. To do this, we will use the `kubectl set image` command. ```shell -$ kubectl set image deployment/hello-node hello-node=gcr.io/PROJECT_ID/hello-node:v2 +$ kubectl set image deployment/hello-node hello-node=gcr.io/$PROJECT_ID/hello-node:v2 deployment "hello-node" image updated ``` @@ -345,7 +349,7 @@ The following clusters will be deleted. Do you want to continue (Y/n)? Deleting cluster hello-world...done. -Deleted [https://container.googleapis.com/v1/projects//zones/us-central1-f/clusters/hello-world]. +Deleted [https://container.googleapis.com/v1/projects/<$PROJECT_ID>/zones/us-central1-f/clusters/hello-world]. ``` This deletes the Google Compute Engine instances that are running the cluster. @@ -354,9 +358,9 @@ Finally delete the Docker registry storage bucket hosting your image(s) : ```shell $ gsutil ls -gs://artifacts..appspot.com/ -$ gsutil rm -r gs://artifacts..appspot.com/ -Removing gs://artifacts..appspot.com/... +gs://artifacts.<$PROJECT_ID>.appspot.com/ +$ gsutil rm -r gs://artifacts.<$PROJECT_ID>.appspot.com/ +Removing gs://artifacts.<$PROJECT_ID>.appspot.com/... ``` -Of course, you can also delete the entire project but note that you must first disable billing on the project. Additionally, deleting a project will only happen after the current billing cycle ends. +Of course, you can also delete the entire project but note that you must first disable billing on the project. Additionally, deleting a project will only happen after the current billing cycle ends. \ No newline at end of file From 1c3e499e79dcc2ca6c665dc2bc19a9d1bb17abff Mon Sep 17 00:00:00 2001 From: Eric Tune Date: Wed, 30 Mar 2016 09:41:26 -0700 Subject: [PATCH 016/128] Update images.md --- docs/user-guide/images.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/user-guide/images.md b/docs/user-guide/images.md index 49f80a6500..26d65a7ab1 100644 --- a/docs/user-guide/images.md +++ b/docs/user-guide/images.md @@ -81,6 +81,21 @@ The kubelet will fetch and periodically refresh ECR credentials. It needs the f - `ecr:ListImages` - `ecr:BatchGetImage` +Requirements: + +- You must be using kubelet version `v1.2.0` or newer. (e.g. run `/usr/bin/kubelet --version=true`). +- Your nodes must be in the same region as the registry you are using +- ECR must be offered in your region + +Troubleshooting: + +- Verify all requirements above. +- Get $REGION (e.g. `us-west-2`) credentials on your workstation. SSH into the host and run Docker manually with those creds. Does it work? +- Verify kubelet is running with `--cloud-provider=aws`. +- Check kubelet logs (e.g. `journalctl -t kubelet`) for log lines like: + - `plugins.go:56] Registering credential provider: aws-ecr-key` + - `provider.go:91] Refreshing cache for provider: *aws_credentials.ecrProvider` + ### Configuring Nodes to Authenticate to a Private Repository **Note:** if you are running on Google Container Engine (GKE), there will already be a `.dockercfg` on each node From 674f52b54149e6066dd603ec2ba6fb179c62ebb5 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 31 Jul 2016 09:07:51 -0400 Subject: [PATCH 017/128] Fixed the command line Fixed the command line which was causing an error. --- docs/user-guide/configmap/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/configmap/index.md b/docs/user-guide/configmap/index.md index ccd3b74ebb..110dfd7c97 100644 --- a/docs/user-guide/configmap/index.md +++ b/docs/user-guide/configmap/index.md @@ -1,3 +1,4 @@ + --- --- Many applications require configuration via some combination of config files, command line @@ -362,7 +363,7 @@ spec: containers: - name: test-container image: gcr.io/google_containers/busybox - command: ["cat", "/etc/config/special.how" ] + command: ["/bin/sh","-c", "cat", "/etc/config/special.how" ] volumeMounts: - name: config-volume mountPath: /etc/config @@ -390,7 +391,7 @@ spec: containers: - name: test-container image: gcr.io/google_containers/busybox - command: [ "/bin/sh", "cat", "/etc/config/path/to/special-key" ] + command: [ "/bin/sh", "-c", "cat", "/etc/config/path/to/special-key" ] volumeMounts: - name: config-volume mountPath: /etc/config From 55c944b83b74f8496600da90886089d1ae0e3649 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 31 Jul 2016 09:13:03 -0400 Subject: [PATCH 018/128] Fixed the conflicts --- docs/user-guide/configmap/index.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/configmap/index.md b/docs/user-guide/configmap/index.md index 110dfd7c97..59374851ac 100644 --- a/docs/user-guide/configmap/index.md +++ b/docs/user-guide/configmap/index.md @@ -1,4 +1,3 @@ - --- --- Many applications require configuration via some combination of config files, command line @@ -363,7 +362,7 @@ spec: containers: - name: test-container image: gcr.io/google_containers/busybox - command: ["/bin/sh","-c", "cat", "/etc/config/special.how" ] + command: [ "/bin/sh", "-c" , "cat /etc/config/special.how" ] volumeMounts: - name: config-volume mountPath: /etc/config @@ -391,7 +390,7 @@ spec: containers: - name: test-container image: gcr.io/google_containers/busybox - command: [ "/bin/sh", "-c", "cat", "/etc/config/path/to/special-key" ] + command: [ "/bin/sh", "-c" , "cat /etc/config/path/to/special-key" ] volumeMounts: - name: config-volume mountPath: /etc/config From bca79cfdcbb121a6ca543b9cd1ca704d5ee87a11 Mon Sep 17 00:00:00 2001 From: Tolleiv Nietsch Date: Tue, 2 Aug 2016 16:44:04 +0200 Subject: [PATCH 019/128] Undo the changes within ubuntu.md --- docs/getting-started-guides/ubuntu.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/getting-started-guides/ubuntu.md b/docs/getting-started-guides/ubuntu.md index ac1abbf233..c47a15dc9d 100644 --- a/docs/getting-started-guides/ubuntu.md +++ b/docs/getting-started-guides/ubuntu.md @@ -80,7 +80,7 @@ First configure the cluster information in cluster/ubuntu/config-default.sh, fol ```shell export nodes="vcap@10.10.103.250 vcap@10.10.103.162 vcap@10.10.103.223" -export roles="ai i i" +export role="ai i i" export NUM_NODES=${NUM_NODES:-3} @@ -92,7 +92,7 @@ export FLANNEL_NET=172.16.0.0/16 The first variable `nodes` defines all your cluster nodes, master node comes first and separated with blank space like ` ` -Then the `roles` variable defines the role of above machine in the same order, "ai" stands for machine +Then the `role` variable defines the role of above machine in the same order, "ai" stands for machine acts as both master and node, "a" stands for master, "i" stands for node. The `NUM_NODES` variable defines the total number of nodes. From ce198ad723f9f10daf52ff897e6acff567ccf3d3 Mon Sep 17 00:00:00 2001 From: Jimmy Cuadra Date: Tue, 2 Aug 2016 16:37:38 -0700 Subject: [PATCH 020/128] Authz: Explain how to determine request verbs. --- docs/admin/authorization.md | 64 ++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 18 deletions(-) diff --git a/docs/admin/authorization.md b/docs/admin/authorization.md index 312bbb1d05..7f19b61995 100644 --- a/docs/admin/authorization.md +++ b/docs/admin/authorization.md @@ -18,7 +18,7 @@ The following implementations are available, and are selected by flag: need authorization. - `--authorization-mode=ABAC` allows for a simple local-file-based user-configured authorization policy. ABAC stands for Attribute-Based Access Control. -authorization policy. +authorization policy. - `--authorization-mode=RBAC` is an experimental implementation which allows for authorization to be driven by the Kubernetes API. RBAC stands for Roles-Based Access Control. @@ -43,17 +43,25 @@ A request has the following attributes that can be considered for authorization: - group (the list of group names the authenticated user is a member of). - whether the request is for an API resource. - the request path. - - allows authorizing access to miscellaneous endpoints like `/api` or -`/healthz` (see [kubectl](#kubectl)). + - allows authorizing access to miscellaneous non-resource endpoints like `/api` or `/healthz` (see [kubectl](#kubectl)). - the request verb. - - API verbs like `get`, `list`, `create`, `update`, `watch`, `delete`, and -`deletecollection` are used for API requests - - HTTP verbs like `get`, `post`, `put`, and `delete` are used for non-API + - API verbs `get`, `list`, `create`, `update`, `watch`, `delete`, and `deletecollection` are used for resource requests + - HTTP verbs `get`, `post`, `put`, and `delete` are used for non-resource requests - - what resource is being accessed (for API requests only) - - the namespace of the object being accessed (for namespaced API requests + - what resource is being accessed (for resource requests only) + - the namespace of the object being accessed (for namespaced resource requests only) - - the API group being accessed (for API requests only) + - the API group being accessed (for resource requests only) + +The request verb for a resource API endpoint can be determined by the HTTP verb used and whether or not the request acts on an individual resource or a collection of resources: + +HTTP verb | request verb +----------|--------------- +POST | create +GET, HEAD | get (for individual resources), list (for collections) +PUT | update +PATCH | patch +DELETE | delete (for individual resources), deletecollection (for collections) We anticipate adding more attributes to allow finer grained access control and to assist in policy management. @@ -97,17 +105,17 @@ A request has attributes which correspond to the properties of a policy object. When a request is received, the attributes are determined. Unknown attributes are set to the zero value of its type (e.g. empty string, 0, false). -A property set to "*" will match any value of the corresponding attribute. +A property set to `"*"` will match any value of the corresponding attribute. The tuple of attributes is checked for a match against every policy in the policy file. If at least one line matches the request attributes, then the request is authorized (but may fail later validation). To permit any user to do something, write a policy with the user property set to -"*". +`"*"`. To permit a user to do anything, write a policy with the apiGroup, namespace, -resource, and nonResourcePath properties set to "*". +resource, and nonResourcePath properties set to `"*"`. ### Kubectl @@ -130,11 +138,31 @@ up the verbosity: ### Examples - 1. Alice can do anything to all resources: `{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "alice", "namespace": "*", "resource": "*", "apiGroup": "*"}}` - 2. Kubelet can read any pods: `{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "pods", "readonly": true}}` - 3. Kubelet can read and write events: `{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "events"}}` - 4. Bob can just read pods in namespace "projectCaribou": `{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "bob", "namespace": "projectCaribou", "resource": "pods", "readonly": true}}` - 5. Anyone can make read-only requests to all non-API paths: `{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "*", "readonly": true, "nonResourcePath": "*"}}` + 1. Alice can do anything to all resources: + + ```json + {"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "alice", "namespace": "*", "resource": "*", "apiGroup": "*"}} + ``` + 2. Kubelet can read any pods: + + ```json + {"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "pods", "readonly": true}} + ``` + 3. Kubelet can read and write events: + + ```json + {"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "events"}} + ``` + 4. Bob can just read pods in namespace "projectCaribou": + + ```json + {"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "bob", "namespace": "projectCaribou", "resource": "pods", "readonly": true}} + ``` + 5. Anyone can make read-only requests to all non-resource paths: + + ```json + {"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "*", "readonly": true, "nonResourcePath": "*"}} + ``` [Complete file example](http://releases.k8s.io/{{page.githubbranch}}/pkg/auth/authorizer/abac/example_policy_file.jsonl) @@ -147,7 +175,7 @@ according to the naming convention: system:serviceaccount:: ``` Creating a new namespace also causes a new service account to be created, of -this form:* +this form: ```shell system:serviceaccount::default From 9232f7f2fa0c53ce388b178889515027bf4c480b Mon Sep 17 00:00:00 2001 From: Vishnu Kannan Date: Wed, 30 Mar 2016 17:01:19 -0700 Subject: [PATCH 021/128] Fix curl command. Make cleanup easier. Signed-off-by: Vishnu Kannan --- docs/getting-started-guides/docker.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/getting-started-guides/docker.md b/docs/getting-started-guides/docker.md index 828f162bfb..a6893f27e7 100644 --- a/docs/getting-started-guides/docker.md +++ b/docs/getting-started-guides/docker.md @@ -65,6 +65,7 @@ Here's a diagram of what the final result will look like: --net=host \ --pid=host \ --privileged \ + --name=kubelet \ gcr.io/google_containers/hyperkube-${ARCH}:${K8S_VERSION} \ /hyperkube kubelet \ --hostname-override=127.0.0.1 \ @@ -172,7 +173,11 @@ ip=$(kubectl get svc nginx --template={{.spec.clusterIP}}) echo $ip {% endraw %}``` -On Linux the IP is directly accessible via a web browser. +Hit the webserver with this IP: + +```shell{% raw %} +curl $ip +{% endraw %}``` On OS X, since docker is running inside a VM, run the following command instead: @@ -196,10 +201,10 @@ kubectl delete service,deployments nginx 2\. Delete all the containers including the kubelet: -Many of these containers run under the management of the `kubelet` binary, which attempts to keep containers running, even if they fail. -So, in order to turn down the cluster, you need to first kill the kubelet container, and then any other containers. - -You may use `docker rm -f $(docker ps -aq)`, note this removes _all_ containers running under Docker, so use with caution. +```shell +docker rm -f kubelet +docker rm -f `docker ps | grep k8s | awk '{print $1}'` +``` 3\. Cleanup the filesystem: From 66f28bb8201bafc68b87ed8752e5e9609dc72844 Mon Sep 17 00:00:00 2001 From: foxish Date: Fri, 29 Jul 2016 10:36:25 -0700 Subject: [PATCH 022/128] Adding OWNERS for docs. --- OWNERS | 7 + docs/admin/OWNERS | 4 + docs/admin/accessing-the-api.md | 5 + docs/admin/admission-controllers.md | 8 + docs/admin/authentication.md | 5 + docs/admin/authorization.md | 4 + docs/admin/cluster-components.md | 3 + docs/admin/cluster-large.md | 4 + docs/admin/cluster-management.md | 4 + docs/admin/cluster-troubleshooting.md | 3 + docs/admin/daemons.md | 3 + docs/admin/dns.md | 5 + docs/admin/etcd.md | 3 + docs/admin/federation/OWNERS | 4 + docs/admin/federation/index.md | 4 + docs/admin/garbage-collection.md | 4 + docs/admin/high-availability/OWNERS | 4 + docs/admin/high-availability/index.md | 6 +- docs/admin/index.md | 4 + docs/admin/kube-apiserver.md | 4 + docs/admin/kube-controller-manager.md | 4 + docs/admin/kube-proxy.md | 3 + docs/admin/kube-scheduler.md | 4 + docs/admin/kubelet.md | 5 + docs/admin/limitrange/OWNERS | 4 + docs/admin/limitrange/index.md | 180 ++++++------- docs/admin/master-node-communication.md | 5 + docs/admin/multi-cluster.md | 3 + docs/admin/multiple-schedulers.md | 4 + docs/admin/multiple-schedulers/OWNERS | 4 + docs/admin/multiple-zones.md | 5 + docs/admin/namespaces/OWNERS | 4 + docs/admin/namespaces/index.md | 4 + docs/admin/namespaces/walkthrough.md | 4 + docs/admin/network-plugins.md | 5 + docs/admin/networking.md | 4 + docs/admin/node-problem.md | 4 + docs/admin/node.md | 5 + docs/admin/out-of-resource.md | 5 + docs/admin/ovs-networking.md | 4 + docs/admin/resourcequota/OWNERS | 3 + docs/admin/resourcequota/index.md | 3 + docs/admin/resourcequota/walkthrough.md | 4 + docs/admin/salt.md | 34 +-- docs/admin/service-accounts-admin.md | 6 + docs/admin/static-pods.md | 3 + docs/api-reference/OWNERS | 5 + docs/api-reference/autoscaling/OWNERS | 6 + docs/api-reference/batch/OWNERS | 6 + docs/api-reference/extensions/OWNERS | 6 + docs/api-reference/v1/OWNERS | 6 + docs/api-reference/v1/definitions.md | 4 + docs/api-reference/v1/operations.md | 4 + docs/api.md | 5 + docs/getting-started-guides/OWNERS | 4 + docs/getting-started-guides/aws.md | 5 + docs/getting-started-guides/azure.md | 4 + docs/getting-started-guides/binary_release.md | 4 + docs/getting-started-guides/centos/OWNERS | 5 + .../centos/centos_manual_config.md | 5 + docs/getting-started-guides/clc.md | 4 + docs/getting-started-guides/cloudstack.md | 4 + docs/getting-started-guides/coreos/OWNERS | 5 + .../coreos/bare_metal_calico.md | 3 + .../coreos/bare_metal_offline.md | 5 + .../coreos/coreos_multinode_cluster.md | 4 + docs/getting-started-guides/coreos/index.md | 4 + docs/getting-started-guides/dcos.md | 3 + .../docker-multinode/OWNERS | 5 + docs/getting-started-guides/docker.md | 5 + docs/getting-started-guides/fedora/OWNERS | 5 + .../fedora/fedora-calico.md | 5 + .../fedora/fedora_ansible_config.md | 4 + .../fedora/fedora_manual_config.md | 5 + .../fedora/flannel_multi_node_cluster.md | 5 + docs/getting-started-guides/gce.md | 6 + docs/getting-started-guides/index.md | 5 + docs/getting-started-guides/juju.md | 5 + docs/getting-started-guides/libvirt-coreos.md | 5 + docs/getting-started-guides/locally.md | 5 + .../logging-elasticsearch.md | 4 + docs/getting-started-guides/logging.md | 4 + docs/getting-started-guides/meanstack.md | 4 + docs/getting-started-guides/mesos-docker.md | 4 + docs/getting-started-guides/mesos/OWNERS | 7 +- docs/getting-started-guides/mesos/index.md | 5 + docs/getting-started-guides/minikube.md | 5 + docs/getting-started-guides/openstack-heat.md | 7 + docs/getting-started-guides/ovirt.md | 4 + .../photon-controller.md | 4 + docs/getting-started-guides/rackspace.md | 4 + docs/getting-started-guides/rkt/OWNERS | 5 + docs/getting-started-guides/rkt/index.md | 5 + docs/getting-started-guides/rkt/notes.md | 4 + docs/getting-started-guides/scratch.md | 5 + docs/getting-started-guides/ubuntu-calico.md | 4 + docs/getting-started-guides/ubuntu.md | 5 + docs/getting-started-guides/vagrant.md | 5 + docs/getting-started-guides/vsphere.md | 4 + docs/hellonode.md | 5 + docs/index.md | 4 + docs/reference.md | 3 + docs/reporting-security-issues.md | 4 + docs/samples.md | 4 + docs/templatedemos/OWNERS | 3 + docs/templatedemos/blankkubectl.md | 3 + docs/templatedemos/index.md | 3 + docs/templatedemos/kubectl.md | 3 + docs/troubleshooting.md | 4 + docs/user-guide/OWNERS | 5 + docs/user-guide/accessing-the-cluster.md | 74 +++--- docs/user-guide/annotations.md | 4 + .../user-guide/application-troubleshooting.md | 4 + docs/user-guide/compute-resources.md | 4 + docs/user-guide/config-best-practices.md | 3 + docs/user-guide/configmap/OWNERS | 4 + docs/user-guide/configmap/index.md | 4 + docs/user-guide/configuring-containers.md | 4 + docs/user-guide/connecting-applications.md | 5 + ...connecting-to-applications-port-forward.md | 4 + .../connecting-to-applications-proxy.md | 20 +- docs/user-guide/container-environment.md | 4 + docs/user-guide/containers.md | 3 + ...ugging-pods-and-replication-controllers.md | 3 + docs/user-guide/debugging-services.md | 5 + docs/user-guide/deploying-applications.md | 5 + docs/user-guide/deployments.md | 4 + docs/user-guide/docker-cli-to-kubectl.md | 5 + docs/user-guide/downward-api/OWNERS | 4 + docs/user-guide/downward-api/index.md | 4 + docs/user-guide/environment-guide/OWNERS | 3 + docs/user-guide/environment-guide/index.md | 3 + docs/user-guide/federation/OWNERS | 3 + .../federation/federated-services.md | 4 + docs/user-guide/garbage-collector.md | 34 +-- docs/user-guide/getting-into-containers.md | 48 ++-- .../horizontal-pod-autoscaling/OWNERS | 5 + .../horizontal-pod-autoscaling/index.md | 4 + .../horizontal-pod-autoscaling/walkthrough.md | 5 + docs/user-guide/identifiers.md | 4 + docs/user-guide/images.md | 4 + docs/user-guide/index.md | 3 + docs/user-guide/ingress.md | 3 + .../user-guide/introspection-and-debugging.md | 4 + docs/user-guide/jobs.md | 4 + docs/user-guide/jobs/OWNERS | 5 + docs/user-guide/jsonpath.md | 3 + docs/user-guide/kubeconfig-file.md | 248 +++++++++--------- docs/user-guide/kubectl-cheatsheet.md | 5 + docs/user-guide/kubectl-conventions.md | 4 + docs/user-guide/kubectl-overview.md | 4 + docs/user-guide/kubectl/OWNERS | 6 + docs/user-guide/kubectl/kubectl.md | 5 + docs/user-guide/kubectl/kubectl_annotate.md | 6 + .../kubectl/kubectl_api-versions.md | 4 + docs/user-guide/kubectl/kubectl_apply.md | 4 + docs/user-guide/kubectl/kubectl_attach.md | 4 + docs/user-guide/kubectl/kubectl_autoscale.md | 5 + .../kubectl/kubectl_cluster-info.md | 4 + docs/user-guide/kubectl/kubectl_config.md | 4 + .../kubectl/kubectl_config_current-context.md | 4 + .../kubectl/kubectl_config_set-cluster.md | 4 + .../kubectl/kubectl_config_set-context.md | 4 + .../kubectl/kubectl_config_set-credentials.md | 4 + docs/user-guide/kubectl/kubectl_config_set.md | 4 + .../kubectl/kubectl_config_unset.md | 4 + .../kubectl/kubectl_config_use-context.md | 4 + .../user-guide/kubectl/kubectl_config_view.md | 6 + docs/user-guide/kubectl/kubectl_convert.md | 4 + docs/user-guide/kubectl/kubectl_cordon.md | 4 + docs/user-guide/kubectl/kubectl_create.md | 5 + .../kubectl/kubectl_create_configmap.md | 4 + .../kubectl/kubectl_create_namespace.md | 4 + .../kubectl/kubectl_create_secret.md | 4 + .../kubectl_create_secret_docker-registry.md | 4 + .../kubectl/kubectl_create_secret_generic.md | 4 + .../kubectl/kubectl_create_serviceaccount.md | 6 + docs/user-guide/kubectl/kubectl_delete.md | 4 + docs/user-guide/kubectl/kubectl_describe.md | 4 + docs/user-guide/kubectl/kubectl_drain.md | 4 + docs/user-guide/kubectl/kubectl_edit.md | 4 + docs/user-guide/kubectl/kubectl_exec.md | 4 + docs/user-guide/kubectl/kubectl_explain.md | 4 + docs/user-guide/kubectl/kubectl_expose.md | 6 + docs/user-guide/kubectl/kubectl_get.md | 5 + docs/user-guide/kubectl/kubectl_label.md | 6 + docs/user-guide/kubectl/kubectl_logs.md | 4 + docs/user-guide/kubectl/kubectl_namespace.md | 5 + docs/user-guide/kubectl/kubectl_patch.md | 4 + .../kubectl/kubectl_port-forward.md | 4 + docs/user-guide/kubectl/kubectl_proxy.md | 4 + docs/user-guide/kubectl/kubectl_replace.md | 6 + .../kubectl/kubectl_rolling-update.md | 6 + docs/user-guide/kubectl/kubectl_rollout.md | 4 + .../kubectl/kubectl_rollout_history.md | 4 + .../kubectl/kubectl_rollout_pause.md | 4 + .../kubectl/kubectl_rollout_resume.md | 4 + .../kubectl/kubectl_rollout_undo.md | 4 + docs/user-guide/kubectl/kubectl_run.md | 6 + docs/user-guide/kubectl/kubectl_scale.md | 4 + docs/user-guide/kubectl/kubectl_stop.md | 5 + docs/user-guide/kubectl/kubectl_uncordon.md | 4 + docs/user-guide/kubectl/kubectl_version.md | 4 + docs/user-guide/labels.md | 3 + docs/user-guide/liveness/OWNERS | 3 + docs/user-guide/liveness/index.md | 4 + docs/user-guide/load-balancer.md | 3 + docs/user-guide/logging-demo/OWNERS | 3 + docs/user-guide/logging.md | 29 +- docs/user-guide/managing-deployments.md | 5 + docs/user-guide/monitoring.md | 3 + docs/user-guide/namespaces.md | 5 + docs/user-guide/networkpolicies.md | 6 + docs/user-guide/nginx/OWNERS | 3 + docs/user-guide/node-selection/OWNERS | 4 + docs/user-guide/node-selection/index.md | 5 + docs/user-guide/persistent-volumes/OWNERS | 6 + docs/user-guide/persistent-volumes/index.md | 6 + .../persistent-volumes/walkthrough.md | 4 + docs/user-guide/petset.md | 5 + docs/user-guide/petset/OWNERS | 5 + docs/user-guide/pod-states.md | 3 + docs/user-guide/pod-templates.md | 3 + docs/user-guide/pods/OWNERS | 4 + docs/user-guide/pods/index.md | 2 + docs/user-guide/pods/multi-container.md | 3 + docs/user-guide/pods/single-container.md | 4 + docs/user-guide/prereqs.md | 4 + docs/user-guide/production-pods.md | 5 + docs/user-guide/quick-start.md | 4 + docs/user-guide/replicasets.md | 6 + docs/user-guide/replicasets/OWNERS | 5 + docs/user-guide/replication-controller/OWNERS | 7 + .../replication-controller/index.md | 5 + .../replication-controller/operations.md | 3 + .../resizing-a-replication-controller.md | 3 + docs/user-guide/rolling-updates.md | 4 + docs/user-guide/secrets/OWNERS | 4 + docs/user-guide/secrets/index.md | 4 + docs/user-guide/secrets/walkthrough.md | 2 + docs/user-guide/security-context.md | 5 + docs/user-guide/service-accounts.md | 6 + docs/user-guide/services-firewalls.md | 4 + docs/user-guide/services/OWNERS | 6 + docs/user-guide/services/index.md | 5 + docs/user-guide/services/operations.md | 4 + docs/user-guide/sharing-clusters.md | 4 + docs/user-guide/simple-nginx.md | 3 + docs/user-guide/simple-yaml.md | 4 + docs/user-guide/ui.md | 87 +++--- docs/user-guide/update-demo/OWNERS | 4 + docs/user-guide/update-demo/index.md | 18 +- docs/user-guide/volumes.md | 6 + docs/user-guide/walkthrough/OWNERS | 5 + docs/user-guide/walkthrough/index.md | 5 + docs/user-guide/walkthrough/k8s201.md | 4 + docs/user-guide/working-with-resources.md | 4 + docs/whatisk8s.md | 4 + 258 files changed, 1477 insertions(+), 369 deletions(-) create mode 100644 OWNERS create mode 100644 docs/admin/OWNERS create mode 100644 docs/admin/federation/OWNERS create mode 100644 docs/admin/high-availability/OWNERS create mode 100644 docs/admin/limitrange/OWNERS create mode 100644 docs/admin/multiple-schedulers/OWNERS create mode 100644 docs/admin/namespaces/OWNERS create mode 100644 docs/admin/resourcequota/OWNERS create mode 100644 docs/api-reference/OWNERS create mode 100644 docs/api-reference/autoscaling/OWNERS create mode 100644 docs/api-reference/batch/OWNERS create mode 100644 docs/api-reference/extensions/OWNERS create mode 100644 docs/api-reference/v1/OWNERS create mode 100644 docs/getting-started-guides/OWNERS create mode 100644 docs/getting-started-guides/centos/OWNERS create mode 100644 docs/getting-started-guides/coreos/OWNERS create mode 100644 docs/getting-started-guides/docker-multinode/OWNERS create mode 100644 docs/getting-started-guides/fedora/OWNERS create mode 100644 docs/getting-started-guides/rkt/OWNERS create mode 100644 docs/templatedemos/OWNERS create mode 100644 docs/user-guide/OWNERS create mode 100644 docs/user-guide/configmap/OWNERS create mode 100644 docs/user-guide/downward-api/OWNERS create mode 100644 docs/user-guide/environment-guide/OWNERS create mode 100644 docs/user-guide/federation/OWNERS create mode 100644 docs/user-guide/horizontal-pod-autoscaling/OWNERS create mode 100644 docs/user-guide/jobs/OWNERS create mode 100644 docs/user-guide/kubectl/OWNERS create mode 100644 docs/user-guide/liveness/OWNERS create mode 100644 docs/user-guide/logging-demo/OWNERS create mode 100644 docs/user-guide/nginx/OWNERS create mode 100644 docs/user-guide/node-selection/OWNERS create mode 100644 docs/user-guide/persistent-volumes/OWNERS create mode 100644 docs/user-guide/petset/OWNERS create mode 100644 docs/user-guide/pods/OWNERS create mode 100644 docs/user-guide/replicasets/OWNERS create mode 100644 docs/user-guide/replication-controller/OWNERS create mode 100644 docs/user-guide/secrets/OWNERS create mode 100644 docs/user-guide/services/OWNERS create mode 100644 docs/user-guide/update-demo/OWNERS create mode 100644 docs/user-guide/walkthrough/OWNERS diff --git a/OWNERS b/OWNERS new file mode 100644 index 0000000000..247d39ea5e --- /dev/null +++ b/OWNERS @@ -0,0 +1,7 @@ +assignees: +- lavalamp +- smarterclayton +- janetkuo +- pwittrock +- kelseyhightower +- jaredbhatti diff --git a/docs/admin/OWNERS b/docs/admin/OWNERS new file mode 100644 index 0000000000..498d076a5f --- /dev/null +++ b/docs/admin/OWNERS @@ -0,0 +1,4 @@ +assignees: +- derekwaynecarr +- mikedanese + diff --git a/docs/admin/accessing-the-api.md b/docs/admin/accessing-the-api.md index d18d30bfd1..92380ded3f 100644 --- a/docs/admin/accessing-the-api.md +++ b/docs/admin/accessing-the-api.md @@ -1,4 +1,9 @@ --- +assignees: +- bgrant0607 +- erictune +- lavalamp + --- This document describes how access to the Kubernetes API is controlled. diff --git a/docs/admin/admission-controllers.md b/docs/admin/admission-controllers.md index 9072522ac2..a99b44f339 100644 --- a/docs/admin/admission-controllers.md +++ b/docs/admin/admission-controllers.md @@ -1,4 +1,12 @@ --- +assignees: +- bprashanth +- davidopp +- derekwaynecarr +- erictune +- janetkuo +- thockin + --- * TOC diff --git a/docs/admin/authentication.md b/docs/admin/authentication.md index 52b5bf925d..d003aabb61 100644 --- a/docs/admin/authentication.md +++ b/docs/admin/authentication.md @@ -1,4 +1,9 @@ --- +assignees: +- erictune +- lavalamp +- yifan-gu + --- Kubernetes uses client certificates, tokens, or http basic auth to authenticate users for API calls. diff --git a/docs/admin/authorization.md b/docs/admin/authorization.md index 312bbb1d05..e683dc1deb 100644 --- a/docs/admin/authorization.md +++ b/docs/admin/authorization.md @@ -1,4 +1,8 @@ --- +assignees: +- erictune +- lavalamp + --- In Kubernetes, authorization happens as a separate step from authentication. diff --git a/docs/admin/cluster-components.md b/docs/admin/cluster-components.md index 2e7e663f42..c1bcae8577 100644 --- a/docs/admin/cluster-components.md +++ b/docs/admin/cluster-components.md @@ -1,4 +1,7 @@ --- +assignees: +- lavalamp + --- This document outlines the various binary components that need to run to diff --git a/docs/admin/cluster-large.md b/docs/admin/cluster-large.md index be05cb627f..6df6bca474 100644 --- a/docs/admin/cluster-large.md +++ b/docs/admin/cluster-large.md @@ -1,4 +1,8 @@ --- +assignees: +- davidopp +- lavalamp + --- diff --git a/docs/admin/cluster-management.md b/docs/admin/cluster-management.md index f133f06983..1be4fc8a02 100644 --- a/docs/admin/cluster-management.md +++ b/docs/admin/cluster-management.md @@ -1,4 +1,8 @@ --- +assignees: +- lavalamp +- thockin + --- * TOC diff --git a/docs/admin/cluster-troubleshooting.md b/docs/admin/cluster-troubleshooting.md index 22d461cd70..8bab089ce6 100644 --- a/docs/admin/cluster-troubleshooting.md +++ b/docs/admin/cluster-troubleshooting.md @@ -1,4 +1,7 @@ --- +assignees: +- davidopp + --- This doc is about cluster troubleshooting; we assume you have already ruled out your application as the root cause of the diff --git a/docs/admin/daemons.md b/docs/admin/daemons.md index 2e50d8ef9b..be3137bc93 100644 --- a/docs/admin/daemons.md +++ b/docs/admin/daemons.md @@ -1,4 +1,7 @@ --- +assignees: +- erictune + --- * TOC diff --git a/docs/admin/dns.md b/docs/admin/dns.md index 9bf60e8bba..bdd0848cf9 100644 --- a/docs/admin/dns.md +++ b/docs/admin/dns.md @@ -1,4 +1,9 @@ --- +assignees: +- ArtfulCoder +- davidopp +- lavalamp + --- ## Introduction diff --git a/docs/admin/etcd.md b/docs/admin/etcd.md index f17b555cd8..14b36a33be 100644 --- a/docs/admin/etcd.md +++ b/docs/admin/etcd.md @@ -1,4 +1,7 @@ --- +assignees: +- lavalamp + --- diff --git a/docs/admin/federation/OWNERS b/docs/admin/federation/OWNERS new file mode 100644 index 0000000000..321cd31a2c --- /dev/null +++ b/docs/admin/federation/OWNERS @@ -0,0 +1,4 @@ +assignees: +- mml +- nikhiljindal + diff --git a/docs/admin/federation/index.md b/docs/admin/federation/index.md index fc077ec839..76e08cf90b 100644 --- a/docs/admin/federation/index.md +++ b/docs/admin/federation/index.md @@ -1,4 +1,8 @@ --- +assignees: +- mml +- nikhiljindal + --- This guide explains how to set up cluster federation that lets us control multiple Kubernetes clusters. diff --git a/docs/admin/garbage-collection.md b/docs/admin/garbage-collection.md index 81aeb772c0..d608687400 100644 --- a/docs/admin/garbage-collection.md +++ b/docs/admin/garbage-collection.md @@ -1,4 +1,8 @@ --- +assignees: +- dalanlan +- mikedanese + --- * TOC diff --git a/docs/admin/high-availability/OWNERS b/docs/admin/high-availability/OWNERS new file mode 100644 index 0000000000..0ebc2894ee --- /dev/null +++ b/docs/admin/high-availability/OWNERS @@ -0,0 +1,4 @@ +assignees: +- davidopp +- lavalamp + diff --git a/docs/admin/high-availability/index.md b/docs/admin/high-availability/index.md index d7932e47ca..1074bdeb17 100644 --- a/docs/admin/high-availability/index.md +++ b/docs/admin/high-availability/index.md @@ -1,4 +1,8 @@ ---- +--- +assignees: +- mwhahaha +- stp-ip + --- ## Introduction diff --git a/docs/admin/index.md b/docs/admin/index.md index 1fc64186ea..4df7fb3375 100644 --- a/docs/admin/index.md +++ b/docs/admin/index.md @@ -1,4 +1,8 @@ --- +assignees: +- davidopp +- lavalamp + --- The cluster admin guide is for anyone creating or administering a Kubernetes cluster. diff --git a/docs/admin/kube-apiserver.md b/docs/admin/kube-apiserver.md index 43fe66d37c..350727c61f 100644 --- a/docs/admin/kube-apiserver.md +++ b/docs/admin/kube-apiserver.md @@ -1,4 +1,8 @@ --- +assignees: +- bgrant0607 +- nikhiljindal + --- ## kube-apiserver diff --git a/docs/admin/kube-controller-manager.md b/docs/admin/kube-controller-manager.md index 70a1e576d4..02648408da 100644 --- a/docs/admin/kube-controller-manager.md +++ b/docs/admin/kube-controller-manager.md @@ -1,4 +1,8 @@ --- +assignees: +- bprashanth +- mqliang + --- ## kube-controller-manager diff --git a/docs/admin/kube-proxy.md b/docs/admin/kube-proxy.md index ff2a5af980..feb9143a8f 100644 --- a/docs/admin/kube-proxy.md +++ b/docs/admin/kube-proxy.md @@ -1,4 +1,7 @@ --- +assignees: +- thockin + --- ## kube-proxy diff --git a/docs/admin/kube-scheduler.md b/docs/admin/kube-scheduler.md index e0f6e35fa6..3470241d88 100644 --- a/docs/admin/kube-scheduler.md +++ b/docs/admin/kube-scheduler.md @@ -1,4 +1,8 @@ --- +assignees: +- davidopp +- mikedanese + --- ## kube-scheduler diff --git a/docs/admin/kubelet.md b/docs/admin/kubelet.md index ac88581046..e065c696b9 100644 --- a/docs/admin/kubelet.md +++ b/docs/admin/kubelet.md @@ -1,4 +1,9 @@ --- +assignees: +- bprashanth +- derekwaynecarr +- mikedanese + --- ## kubelet diff --git a/docs/admin/limitrange/OWNERS b/docs/admin/limitrange/OWNERS new file mode 100644 index 0000000000..1dac6f1017 --- /dev/null +++ b/docs/admin/limitrange/OWNERS @@ -0,0 +1,4 @@ +assignees: +- derekwaynecarr +- janetkuo + diff --git a/docs/admin/limitrange/index.md b/docs/admin/limitrange/index.md index 7c89b3058b..f38737981d 100644 --- a/docs/admin/limitrange/index.md +++ b/docs/admin/limitrange/index.md @@ -1,5 +1,9 @@ ---- ---- +--- +assignees: +- derekwaynecarr +- janetkuo + +--- By default, pods run with unbounded CPU and memory limits. This means that any pod in the system will be able to consume as much CPU and memory on the node that executes the pod. @@ -40,32 +44,32 @@ This example will work in a custom namespace to demonstrate the concepts involve Let's create a new namespace called limit-example: -```shell -$ kubectl create namespace limit-example -namespace "limit-example" created -``` - -Note that `kubectl` commands will print the type and name of the resource created or mutated, which can then be used in subsequent commands: - -```shell +```shell +$ kubectl create namespace limit-example +namespace "limit-example" created +``` + +Note that `kubectl` commands will print the type and name of the resource created or mutated, which can then be used in subsequent commands: + +```shell $ kubectl get namespaces -NAME STATUS AGE -default Active 51s -limit-example Active 45s -``` - +NAME STATUS AGE +default Active 51s +limit-example Active 45s +``` + ## Step 2: Apply a limit to the namespace Let's create a simple limit in our namespace. -```shell +```shell $ kubectl create -f docs/admin/limitrange/limits.yaml --namespace=limit-example limitrange "mylimits" created -``` - +``` + Let's describe the limits that we have imposed in our namespace. -```shell +```shell $ kubectl describe limits mylimits --namespace=limit-example Name: mylimits Namespace: limit-example @@ -75,8 +79,8 @@ Pod cpu 200m 2 - - Pod memory 6Mi 1Gi - - - Container cpu 100m 2 200m 300m - Container memory 3Mi 1Gi 100Mi 200Mi - -``` - +``` + In this scenario, we have said the following: 1. If a max constraint is specified for a resource (2 CPU and 1Gi memory in this case), then a limit @@ -103,108 +107,108 @@ of creation explaining why. Let's first spin up a [Deployment](/docs/user-guide/deployments) that creates a single container Pod to demonstrate how default values are applied to each pod. -```shell +```shell $ kubectl run nginx --image=nginx --replicas=1 --namespace=limit-example deployment "nginx" created -``` - -Note that `kubectl run` creates a Deployment named "nginx" on Kubernetes cluster >= v1.2. If you are running older versions, it creates replication controllers instead. -If you want to obtain the old behavior, use `--generator=run/v1` to create replication controllers. See [`kubectl run`](/docs/user-guide/kubectl/kubectl_run/) for more details. -The Deployment manages 1 replica of single container Pod. Let's take a look at the Pod it manages. First, find the name of the Pod: - -```shell +``` + +Note that `kubectl run` creates a Deployment named "nginx" on Kubernetes cluster >= v1.2. If you are running older versions, it creates replication controllers instead. +If you want to obtain the old behavior, use `--generator=run/v1` to create replication controllers. See [`kubectl run`](/docs/user-guide/kubectl/kubectl_run/) for more details. +The Deployment manages 1 replica of single container Pod. Let's take a look at the Pod it manages. First, find the name of the Pod: + +```shell $ kubectl get pods --namespace=limit-example -NAME READY STATUS RESTARTS AGE -nginx-2040093540-s8vzu 1/1 Running 0 11s -``` - -Let's print this Pod with yaml output format (using `-o yaml` flag), and then `grep` the `resources` field. Note that your pod name will be different. - -``` shell +NAME READY STATUS RESTARTS AGE +nginx-2040093540-s8vzu 1/1 Running 0 11s +``` + +Let's print this Pod with yaml output format (using `-o yaml` flag), and then `grep` the `resources` field. Note that your pod name will be different. + +``` shell $ kubectl get pods nginx-2040093540-s8vzu --namespace=limit-example -o yaml | grep resources -C 8 - resourceVersion: "57" - selfLink: /api/v1/namespaces/limit-example/pods/nginx-2040093540-ivimu - uid: 67b20741-f53b-11e5-b066-64510658e388 -spec: - containers: - - image: nginx - imagePullPolicy: Always - name: nginx - resources: - limits: - cpu: 300m - memory: 200Mi - requests: - cpu: 200m - memory: 100Mi - terminationMessagePath: /dev/termination-log - volumeMounts: -``` - + resourceVersion: "57" + selfLink: /api/v1/namespaces/limit-example/pods/nginx-2040093540-ivimu + uid: 67b20741-f53b-11e5-b066-64510658e388 +spec: + containers: + - image: nginx + imagePullPolicy: Always + name: nginx + resources: + limits: + cpu: 300m + memory: 200Mi + requests: + cpu: 200m + memory: 100Mi + terminationMessagePath: /dev/termination-log + volumeMounts: +``` + Note that our nginx container has picked up the namespace default cpu and memory resource *limits* and *requests*. Let's create a pod that exceeds our allowed limits by having it have a container that requests 3 cpu cores. -```shell +```shell $ kubectl create -f docs/admin/limitrange/invalid-pod.yaml --namespace=limit-example Error from server: error when creating "docs/admin/limitrange/invalid-pod.yaml": Pod "invalid-pod" is forbidden: [Maximum cpu usage per Pod is 2, but limit is 3., Maximum cpu usage per Container is 2, but limit is 3.] -``` - +``` + Let's create a pod that falls within the allowed limit boundaries. -```shell +```shell $ kubectl create -f docs/admin/limitrange/valid-pod.yaml --namespace=limit-example pod "valid-pod" created -``` - -Now look at the Pod's resources field: - -```shell +``` + +Now look at the Pod's resources field: + +```shell $ kubectl get pods valid-pod --namespace=limit-example -o yaml | grep -C 6 resources - uid: 3b1bfd7a-f53c-11e5-b066-64510658e388 -spec: - containers: - - image: gcr.io/google_containers/serve_hostname - imagePullPolicy: Always - name: kubernetes-serve-hostname - resources: - limits: - cpu: "1" - memory: 512Mi - requests: - cpu: "1" - memory: 512Mi -``` - + uid: 3b1bfd7a-f53c-11e5-b066-64510658e388 +spec: + containers: + - image: gcr.io/google_containers/serve_hostname + imagePullPolicy: Always + name: kubernetes-serve-hostname + resources: + limits: + cpu: "1" + memory: 512Mi + requests: + cpu: "1" + memory: 512Mi +``` + Note that this pod specifies explicit resource *limits* and *requests* so it did not pick up the namespace default values. Note: The *limits* for CPU resource are enforced in the default Kubernetes setup on the physical node that runs the container unless the administrator deploys the kubelet with the folllowing flag: -```shell +```shell $ kubelet --help Usage of kubelet .... --cpu-cfs-quota[=true]: Enable CPU CFS quota enforcement for containers that specify CPU limits $ kubelet --cpu-cfs-quota=false ... -``` - +``` + ## Step 4: Cleanup To remove the resources used by this example, you can just delete the limit-example namespace. -```shell +```shell $ kubectl delete namespace limit-example namespace "limit-example" deleted $ kubectl get namespaces -NAME STATUS AGE -default Active 12m -``` - +NAME STATUS AGE +default Active 12m +``` + ## Summary Cluster operators that want to restrict the amount of resources a single container or pod may consume are able to define allowable ranges per Kubernetes namespace. In the absence of any explicit assignments, the Kubernetes system is able to apply default resource *limits* and *requests* if desired in order to -constrain the amount of resource a pod consumes on a node. +constrain the amount of resource a pod consumes on a node. diff --git a/docs/admin/master-node-communication.md b/docs/admin/master-node-communication.md index 1d40b265f6..8ed0e3dc82 100644 --- a/docs/admin/master-node-communication.md +++ b/docs/admin/master-node-communication.md @@ -1,4 +1,9 @@ --- +assignees: +- dchen1107 +- laushinka +- roberthbailey + --- * TOC diff --git a/docs/admin/multi-cluster.md b/docs/admin/multi-cluster.md index e549a4d3ca..6359782409 100644 --- a/docs/admin/multi-cluster.md +++ b/docs/admin/multi-cluster.md @@ -1,4 +1,7 @@ --- +assignees: +- davidopp + --- You may want to set up multiple Kubernetes clusters, both to diff --git a/docs/admin/multiple-schedulers.md b/docs/admin/multiple-schedulers.md index a481831e50..8ba152ac04 100644 --- a/docs/admin/multiple-schedulers.md +++ b/docs/admin/multiple-schedulers.md @@ -1,4 +1,8 @@ --- +assignees: +- davidopp +- madhusudancs + --- Kubernetes ships with a default scheduler that is described [here](/docs/admin/kube-scheduler/). diff --git a/docs/admin/multiple-schedulers/OWNERS b/docs/admin/multiple-schedulers/OWNERS new file mode 100644 index 0000000000..3941099ffc --- /dev/null +++ b/docs/admin/multiple-schedulers/OWNERS @@ -0,0 +1,4 @@ +assignees: +- davidopp +- madhusudancs + diff --git a/docs/admin/multiple-zones.md b/docs/admin/multiple-zones.md index f7a6223b50..e5d1367862 100644 --- a/docs/admin/multiple-zones.md +++ b/docs/admin/multiple-zones.md @@ -1,4 +1,9 @@ --- +assignees: +- jlowdermilk +- justinsb +- quinton-hoole + --- ## Introduction diff --git a/docs/admin/namespaces/OWNERS b/docs/admin/namespaces/OWNERS new file mode 100644 index 0000000000..1dac6f1017 --- /dev/null +++ b/docs/admin/namespaces/OWNERS @@ -0,0 +1,4 @@ +assignees: +- derekwaynecarr +- janetkuo + diff --git a/docs/admin/namespaces/index.md b/docs/admin/namespaces/index.md index c9f51280ad..95780559e3 100644 --- a/docs/admin/namespaces/index.md +++ b/docs/admin/namespaces/index.md @@ -1,4 +1,8 @@ --- +assignees: +- derekwaynecarr +- janetkuo + --- A Namespace is a mechanism to partition resources created by users into diff --git a/docs/admin/namespaces/walkthrough.md b/docs/admin/namespaces/walkthrough.md index e3b87c7f65..2a3e6298ea 100644 --- a/docs/admin/namespaces/walkthrough.md +++ b/docs/admin/namespaces/walkthrough.md @@ -1,4 +1,8 @@ --- +assignees: +- derekwaynecarr +- janetkuo + --- Kubernetes _namespaces_ help different projects, teams, or customers to share a Kubernetes cluster. diff --git a/docs/admin/network-plugins.md b/docs/admin/network-plugins.md index 5b41c0e310..ee85126961 100644 --- a/docs/admin/network-plugins.md +++ b/docs/admin/network-plugins.md @@ -1,4 +1,9 @@ --- +assignees: +- dcbw +- freehan +- thockin + --- * TOC diff --git a/docs/admin/networking.md b/docs/admin/networking.md index 8032bdf601..cd8aaa09cf 100644 --- a/docs/admin/networking.md +++ b/docs/admin/networking.md @@ -1,4 +1,8 @@ --- +assignees: +- lavalamp +- thockin + --- Kubernetes approaches networking somewhat differently than Docker does by diff --git a/docs/admin/node-problem.md b/docs/admin/node-problem.md index 5dc2d4cb52..ab09a78dfc 100644 --- a/docs/admin/node-problem.md +++ b/docs/admin/node-problem.md @@ -1,4 +1,8 @@ --- +assignees: +- Random-Liu +- dchen1107 + --- * TOC diff --git a/docs/admin/node.md b/docs/admin/node.md index afae4454d6..1f1c89b4cb 100644 --- a/docs/admin/node.md +++ b/docs/admin/node.md @@ -1,4 +1,9 @@ --- +assignees: +- caesarxuchao +- dchen1107 +- lavalamp + --- * TOC diff --git a/docs/admin/out-of-resource.md b/docs/admin/out-of-resource.md index 2b85f486d5..16b8cc9e1e 100644 --- a/docs/admin/out-of-resource.md +++ b/docs/admin/out-of-resource.md @@ -1,4 +1,9 @@ --- +assignees: +- derekwaynecarr +- vishh +- timstclair + --- * TOC diff --git a/docs/admin/ovs-networking.md b/docs/admin/ovs-networking.md index f5a279339a..7a8f89506c 100644 --- a/docs/admin/ovs-networking.md +++ b/docs/admin/ovs-networking.md @@ -1,4 +1,8 @@ --- +assignees: +- lavalamp +- thockin + --- This document describes how OpenVSwitch is used to setup networking between pods across nodes. diff --git a/docs/admin/resourcequota/OWNERS b/docs/admin/resourcequota/OWNERS new file mode 100644 index 0000000000..dc809362b2 --- /dev/null +++ b/docs/admin/resourcequota/OWNERS @@ -0,0 +1,3 @@ +assignees: +- derekwaynecarr + diff --git a/docs/admin/resourcequota/index.md b/docs/admin/resourcequota/index.md index af96bc538d..d3073848ba 100644 --- a/docs/admin/resourcequota/index.md +++ b/docs/admin/resourcequota/index.md @@ -1,4 +1,7 @@ --- +assignees: +- derekwaynecarr + --- When several users or teams share a cluster with a fixed number of nodes, diff --git a/docs/admin/resourcequota/walkthrough.md b/docs/admin/resourcequota/walkthrough.md index dcae893d40..4712f7f25a 100644 --- a/docs/admin/resourcequota/walkthrough.md +++ b/docs/admin/resourcequota/walkthrough.md @@ -1,4 +1,8 @@ --- +assignees: +- derekwaynecarr +- janetkuo + --- This example demonstrates a typical setup to control for resource usage in a namespace. diff --git a/docs/admin/salt.md b/docs/admin/salt.md index 6210e59055..2cb634d7c6 100644 --- a/docs/admin/salt.md +++ b/docs/admin/salt.md @@ -1,5 +1,9 @@ ---- ---- +--- +assignees: +- davidopp +- lavalamp + +--- The Kubernetes cluster can be configured using Salt. @@ -13,11 +17,11 @@ The **salt-minion** service runs on the kubernetes-master and each kubernetes-no Each salt-minion service is configured to interact with the **salt-master** service hosted on the kubernetes-master via the **master.conf** file [(except on GCE)](#standalone-salt-configuration-on-gce). -```shell +```shell [root@kubernetes-master] $ cat /etc/salt/minion.d/master.conf master: kubernetes-master -``` - +``` + The salt-master is contacted by each salt-minion and depending upon the machine information presented, the salt-master will provision the machine as either a kubernetes-master or kubernetes-node with all the required capabilities needed to run Kubernetes. If you are running the Vagrant based environment, the **salt-api** service is running on the kubernetes-master. It is configured to enable the vagrant user to introspect the salt cluster in order to find out about machines in the Vagrant environment via a REST API. @@ -34,27 +38,27 @@ All remaining sections that refer to master/minion setups should be ignored for Security is not enabled on the salt-master, and the salt-master is configured to auto-accept incoming requests from minions. It is not recommended to use this security configuration in production environments without deeper study. (In some environments this isn't as bad as it might sound if the salt master port isn't externally accessible and you trust everyone on your network.) -```shell +```shell [root@kubernetes-master] $ cat /etc/salt/master.d/auto-accept.conf open_mode: True auto_accept: True -``` - +``` + ## Salt minion configuration Each minion in the salt cluster has an associated configuration that instructs the salt-master how to provision the required resources on the machine. An example file is presented below using the Vagrant based environment. -```shell +```shell [root@kubernetes-master] $ cat /etc/salt/minion.d/grains.conf grains: etcd_servers: $MASTER_IP cloud: vagrant roles: - kubernetes-master -``` - +``` + Each hosting environment has a slightly different grains.conf file that is used to build conditional logic where required in the Salt files. The following enumerates the set of defined key/value pairs that are supported today. If you add new ones, please make sure to update this list. @@ -77,16 +81,16 @@ These keys may be leveraged by the Salt sls files to branch behavior. In addition, a cluster may be running a Debian based operating system or Red Hat based operating system (Centos, Fedora, RHEL, etc.). As a result, it's important to sometimes distinguish behavior based on operating system using if branches like the following. -```liquid +```liquid {% raw %} {% if grains['os_family'] == 'RedHat' %} // something specific to a RedHat environment (Centos, Fedora, RHEL) where you may use yum, systemd, etc. {% else %} // something specific to Debian environment (apt-get, initd) -{% endif %} +{% endif %} {% endraw %} -``` - +``` + ## Best Practices 1. When configuring default arguments for processes, it's best to avoid the use of EnvironmentFiles (Systemd in Red Hat environments) or init.d files (Debian distributions) to hold default values that should be common across operating system environments. This helps keep our Salt template files easy to understand for editors who may not be familiar with the particulars of each distribution. diff --git a/docs/admin/service-accounts-admin.md b/docs/admin/service-accounts-admin.md index 146f91310b..810f4d7515 100644 --- a/docs/admin/service-accounts-admin.md +++ b/docs/admin/service-accounts-admin.md @@ -1,4 +1,10 @@ --- +assignees: +- bprashanth +- davidopp +- lavalamp +- liggitt + --- *This is a Cluster Administrator guide to service accounts. It assumes knowledge of diff --git a/docs/admin/static-pods.md b/docs/admin/static-pods.md index a341376c8a..ea9468f31c 100644 --- a/docs/admin/static-pods.md +++ b/docs/admin/static-pods.md @@ -1,4 +1,7 @@ --- +assignees: +- jsafrane + --- **If you are running clustered Kubernetes and are using static pods to run a pod on every node, you should probably be using a [DaemonSet](/docs/admin/daemons/)!** diff --git a/docs/api-reference/OWNERS b/docs/api-reference/OWNERS new file mode 100644 index 0000000000..cca5435e84 --- /dev/null +++ b/docs/api-reference/OWNERS @@ -0,0 +1,5 @@ +assignees: +- bgrant0607 +- caesarxuchao +- pmorie + diff --git a/docs/api-reference/autoscaling/OWNERS b/docs/api-reference/autoscaling/OWNERS new file mode 100644 index 0000000000..815e01e661 --- /dev/null +++ b/docs/api-reference/autoscaling/OWNERS @@ -0,0 +1,6 @@ +assignees: +- bgrant0607 +- caesarxuchao +- fgrzadkowski +- smarterclayton + diff --git a/docs/api-reference/batch/OWNERS b/docs/api-reference/batch/OWNERS new file mode 100644 index 0000000000..859974e212 --- /dev/null +++ b/docs/api-reference/batch/OWNERS @@ -0,0 +1,6 @@ +assignees: +- bgrant0607 +- caesarxuchao +- gmarek +- smarterclayton + diff --git a/docs/api-reference/extensions/OWNERS b/docs/api-reference/extensions/OWNERS new file mode 100644 index 0000000000..f0dea3903c --- /dev/null +++ b/docs/api-reference/extensions/OWNERS @@ -0,0 +1,6 @@ +assignees: +- bgrant0607 +- caesarxuchao +- madhusudancs +- pmorie + diff --git a/docs/api-reference/v1/OWNERS b/docs/api-reference/v1/OWNERS new file mode 100644 index 0000000000..71582ee6a4 --- /dev/null +++ b/docs/api-reference/v1/OWNERS @@ -0,0 +1,6 @@ +assignees: +- bgrant0607 +- caesarxuchao +- nikhiljindal +- pmorie + diff --git a/docs/api-reference/v1/definitions.md b/docs/api-reference/v1/definitions.md index 05dfc063cf..dddff20bf7 100644 --- a/docs/api-reference/v1/definitions.md +++ b/docs/api-reference/v1/definitions.md @@ -1,3 +1,7 @@ --- +assignees: +- bgrant0607 +- caesarxuchao + --- {% include v1.3/v1-definitions.html %} diff --git a/docs/api-reference/v1/operations.md b/docs/api-reference/v1/operations.md index 32b4629e25..e0241125ba 100644 --- a/docs/api-reference/v1/operations.md +++ b/docs/api-reference/v1/operations.md @@ -1,3 +1,7 @@ --- +assignees: +- bgrant0607 +- caesarxuchao + --- {% include v1.3/v1-operations.html %} diff --git a/docs/api.md b/docs/api.md index ab8a6a3953..aa9aea1d7f 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,4 +1,9 @@ --- +assignees: +- bgrant0607 +- erictune +- lavalamp + --- Primary system and API concepts are documented in the [User guide](/docs/user-guide/). diff --git a/docs/getting-started-guides/OWNERS b/docs/getting-started-guides/OWNERS new file mode 100644 index 0000000000..a1e101ce43 --- /dev/null +++ b/docs/getting-started-guides/OWNERS @@ -0,0 +1,4 @@ +assignees: +- errordeveloper +- pires + diff --git a/docs/getting-started-guides/aws.md b/docs/getting-started-guides/aws.md index 4b5f642ad8..20a310f57f 100644 --- a/docs/getting-started-guides/aws.md +++ b/docs/getting-started-guides/aws.md @@ -1,4 +1,9 @@ --- +assignees: +- JamesDeFabia +- justinsb +- lavalamp + --- * TOC diff --git a/docs/getting-started-guides/azure.md b/docs/getting-started-guides/azure.md index 47050db1c9..bb01c8641d 100644 --- a/docs/getting-started-guides/azure.md +++ b/docs/getting-started-guides/azure.md @@ -1,4 +1,8 @@ --- +assignees: +- colemickens +- jeffmendoza + --- * TOC diff --git a/docs/getting-started-guides/binary_release.md b/docs/getting-started-guides/binary_release.md index 7280e7b89f..d3b2886f87 100644 --- a/docs/getting-started-guides/binary_release.md +++ b/docs/getting-started-guides/binary_release.md @@ -1,4 +1,8 @@ --- +assignees: +- david-mcmahon +- jbeda + --- You can either build a release from sources or download a pre-built release. If you do not plan on developing Kubernetes itself, we suggest a pre-built release. diff --git a/docs/getting-started-guides/centos/OWNERS b/docs/getting-started-guides/centos/OWNERS new file mode 100644 index 0000000000..3ff2ad25b0 --- /dev/null +++ b/docs/getting-started-guides/centos/OWNERS @@ -0,0 +1,5 @@ +assignees: +- coolsvap +- lavalamp +- thockin + diff --git a/docs/getting-started-guides/centos/centos_manual_config.md b/docs/getting-started-guides/centos/centos_manual_config.md index f2bc49099f..eeca62036c 100644 --- a/docs/getting-started-guides/centos/centos_manual_config.md +++ b/docs/getting-started-guides/centos/centos_manual_config.md @@ -1,4 +1,9 @@ --- +assignees: +- coolsvap +- lavalamp +- thockin + --- * TOC diff --git a/docs/getting-started-guides/clc.md b/docs/getting-started-guides/clc.md index 3e9b3f0858..637d2707e5 100644 --- a/docs/getting-started-guides/clc.md +++ b/docs/getting-started-guides/clc.md @@ -1,4 +1,8 @@ --- +assignees: +- JamesDeFabia +- ckleban + --- * TOC {: toc} diff --git a/docs/getting-started-guides/cloudstack.md b/docs/getting-started-guides/cloudstack.md index 313c97de65..2361a4fd79 100644 --- a/docs/getting-started-guides/cloudstack.md +++ b/docs/getting-started-guides/cloudstack.md @@ -1,4 +1,8 @@ --- +assignees: +- lavalamp +- thockin + --- CloudStack is a software to build public and private clouds based on hardware virtualization principles (traditional IaaS). To deploy Kubernetes on CloudStack there are several possibilities depending on the Cloud being used and what images are made available. [Exoscale](http://exoscale.ch) for instance makes a [CoreOS](http://coreos.com) template available, therefore instructions to deploy Kubernetes on coreOS can be used. CloudStack also has a vagrant plugin available, hence Vagrant could be used to deploy Kubernetes either using the existing shell provisioner or using new Salt based recipes. diff --git a/docs/getting-started-guides/coreos/OWNERS b/docs/getting-started-guides/coreos/OWNERS new file mode 100644 index 0000000000..a6c2c1b164 --- /dev/null +++ b/docs/getting-started-guides/coreos/OWNERS @@ -0,0 +1,5 @@ +assignees: +- AntonioMeireles +- errordeveloper +- pires + diff --git a/docs/getting-started-guides/coreos/bare_metal_calico.md b/docs/getting-started-guides/coreos/bare_metal_calico.md index 06ca2697a7..2447fe8f90 100644 --- a/docs/getting-started-guides/coreos/bare_metal_calico.md +++ b/docs/getting-started-guides/coreos/bare_metal_calico.md @@ -1,4 +1,7 @@ --- +assignees: +- caseydavenport + --- This document describes how to deploy Kubernetes with Calico networking on _bare metal_ CoreOS. For more information on Project Calico, visit [projectcalico.org](http://projectcalico.org) and the [calico-containers repository](https://github.com/projectcalico/calico-containers). diff --git a/docs/getting-started-guides/coreos/bare_metal_offline.md b/docs/getting-started-guides/coreos/bare_metal_offline.md index 9f2bec9320..8c71617163 100644 --- a/docs/getting-started-guides/coreos/bare_metal_offline.md +++ b/docs/getting-started-guides/coreos/bare_metal_offline.md @@ -1,4 +1,9 @@ --- +assignees: +- erictune +- jeffbean +- thockin + --- Deploy a CoreOS running Kubernetes environment. This particular guide is made to help those in an OFFLINE system, wither for testing a POC before the real deal, or you are restricted to be totally offline for your applications. diff --git a/docs/getting-started-guides/coreos/coreos_multinode_cluster.md b/docs/getting-started-guides/coreos/coreos_multinode_cluster.md index cc786e3ec4..9939a6960c 100644 --- a/docs/getting-started-guides/coreos/coreos_multinode_cluster.md +++ b/docs/getting-started-guides/coreos/coreos_multinode_cluster.md @@ -1,4 +1,8 @@ --- +assignees: +- dchen1107 +- pires + --- Use the [master.yaml](/docs/getting-started-guides/coreos/cloud-configs/master.yaml) and [node.yaml](/docs/getting-started-guides/coreos/cloud-configs/node.yaml) cloud-configs to provision a multi-node Kubernetes cluster. diff --git a/docs/getting-started-guides/coreos/index.md b/docs/getting-started-guides/coreos/index.md index 59fe04a1f2..6eab664c1c 100644 --- a/docs/getting-started-guides/coreos/index.md +++ b/docs/getting-started-guides/coreos/index.md @@ -1,4 +1,8 @@ --- +assignees: +- JamesDeFabia +- johscheuer + --- * TOC diff --git a/docs/getting-started-guides/dcos.md b/docs/getting-started-guides/dcos.md index 442c485bf9..43c6d28e36 100644 --- a/docs/getting-started-guides/dcos.md +++ b/docs/getting-started-guides/dcos.md @@ -1,4 +1,7 @@ --- +assignees: +- karlkfi + --- This guide will walk you through installing [Kubernetes-Mesos](https://github.com/mesosphere/kubernetes-mesos) on [Datacenter Operating System (DCOS)](https://mesosphere.com/product/) with the [DCOS CLI](https://github.com/mesosphere/dcos-cli) and operating Kubernetes with the [DCOS Kubectl plugin](https://github.com/mesosphere/dcos-kubectl). diff --git a/docs/getting-started-guides/docker-multinode/OWNERS b/docs/getting-started-guides/docker-multinode/OWNERS new file mode 100644 index 0000000000..687339adf0 --- /dev/null +++ b/docs/getting-started-guides/docker-multinode/OWNERS @@ -0,0 +1,5 @@ +assignees: +- dalanlan +- dchen1107 +- resouer + diff --git a/docs/getting-started-guides/docker.md b/docs/getting-started-guides/docker.md index a6893f27e7..4046045559 100644 --- a/docs/getting-started-guides/docker.md +++ b/docs/getting-started-guides/docker.md @@ -1,4 +1,9 @@ --- +assignees: +- asridharan +- brendandburns +- fgrzadkowski + --- **Stop. This guide has been superseded by [Minikube](../minikube/) which is the recommended method of running Kubernetes on your local machine.** diff --git a/docs/getting-started-guides/fedora/OWNERS b/docs/getting-started-guides/fedora/OWNERS new file mode 100644 index 0000000000..26456cebf2 --- /dev/null +++ b/docs/getting-started-guides/fedora/OWNERS @@ -0,0 +1,5 @@ +assignees: +- aveshagarwal +- eparis +- thockin + diff --git a/docs/getting-started-guides/fedora/fedora-calico.md b/docs/getting-started-guides/fedora/fedora-calico.md index a73b7e23bc..d8f983ec18 100644 --- a/docs/getting-started-guides/fedora/fedora-calico.md +++ b/docs/getting-started-guides/fedora/fedora-calico.md @@ -1,4 +1,9 @@ --- +assignees: +- alexhersh +- caesarxuchao +- caseydavenport + --- This guide will walk you through the process of getting a Kubernetes Fedora cluster running on Digital Ocean with networking powered by Calico networking. diff --git a/docs/getting-started-guides/fedora/fedora_ansible_config.md b/docs/getting-started-guides/fedora/fedora_ansible_config.md index 57532a4fa5..aa439f07b0 100644 --- a/docs/getting-started-guides/fedora/fedora_ansible_config.md +++ b/docs/getting-started-guides/fedora/fedora_ansible_config.md @@ -1,4 +1,8 @@ --- +assignees: +- aveshagarwal +- erictune + --- Configuring Kubernetes on Fedora via Ansible offers a simple way to quickly create a clustered environment with little effort. diff --git a/docs/getting-started-guides/fedora/fedora_manual_config.md b/docs/getting-started-guides/fedora/fedora_manual_config.md index 9872275b6c..238498d18c 100644 --- a/docs/getting-started-guides/fedora/fedora_manual_config.md +++ b/docs/getting-started-guides/fedora/fedora_manual_config.md @@ -1,4 +1,9 @@ --- +assignees: +- aveshagarwal +- eparis +- thockin + --- * TOC diff --git a/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md b/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md index 8de2e9dc4e..4c89d85e90 100644 --- a/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md +++ b/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md @@ -1,4 +1,9 @@ --- +assignees: +- dchen1107 +- erictune +- thockin + --- * TOC {:toc} diff --git a/docs/getting-started-guides/gce.md b/docs/getting-started-guides/gce.md index e3bbb8f6e5..a8b3a38a5e 100644 --- a/docs/getting-started-guides/gce.md +++ b/docs/getting-started-guides/gce.md @@ -1,4 +1,10 @@ --- +assignees: +- brendandburns +- jbeda +- mikedanese +- thockin + --- diff --git a/docs/getting-started-guides/index.md b/docs/getting-started-guides/index.md index 404191e62d..59857a03f2 100644 --- a/docs/getting-started-guides/index.md +++ b/docs/getting-started-guides/index.md @@ -1,4 +1,9 @@ --- +assignees: +- brendandburns +- erictune +- mikedanese + --- Kubernetes can run on a range of platforms, from your laptop, to VMs on a cloud provider, to rack of diff --git a/docs/getting-started-guides/juju.md b/docs/getting-started-guides/juju.md index ac7ceef8d0..d85c4b99c5 100644 --- a/docs/getting-started-guides/juju.md +++ b/docs/getting-started-guides/juju.md @@ -1,4 +1,9 @@ --- +assignees: +- caesarxuchao +- erictune +- mbruzek + --- [Juju](https://jujucharms.com/docs/2.0/about-juju) encapsulates the diff --git a/docs/getting-started-guides/libvirt-coreos.md b/docs/getting-started-guides/libvirt-coreos.md index 0b4d677a1f..eb16ee8a01 100644 --- a/docs/getting-started-guides/libvirt-coreos.md +++ b/docs/getting-started-guides/libvirt-coreos.md @@ -1,4 +1,9 @@ --- +assignees: +- erictune +- idvoretskyi +- lhuard1A + --- * TOC diff --git a/docs/getting-started-guides/locally.md b/docs/getting-started-guides/locally.md index cad7f6b586..afa71ea936 100644 --- a/docs/getting-started-guides/locally.md +++ b/docs/getting-started-guides/locally.md @@ -1,4 +1,9 @@ --- +assignees: +- erictune +- mikedanese +- thockin + --- **Stop. This guide has been superseded by [Minikube](../minikube/) which is the recommended method of running Kubernetes on your local machine.** diff --git a/docs/getting-started-guides/logging-elasticsearch.md b/docs/getting-started-guides/logging-elasticsearch.md index 515e981ab7..2141cfbc6d 100644 --- a/docs/getting-started-guides/logging-elasticsearch.md +++ b/docs/getting-started-guides/logging-elasticsearch.md @@ -1,4 +1,8 @@ --- +assignees: +- lavalamp +- satnam6502 + --- On the Google Compute Engine (GCE) platform, the default logging support targets diff --git a/docs/getting-started-guides/logging.md b/docs/getting-started-guides/logging.md index 84801d45fa..47bb5236b9 100644 --- a/docs/getting-started-guides/logging.md +++ b/docs/getting-started-guides/logging.md @@ -1,4 +1,8 @@ --- +assignees: +- lavalamp +- satnam6502 + --- A Kubernetes cluster will typically be humming along running many system and application pods. How does the system administrator collect, manage and query the logs of the system pods? How does a user query the logs of their application which is composed of many pods which may be restarted or automatically generated by the Kubernetes system? These questions are addressed by the Kubernetes **cluster level logging** services. diff --git a/docs/getting-started-guides/meanstack.md b/docs/getting-started-guides/meanstack.md index c758ed00fd..c3dbdf984a 100644 --- a/docs/getting-started-guides/meanstack.md +++ b/docs/getting-started-guides/meanstack.md @@ -1,4 +1,8 @@ --- +assignees: +- glnds +- paulzim + --- **By: Sandeep Dinesh** - _July 29, 2015_ diff --git a/docs/getting-started-guides/mesos-docker.md b/docs/getting-started-guides/mesos-docker.md index 5067c0ba72..eb9ccbc0ad 100644 --- a/docs/getting-started-guides/mesos-docker.md +++ b/docs/getting-started-guides/mesos-docker.md @@ -1,4 +1,8 @@ --- +assignees: +- jdef +- karlkfi + --- diff --git a/docs/getting-started-guides/mesos/OWNERS b/docs/getting-started-guides/mesos/OWNERS index 7cdb4cdb49..769585a3f1 100644 --- a/docs/getting-started-guides/mesos/OWNERS +++ b/docs/getting-started-guides/mesos/OWNERS @@ -1,3 +1,6 @@ assignees: - - jdef - - karlkfi +- jdef +- nak3 +- sttts +- thockin + diff --git a/docs/getting-started-guides/mesos/index.md b/docs/getting-started-guides/mesos/index.md index 059122c497..b5c6f9932f 100644 --- a/docs/getting-started-guides/mesos/index.md +++ b/docs/getting-started-guides/mesos/index.md @@ -1,4 +1,9 @@ --- +assignees: +- JamesDeFabia +- jdef +- mikebrow + --- * TOC diff --git a/docs/getting-started-guides/minikube.md b/docs/getting-started-guides/minikube.md index 5e61caa967..b2c9b8a776 100644 --- a/docs/getting-started-guides/minikube.md +++ b/docs/getting-started-guides/minikube.md @@ -1,4 +1,9 @@ --- +assignees: +- dlorenc +- janetkuo +- jlowdermilk + --- * TOC diff --git a/docs/getting-started-guides/openstack-heat.md b/docs/getting-started-guides/openstack-heat.md index ae1684bb81..f4b259a2b5 100644 --- a/docs/getting-started-guides/openstack-heat.md +++ b/docs/getting-started-guides/openstack-heat.md @@ -1,4 +1,11 @@ --- +assignees: +- elsonrodriguez +- idvoretskyi +- ohtake +- xsgordon +- zreigz + --- * TOC diff --git a/docs/getting-started-guides/ovirt.md b/docs/getting-started-guides/ovirt.md index e1ebe7e67a..d22b36fe0f 100644 --- a/docs/getting-started-guides/ovirt.md +++ b/docs/getting-started-guides/ovirt.md @@ -1,4 +1,8 @@ --- +assignees: +- caesarxuchao +- erictune + --- * TOC diff --git a/docs/getting-started-guides/photon-controller.md b/docs/getting-started-guides/photon-controller.md index c3482dc654..9878ca898a 100644 --- a/docs/getting-started-guides/photon-controller.md +++ b/docs/getting-started-guides/photon-controller.md @@ -1,4 +1,8 @@ --- +assignees: +- AlainRoy +- bprashanth + --- The example below creates a Kubernetes cluster using VMware's Photon diff --git a/docs/getting-started-guides/rackspace.md b/docs/getting-started-guides/rackspace.md index a91187275e..d71438bb1e 100644 --- a/docs/getting-started-guides/rackspace.md +++ b/docs/getting-started-guides/rackspace.md @@ -1,4 +1,8 @@ --- +assignees: +- doublerr +- erictune + --- * Supported Version: v0.18.1 diff --git a/docs/getting-started-guides/rkt/OWNERS b/docs/getting-started-guides/rkt/OWNERS new file mode 100644 index 0000000000..578ee5b700 --- /dev/null +++ b/docs/getting-started-guides/rkt/OWNERS @@ -0,0 +1,5 @@ +assignees: +- joshix +- lavalamp +- yifan-gu + diff --git a/docs/getting-started-guides/rkt/index.md b/docs/getting-started-guides/rkt/index.md index 00d5764c83..8bc25d07e3 100644 --- a/docs/getting-started-guides/rkt/index.md +++ b/docs/getting-started-guides/rkt/index.md @@ -1,4 +1,9 @@ --- +assignees: +- joshix +- lavalamp +- yifan-gu + --- This document describes how to run Kubernetes using [rkt](https://github.com/coreos/rkt) as the container runtime. diff --git a/docs/getting-started-guides/rkt/notes.md b/docs/getting-started-guides/rkt/notes.md index 30a022dc24..658d5de2a9 100644 --- a/docs/getting-started-guides/rkt/notes.md +++ b/docs/getting-started-guides/rkt/notes.md @@ -1,4 +1,8 @@ --- +assignees: +- dchen1107 +- yifan-gu + --- The following features either are not supported or have large caveats when using the rkt container runtime. Increasing support for these items and others, including reasonable feature parity with the default container engine, is planned through future releases. diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index eb59ff061e..a4fd03e643 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -1,4 +1,9 @@ --- +assignees: +- erictune +- lavalamp +- thockin + --- This guide is for people who want to craft a custom Kubernetes cluster. If you diff --git a/docs/getting-started-guides/ubuntu-calico.md b/docs/getting-started-guides/ubuntu-calico.md index 678b9b8388..bfa92be2bb 100644 --- a/docs/getting-started-guides/ubuntu-calico.md +++ b/docs/getting-started-guides/ubuntu-calico.md @@ -1,4 +1,8 @@ --- +assignees: +- alexhersh +- caseydavenport + --- This document describes how to deploy Kubernetes with Calico networking from scratch on _bare metal_ Ubuntu. For more information on Project Calico, visit [projectcalico.org](http://projectcalico.org) and the [calico-containers repository](https://github.com/projectcalico/calico-containers). diff --git a/docs/getting-started-guides/ubuntu.md b/docs/getting-started-guides/ubuntu.md index 1643841d53..236a6d9e6e 100644 --- a/docs/getting-started-guides/ubuntu.md +++ b/docs/getting-started-guides/ubuntu.md @@ -1,4 +1,9 @@ --- +assignees: +- WIZARD-CXY +- dalanlan +- thockin + --- This document describes how to deploy kubernetes on ubuntu nodes, 1 master and 3 nodes involved diff --git a/docs/getting-started-guides/vagrant.md b/docs/getting-started-guides/vagrant.md index b72649b581..09bd4a20c9 100644 --- a/docs/getting-started-guides/vagrant.md +++ b/docs/getting-started-guides/vagrant.md @@ -1,4 +1,9 @@ --- +assignees: +- brendandburns +- derekwaynecarr +- jbeda + --- **Stop. This guide has been superseded by [Minikube](../minikube/) which is the recommended method of running Kubernetes on your local machine.** diff --git a/docs/getting-started-guides/vsphere.md b/docs/getting-started-guides/vsphere.md index 0e98968bda..3b2d34d324 100644 --- a/docs/getting-started-guides/vsphere.md +++ b/docs/getting-started-guides/vsphere.md @@ -1,4 +1,8 @@ --- +assignees: +- erictune +- jbeda + --- The example below creates a Kubernetes cluster with 4 worker node Virtual diff --git a/docs/hellonode.md b/docs/hellonode.md index 146e6452f7..41da09d274 100755 --- a/docs/hellonode.md +++ b/docs/hellonode.md @@ -1,4 +1,9 @@ --- +assignees: +- dchen1107 +- juretta +- pwittrock + --- * TOC diff --git a/docs/index.md b/docs/index.md index da6febb315..84a2f5c08a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,8 @@ --- +assignees: +- bgrant0607 +- thockin + ---