Merge branch 'master' into patch-1
This commit is contained in:
+3
-3
@@ -305,7 +305,7 @@ toc:
|
|||||||
|
|
||||||
- title: Administering Federation
|
- title: Administering Federation
|
||||||
section:
|
section:
|
||||||
- title: Using `kubefed`
|
- title: Using kubefed
|
||||||
path: /docs/admin/federation/kubfed/
|
path: /docs/admin/federation/kubefed/
|
||||||
- title: Using `federation-up` and `deploy.sh`
|
- title: Using federation-up and deploy.sh
|
||||||
path: /docs/admin/federation/
|
path: /docs/admin/federation/
|
||||||
|
|||||||
@@ -3,6 +3,10 @@ assignees:
|
|||||||
- madhusudancs
|
- madhusudancs
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
* TOC
|
||||||
|
{:toc}
|
||||||
|
|
||||||
Kubernetes version 1.5 includes a new command line tool called
|
Kubernetes version 1.5 includes a new command line tool called
|
||||||
`kubefed` to help you administrate your federated clusters.
|
`kubefed` to help you administrate your federated clusters.
|
||||||
`kubefed` helps you to deploy a new Kubernetes cluster federation
|
`kubefed` helps you to deploy a new Kubernetes cluster federation
|
||||||
@@ -14,11 +18,6 @@ using `kubefed`.
|
|||||||
|
|
||||||
> Note: `kubefed` is an alpha feature in Kubernetes 1.5.
|
> Note: `kubefed` is an alpha feature in Kubernetes 1.5.
|
||||||
|
|
||||||
|
|
||||||
* TOC
|
|
||||||
{:toc}
|
|
||||||
|
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
This guide assumes that you have a running Kubernetes cluster. Please
|
This guide assumes that you have a running Kubernetes cluster. Please
|
||||||
@@ -61,8 +60,8 @@ The output should contain an entry corresponding to your host cluster,
|
|||||||
similar to the following:
|
similar to the following:
|
||||||
|
|
||||||
```
|
```
|
||||||
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
|
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
|
||||||
gke_myproject_asia-east1-b_gce-asia-east1 gke_myproject_asia-east1-b_gce-asia-east1 gke_myproject_asia-east1-b_gce-asia-east1
|
gke_myproject_asia-east1-b_gce-asia-east1 gke_myproject_asia-east1-b_gce-asia-east1 gke_myproject_asia-east1-b_gce-asia-east1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -308,11 +308,11 @@ Minikube uses [libmachine](https://github.com/docker/machine/tree/master/libmach
|
|||||||
For more information about minikube, see the [proposal](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/local-cluster-ux.md).
|
For more information about minikube, see the [proposal](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/local-cluster-ux.md).
|
||||||
|
|
||||||
## Additional Links:
|
## Additional Links:
|
||||||
* **Goals and Non-Goals**: For the goals and non-goals of the minikube project, please see our [roadmap](./ROADMAP.md).
|
* **Goals and Non-Goals**: For the goals and non-goals of the minikube project, please see our [roadmap](https://github.com/kubernetes/minikube/blob/master/ROADMAP.md).
|
||||||
* **Development Guide**: See [CONTRIBUTING.md](./CONTRIBUTING.md) for an overview of how to send pull requests.
|
* **Development Guide**: See [CONTRIBUTING.md](https://github.com/kubernetes/minikube/blob/master/CONTRIBUTING.md) for an overview of how to send pull requests.
|
||||||
* **Building Minikube**: For instructions on how to build/test minikube from source, see the [build guide](./BUILD_GUIDE.md)
|
* **Building Minikube**: For instructions on how to build/test minikube from source, see the [build guide](https://github.com/kubernetes/minikube/blob/master/BUILD_GUIDE.md)
|
||||||
* **Adding a New Dependency**: For instructions on how to add a new dependency to minikube see the [adding dependencies guide](./ADD_DEPENDENCY.md)
|
* **Adding a New Dependency**: For instructions on how to add a new dependency to minikube see the [adding dependencies guide](https://github.com/kubernetes/minikube/blob/master/ADD_DEPENDENCY.md)
|
||||||
* **Updating Kubernetes**: For instructions on how to add a new dependency to minikube see the [updating kubernetes guide](./UPDATE_KUBERNETES.md)
|
* **Updating Kubernetes**: For instructions on how to add a new dependency to minikube see the [updating kubernetes guide](https://github.com/kubernetes/minikube/blob/master/UPDATE_KUBERNETES.md)
|
||||||
|
|
||||||
## Community
|
## Community
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,12 @@ assignees:
|
|||||||
|
|
||||||
[`kubectl`](/docs/user-guide/kubectl/) is the command line tool for Kubernetes. It controls the Kubernetes cluster manager.
|
[`kubectl`](/docs/user-guide/kubectl/) is the command line tool for Kubernetes. It controls the Kubernetes cluster manager.
|
||||||
|
|
||||||
|
### Kubefed
|
||||||
|
|
||||||
|
[`kubefed`](/docs/admin/federation/kubefed/) is the command line tool
|
||||||
|
to help you administrate your federated clusters.
|
||||||
|
|
||||||
|
|
||||||
### Dashboard
|
### Dashboard
|
||||||
|
|
||||||
[Dashboard](/docs/user-guide/ui/), the web-based user interface of Kubernetes, allows you to deploy containerized applications
|
[Dashboard](/docs/user-guide/ui/), the web-based user interface of Kubernetes, allows you to deploy containerized applications
|
||||||
|
|||||||
@@ -395,6 +395,75 @@ Events:
|
|||||||
You can set `.spec.revisionHistoryLimit` field to specify how much revision history of this deployment you want to keep. By default,
|
You can set `.spec.revisionHistoryLimit` field to specify how much revision history of this deployment you want to keep. By default,
|
||||||
all revision history will be kept; explicitly setting this field to `0` disallows a deployment being rolled back.
|
all revision history will be kept; explicitly setting this field to `0` disallows a deployment being rolled back.
|
||||||
|
|
||||||
|
## Scaling a Deployment
|
||||||
|
|
||||||
|
You can scale a Deployment by using the following command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ kubectl scale deployment nginx-deployment --replicas 10
|
||||||
|
deployment "nginx-deployment" scaled
|
||||||
|
```
|
||||||
|
|
||||||
|
Assuming [horizontal pod autoscaling](/docs/user-guide/horizontal-pod-autoscaling/walkthrough.md) is enabled
|
||||||
|
in your cluster, you can setup an autoscaler for your Deployment and choose the minimum and maximum number of
|
||||||
|
Pods you want to run based on the CPU utilization of your existing Pods.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
|
||||||
|
deployment "nginx-deployment" autoscaled
|
||||||
|
```
|
||||||
|
|
||||||
|
RollingUpdate Deployments support running multitple versions of an application at the same time. When you
|
||||||
|
or an autoscaler scales a RollingUpdate Deployment that is in the middle of a rollout (either in progress
|
||||||
|
or paused), then the Deployment controller will balance the additional replicas in the existing active
|
||||||
|
ReplicaSets (ReplicaSets with Pods) in order to mitigate risk. This is called *proportional scaling*.
|
||||||
|
|
||||||
|
For example, you are running a Deployment with 10 replicas, [maxSurge](#max-surge)=3, and [maxUnavailable](#max-unavailable)=2.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ kubectl get deploy
|
||||||
|
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
|
||||||
|
nginx-deployment 10 10 10 10 50s
|
||||||
|
```
|
||||||
|
|
||||||
|
You update to a new image which happens to be unresolvable from inside the cluster.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ kubectl set image deploy/nginx-deployment nginx=nginx:sometag
|
||||||
|
deployment "nginx-deployment" image updated
|
||||||
|
```
|
||||||
|
|
||||||
|
The image update starts a new rollout with ReplicaSet nginx-deployment-1989198191 but it's blocked due to the
|
||||||
|
maxUnavailable requirement that we mentioned above.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ kubectl get rs
|
||||||
|
NAME DESIRED CURRENT READY AGE
|
||||||
|
nginx-deployment-1989198191 5 5 0 9s
|
||||||
|
nginx-deployment-618515232 8 8 8 1m
|
||||||
|
```
|
||||||
|
|
||||||
|
Then a new scaling request for the Deployment comes along. The autoscaler increments the Deployment replicas
|
||||||
|
to 15. The Deployment controller needs to decide where to add these new 5 replicas. If we weren't using
|
||||||
|
proportional scaling, all 5 of them would be added in the new ReplicaSet. With proportional scaling, we
|
||||||
|
spread the additional replicas across all ReplicaSets. Bigger proportions go to the ReplicaSets with the
|
||||||
|
most replicas and lower proportions go to ReplicaSets with less replicas. Any leftovers are added to the
|
||||||
|
ReplicaSet with the most replicas. ReplicaSets with zero replicas are not scaled up.
|
||||||
|
|
||||||
|
In our example above, 3 replicas will be added to the old ReplicaSet and 2 replicas will be added to the
|
||||||
|
new ReplicaSet. The rollout process should eventually move all replicas to the new ReplicaSet, assuming
|
||||||
|
the new replicas become healthy.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ kubectl get deploy
|
||||||
|
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
|
||||||
|
nginx-deployment 15 18 7 8 7m
|
||||||
|
$ kubectl get rs
|
||||||
|
NAME DESIRED CURRENT READY AGE
|
||||||
|
nginx-deployment-1989198191 7 7 0 7m
|
||||||
|
nginx-deployment-618515232 11 11 11 7m
|
||||||
|
```
|
||||||
|
|
||||||
## Pausing and Resuming a Deployment
|
## Pausing and Resuming a Deployment
|
||||||
|
|
||||||
You can also pause a Deployment mid-way and then resume it. A use case is to support canary deployment.
|
You can also pause a Deployment mid-way and then resume it. A use case is to support canary deployment.
|
||||||
|
|||||||
Reference in New Issue
Block a user