@@ -32,22 +32,22 @@ To retrieve the address of the Kubernetes master cluster and the proxy URLs for
...
@@ -32,22 +32,22 @@ To retrieve the address of the Kubernetes master cluster and the proxy URLs for
$ kubectl cluster-info
$ kubectl cluster-info
Kubernetes master is running at https://104.197.5.247
Kubernetes master is running at https://104.197.5.247
elasticsearch-logging is running at https://104.197.5.247/api/v1beta3/proxy/namespaces/default/services/elasticsearch-logging
elasticsearch-logging is running at https://104.197.5.247/api/v1/proxy/namespaces/default/services/elasticsearch-logging
kibana-logging is running at https://104.197.5.247/api/v1beta3/proxy/namespaces/default/services/kibana-logging
kibana-logging is running at https://104.197.5.247/api/v1/proxy/namespaces/default/services/kibana-logging
kube-dns is running at https://104.197.5.247/api/v1beta3/proxy/namespaces/default/services/kube-dns
kube-dns is running at https://104.197.5.247/api/v1/proxy/namespaces/default/services/kube-dns
grafana is running at https://104.197.5.247/api/v1beta3/proxy/namespaces/default/services/monitoring-grafana
grafana is running at https://104.197.5.247/api/v1/proxy/namespaces/default/services/monitoring-grafana
heapster is running at https://104.197.5.247/api/v1beta3/proxy/namespaces/default/services/monitoring-heapster
heapster is running at https://104.197.5.247/api/v1/proxy/namespaces/default/services/monitoring-heapster
```
```
**Note**: Currently, adding trailing forward slashes '.../' to proxy URLs is required, for example: `https://104.197.5.247/api/v1beta3/proxy/namespaces/default/services/elasticsearch-logging/`.
**Note**: Currently, adding trailing forward slashes '.../' to proxy URLs is required, for example: `https://104.197.5.247/api/v1/proxy/namespaces/default/services/elasticsearch-logging/`.
#### Manually constructing proxy URLs
#### Manually constructing proxy URLs
As mentioned above, you use the `kubectl cluster-info` command to retrieve the service's proxy URL. To create proxy URLs that include service endpoints, suffixes, and parameters, you simply append to the service's proxy URL:
As mentioned above, you use the `kubectl cluster-info` command to retrieve the service's proxy URL. To create proxy URLs that include service endpoints, suffixes, and parameters, you simply append to the service's proxy URL:
* To access the Elasticsearch service endpoint `_search?q=user:kimchy`, you would use: `http://104.197.5.247/api/v1beta3/proxy/namespaces/default/services/elasticsearch-logging/_search?q=user:kimchy`
* To access the Elasticsearch service endpoint `_search?q=user:kimchy`, you would use: `http://104.197.5.247/api/v1/proxy/namespaces/default/services/elasticsearch-logging/_search?q=user:kimchy`
* To access the Elasticsearch cluster health information `_cluster/health?pretty=true`, you would use: `https://104.197.5.247/api/v1beta3/proxy/namespaces/default/services/elasticsearch-logging/_cluster/health?pretty=true`
* To access the Elasticsearch cluster health information `_cluster/health?pretty=true`, you would use: `https://104.197.5.247/api/v1/proxy/namespaces/default/services/elasticsearch-logging/_cluster/health?pretty=true`
```
```
{
{
"cluster_name" : "kubernetes_logging",
"cluster_name" : "kubernetes_logging",
...
@@ -79,10 +79,10 @@ Run `curl` commands using the following formats:
...
@@ -79,10 +79,10 @@ Run `curl` commands using the following formats:
For example, to get status information about the Elasticsearch logging service, you would run one of the following commands:
For example, to get status information about the Elasticsearch logging service, you would run one of the following commands:
@@ -104,7 +104,7 @@ The result for either authentication method:
...
@@ -104,7 +104,7 @@ The result for either authentication method:
#### Using web browsers
#### Using web browsers
In a web browser, navigate to the proxy URL and then enter your username and password when prompted. For example, you would copy and paste the following proxy URL into the address bar of your browser:
In a web browser, navigate to the proxy URL and then enter your username and password when prompted. For example, you would copy and paste the following proxy URL into the address bar of your browser:
**Note**: We use the `-L` flag in the request so that `curl` follows the returned redirect address and retrieves the Elasticsearch service information.
**Note**: We use the `-L` flag in the request so that `curl` follows the returned redirect address and retrieves the Elasticsearch service information.
If we examine the actual redirect header (instead run the same `curl` command with `-v`), we see that the request to `https://104.197.5.247/api/v1beta3/redirect/namespaces/default/services/elasticsearch-logging/` is redirected to `http://10.244.2.7:9200`:
If we examine the actual redirect header (instead run the same `curl` command with `-v`), we see that the request to `https://104.197.5.247/api/v1/redirect/namespaces/default/services/elasticsearch-logging/` is redirected to `http://10.244.2.7:9200`:
@@ -511,7 +511,7 @@ Possible values for the ```reason``` and ```details``` fields:
...
@@ -511,7 +511,7 @@ Possible values for the ```reason``` and ```details``` fields:
* Details (optional):
* Details (optional):
*`kind string`
*`kind string`
* The kind attribute of the unauthorized resource (on some operations may differ from the requested resource).
* The kind attribute of the unauthorized resource (on some operations may differ from the requested resource).
*`id string`
*`name string`
* The identifier of the unauthorized resource.
* The identifier of the unauthorized resource.
* HTTP status code: `401 StatusUnauthorized`
* HTTP status code: `401 StatusUnauthorized`
*`Forbidden`
*`Forbidden`
...
@@ -519,7 +519,7 @@ Possible values for the ```reason``` and ```details``` fields:
...
@@ -519,7 +519,7 @@ Possible values for the ```reason``` and ```details``` fields:
* Details (optional):
* Details (optional):
*`kind string`
*`kind string`
* The kind attribute of the forbidden resource (on some operations may differ from the requested resource).
* The kind attribute of the forbidden resource (on some operations may differ from the requested resource).
*`id string`
*`name string`
* The identifier of the forbidden resource.
* The identifier of the forbidden resource.
* HTTP status code: `403 StatusForbidden`
* HTTP status code: `403 StatusForbidden`
*`NotFound`
*`NotFound`
...
@@ -527,7 +527,7 @@ Possible values for the ```reason``` and ```details``` fields:
...
@@ -527,7 +527,7 @@ Possible values for the ```reason``` and ```details``` fields:
* Details (optional):
* Details (optional):
*`kind string`
*`kind string`
* The kind attribute of the missing resource (on some operations may differ from the requested resource).
* The kind attribute of the missing resource (on some operations may differ from the requested resource).
*`id string`
*`name string`
* The identifier of the missing resource.
* The identifier of the missing resource.
* HTTP status code: `404 StatusNotFound`
* HTTP status code: `404 StatusNotFound`
*`AlreadyExists`
*`AlreadyExists`
...
@@ -535,7 +535,7 @@ Possible values for the ```reason``` and ```details``` fields:
...
@@ -535,7 +535,7 @@ Possible values for the ```reason``` and ```details``` fields:
* Details (optional):
* Details (optional):
*`kind string`
*`kind string`
* The kind attribute of the conflicting resource.
* The kind attribute of the conflicting resource.
*`id string`
*`name string`
* The identifier of the conflicting resource.
* The identifier of the conflicting resource.
* HTTP status code: `409 StatusConflict`
* HTTP status code: `409 StatusConflict`
*`Conflict`
*`Conflict`
...
@@ -546,7 +546,7 @@ Possible values for the ```reason``` and ```details``` fields:
...
@@ -546,7 +546,7 @@ Possible values for the ```reason``` and ```details``` fields:
* Details (optional):
* Details (optional):
*`kind string`
*`kind string`
* the kind attribute of the invalid resource
* the kind attribute of the invalid resource
*`id string`
*`name string`
* the identifier of the invalid resource
* the identifier of the invalid resource
*`causes`
*`causes`
* One or more `StatusCause` entries indicating the data in the provided resource that was invalid. The `reason`, `message`, and `field` attributes will be set.
* One or more `StatusCause` entries indicating the data in the provided resource that was invalid. The `reason`, `message`, and `field` attributes will be set.
...
@@ -560,7 +560,7 @@ Possible values for the ```reason``` and ```details``` fields:
...
@@ -560,7 +560,7 @@ Possible values for the ```reason``` and ```details``` fields:
* Details (optional):
* Details (optional):
*`kind string`
*`kind string`
* The kind attribute of the resource being acted on.
* The kind attribute of the resource being acted on.
*`id string`
*`name string`
* The operation that is being attempted.
* The operation that is being attempted.
* The server should set the `Retry-After` HTTP header and return `retryAfterSeconds` in the details field of the object. A value of `0` is the default.
* The server should set the `Retry-After` HTTP header and return `retryAfterSeconds` in the details field of the object. A value of `0` is the default.
@@ -18,8 +18,8 @@ There is a sequence of steps to upgrade to a new API version.
...
@@ -18,8 +18,8 @@ There is a sequence of steps to upgrade to a new API version.
### Turn on or off an API version for your cluster
### Turn on or off an API version for your cluster
Specific API versions can be turned on or off by passing --runtime-config=api/<version> flag while bringing up the server. For example: to turn off v1beta3 API, pass --runtime-config=api/v1beta3=false.
Specific API versions can be turned on or off by passing --runtime-config=api/<version> flag while bringing up the server. For example: to turn off v1 API, pass --runtime-config=api/v1=false.
runtime-config also supports 2 special keys: api/all and api/legacy to control all and legacy APIs respectively. For example, for turning off all api versions except v1beta3, pass --runtime-config=api/all=false,api/v1beta3=true.
runtime-config also supports 2 special keys: api/all and api/legacy to control all and legacy APIs respectively. For example, for turning off all api versions except v1, pass --runtime-config=api/all=false,api/v1=true.
### Switching your cluster's storage API version
### Switching your cluster's storage API version
...
@@ -31,7 +31,7 @@ You can use the kube-version-change utility to convert config files between diff
...
@@ -31,7 +31,7 @@ You can use the kube-version-change utility to convert config files between diff
This keeps new pods from landing on the node while you are trying to get them off.
This keeps new pods from landing on the node while you are trying to get them off.
1. Get the pods off the machine, via any of the following strategies:
1. Get the pods off the machine, via any of the following strategies:
1. wait for finite-duration pods to complete
1. wait for finite-duration pods to complete
...
@@ -53,7 +53,7 @@ If you want more control over the upgrading process, you may use the following w
...
@@ -53,7 +53,7 @@ If you want more control over the upgrading process, you may use the following w
1. for pods with no replication controller, you need to bring up a new copy of the pod, and assuming it is not part of a service, redirect clients to it.
1. for pods with no replication controller, you need to bring up a new copy of the pod, and assuming it is not part of a service, redirect clients to it.
@@ -4,7 +4,7 @@ All objects in the Kubernetes REST API are unambiguously identified by a Name an
...
@@ -4,7 +4,7 @@ All objects in the Kubernetes REST API are unambiguously identified by a Name an
For non-unique user-provided attributes, Kubernetes provides [labels](labels.md) and [annotations](annotations.md).
For non-unique user-provided attributes, Kubernetes provides [labels](labels.md) and [annotations](annotations.md).
## Names
## Names
Names are generally client-provided. Only one object of a given kind can have a given name at a time (i.e., they are spatially unique). But if you delete an object, you can make a new object with the same name. Names are the used to refer to an object in a resource URL, such as `/api/v1beta3/pods/some-name`. By convention, the names of Kubernetes resources should be up to maximum length of 253 characters and consist of lower case alphanumeric characters, `-`, and `.`, but certain resources have more specific restructions. See the [identifiers design doc](design/identifiers.md) for the precise syntax rules for names.
Names are generally client-provided. Only one object of a given kind can have a given name at a time (i.e., they are spatially unique). But if you delete an object, you can make a new object with the same name. Names are the used to refer to an object in a resource URL, such as `/api/v1/pods/some-name`. By convention, the names of Kubernetes resources should be up to maximum length of 253 characters and consist of lower case alphanumeric characters, `-`, and `.`, but certain resources have more specific restructions. See the [identifiers design doc](design/identifiers.md) for the precise syntax rules for names.
## UIDs
## UIDs
UID are generated by Kubernetes. Every object created over the whole lifetime of a Kubernetes cluster has a distinct UID (i.e., they are spatially and temporally unique).
UID are generated by Kubernetes. Every object created over the whole lifetime of a Kubernetes cluster has a distinct UID (i.e., they are spatially and temporally unique).
@@ -17,8 +17,8 @@ As of Kubernetes 0.11, when you create a cluster the console output reports the
...
@@ -17,8 +17,8 @@ As of Kubernetes 0.11, when you create a cluster the console output reports the
a URL for a [Kibana](http://www.elasticsearch.org/overview/kibana/) dashboard viewer for the logs that have been ingested
a URL for a [Kibana](http://www.elasticsearch.org/overview/kibana/) dashboard viewer for the logs that have been ingested
into Elasticsearch.
into Elasticsearch.
```
```
Elasticsearch is running at https://104.197.10.10/api/v1beta3/proxy/namespaces/default/services/elasticsearch-logging
Elasticsearch is running at https://104.197.10.10/api/v1/proxy/namespaces/default/services/elasticsearch-logging
Kibana is running at https://104.197.10.10/api/v1beta3/proxy/namespaces/default/services/kibana-logging
Kibana is running at https://104.197.10.10/api/v1/proxy/namespaces/default/services/kibana-logging
```
```
Visiting the Kibana dashboard URL in a browser should give a display like this:
Visiting the Kibana dashboard URL in a browser should give a display like this:


...
@@ -27,7 +27,7 @@ To learn how to query, filter etc. using Kibana you might like to look at this [
...
@@ -27,7 +27,7 @@ To learn how to query, filter etc. using Kibana you might like to look at this [
You can check to see if any logs are being ingested into Elasticsearch by curling against its URL. You will need to provide the username and password that was generated when your cluster was created. This can be found in the `kubernetes_auth` file for your cluster.
You can check to see if any logs are being ingested into Elasticsearch by curling against its URL. You will need to provide the username and password that was generated when your cluster was created. This can be found in the `kubernetes_auth` file for your cluster.
@@ -3,7 +3,7 @@ This document describes the current state of Volumes in kubernetes. Familiarity
...
@@ -3,7 +3,7 @@ This document describes the current state of Volumes in kubernetes. Familiarity
A Volume is a directory, possibly with some data in it, which is accessible to a Container. Kubernetes Volumes are similar to but not the same as [Docker Volumes](https://docs.docker.com/userguide/dockervolumes/).
A Volume is a directory, possibly with some data in it, which is accessible to a Container. Kubernetes Volumes are similar to but not the same as [Docker Volumes](https://docs.docker.com/userguide/dockervolumes/).
A Pod specifies which Volumes its containers need in its [spec.volumes](http://kubernetes.io/third_party/swagger-ui/#!/v1beta3/createPod) property.
A Pod specifies which Volumes its containers need in its [spec.volumes](http://kubernetes.io/third_party/swagger-ui/#!/v1/createPod) property.
A process in a Container sees a filesystem view composed from two sources: a single Docker image and zero or more Volumes. A [Docker image](https://docs.docker.com/userguide/dockerimages/) is at the root of the file hierarchy. Any Volumes are mounted at points on the Docker image; Volumes do not mount on other Volumes and do not have hard links to other Volumes. Each container in the Pod independently specifies where on its image to mount each Volume. This is specified in each container's VolumeMounts property.
A process in a Container sees a filesystem view composed from two sources: a single Docker image and zero or more Volumes. A [Docker image](https://docs.docker.com/userguide/dockerimages/) is at the root of the file hierarchy. Any Volumes are mounted at points on the Docker image; Volumes do not mount on other Volumes and do not have hard links to other Volumes. Each container in the Pod independently specifies where on its image to mount each Volume. This is specified in each container's VolumeMounts property.