From 965dfd948ad428253f91d3b128ed20a974af5893 Mon Sep 17 00:00:00 2001 From: Steve Perry Date: Wed, 3 May 2017 18:10:06 -0700 Subject: [PATCH] Remove ReplicationController tutorial. (#3628) --- _data/tutorials.yml | 1 - .../run-stateless-application-deployment.md | 9 + ...run-stateless-ap-replication-controller.md | 264 ------------------ 3 files changed, 9 insertions(+), 265 deletions(-) delete mode 100644 docs/tutorials/stateless-application/run-stateless-ap-replication-controller.md diff --git a/_data/tutorials.yml b/_data/tutorials.yml index e6b6dc659b..8818814084 100644 --- a/_data/tutorials.yml +++ b/_data/tutorials.yml @@ -42,7 +42,6 @@ toc: section: - docs/tutorials/stateless-application/expose-external-ip-address-service.md - docs/tutorials/stateless-application/expose-external-ip-address.md - - docs/tutorials/stateless-application/run-stateless-ap-replication-controller.md - title: Stateful Applications section: - docs/tutorials/stateful-application/basic-stateful-set.md diff --git a/docs/tasks/run-application/run-stateless-application-deployment.md b/docs/tasks/run-application/run-stateless-application-deployment.md index 27fe2225f5..655cb82c58 100644 --- a/docs/tasks/run-application/run-stateless-application-deployment.md +++ b/docs/tasks/run-application/run-stateless-application-deployment.md @@ -9,6 +9,8 @@ redirect_from: - "/docs/user-guide/deploying-applications.html" - "/docs/tutorials/stateless-application/run-stateless-application-deployment/" - "/docs/tutorials/stateless-application/run-stateless-application-deployment.html" +- "/docs/tutorials/stateless-application/run-stateless-ap-replication-controller/" +- "/docs/tutorials/stateless-application/run-stateless-ap-replication-controller.html" --- {% capture overview %} @@ -130,6 +132,13 @@ Delete the deployment by name: kubectl delete deployment nginx-deployment +## ReplicationControllers -- the Old Way + +The preferred way to create a replicated application is to use a Deployment, +which in turn uses a ReplicaSet. Before the Deployment and ReplicaSet were +added to Kubernetes, replicated applicatios were configured by using a +[ReplicationController](/docs/concepts/workloads/controllers/replicationcontroller/). + {% endcapture %} diff --git a/docs/tutorials/stateless-application/run-stateless-ap-replication-controller.md b/docs/tutorials/stateless-application/run-stateless-ap-replication-controller.md deleted file mode 100644 index a20adf6513..0000000000 --- a/docs/tutorials/stateless-application/run-stateless-ap-replication-controller.md +++ /dev/null @@ -1,264 +0,0 @@ ---- -assignees: -- bprashanth -title: Run Stateless AP Replication Controller -redirect_from: -- "/docs/user-guide/replication-controller/operations/" -- "/docs/user-guide/replication-controller/operations.html" -- "/docs/user-guide/resizing-a-replication-controller/" -- "/docs/user-guide/resizing-a-replication-controller.html" ---- - -* TOC -{:toc} - -A replication controller ensures that a specified number of pod "replicas" are -running at any one time. If there are too many, it will kill some. If there are -too few, it will start more. - -## Creating a replication controller - -Replication controllers are created with `kubectl create`: - -```shell -$ kubectl create -f FILE -``` - -Where: - -* `-f FILE` or `--filename FILE` is a relative path to a - [configuration file](#replication_controller_configuration_file) in - either JSON or YAML format. - -You can use the [sample file](#sample_file) below to try a create request. - -A successful create request returns the name of the replication controller. To -view more details about the controller, see -[Viewing replication controllers](#viewing_replication_controllers) below. - -### Replication controller configuration file - -When creating a replication controller, you must point to a configuration file -as the value of the `-f` flag. The configuration -file can be formatted as YAML or as JSON, and supports the following fields: - -```json -{ - "apiVersion": "v1", - "kind": "ReplicationController", - "metadata": { - "name": "", - "labels": "", - "namespace": "" - }, - "spec": { - "replicas": int, - "selector": { - "":"" - }, - "template": { - "metadata": { - "labels": { - "":"" - } - }, - "spec": { - // See 'The spec schema' below - } - } - } -} -``` - -Required fields are: - -* `kind`: Always `ReplicationController`. -* `apiVersion`: Currently `v1`. -* `metadata`: An object containing: - * `name`: Required if `generateName` is not specified. The name of this - replication controller. It must be an - [RFC1035](https://www.ietf.org/rfc/rfc1035.txt) compatible value and be - unique within the namespace. - * `labels`: Optional. Labels are arbitrary key:value pairs that can be used - for grouping and targeting by other resources and services. - * `generateName`: Required if `name` is not set. A prefix to use to generate - a unique name. Has the same validation rules as `name`. - * `namespace`: Optional. The namespace of the replication controller. - * `annotations`: Optional. A map of string keys and values that can be used - by external tooling to store and retrieve arbitrary metadata about - objects. -* `spec`: The configuration for this replication controller. It must - contain: - * `replicas`: The number of pods to create and maintain. - * `selector`: A map of key:value pairs assigned to the set of pods that - this replication controller is responsible for managing. **This must** - **match the key:value pairs in the `template`'s `labels` field**. - * `template` contains: - * A `metadata` object with `labels` for the pod. - * The [`spec` schema](#the_spec_schema) that defines the pod - configuration. - -### The `spec` schema - -The `spec` schema (that is a child of `template`) is described in the locations -below: - -* The [`spec` schema](/docs/user-guide/pods/multi-container/#the_spec_schema) - section of the Creating Multi-Container Pods page covers required and - frequently-used fields. -* The entire `spec` schema is documented in the - [Kubernetes API reference](/docs/api-reference/v1.6/#podspec-v1-core). - -### Sample file - -The following sample file creates 2 pods, each containing a single container -using the `redis` image. Port 80 on each container is opened. The replication -controller is tagged with the `serving` label. The pods are given the label -`frontend` and the `selector` is set to `frontend`, to indicate that the -controller should manage pods with the `frontend` label. - -```json -{ - "kind": "ReplicationController", - "apiVersion": "v1", - "metadata": { - "name": "frontend-controller", - "labels": { - "state": "serving" - } - }, - "spec": { - "replicas": 2, - "selector": { - "app": "frontend" - }, - "template": { - "metadata": { - "labels": { - "app": "frontend" - } - }, - "spec": { - "volumes": null, - "containers": [ - { - "name": "php-redis", - "image": "redis", - "ports": [ - { - "containerPort": 80, - "protocol": "TCP" - } - ], - "imagePullPolicy": "IfNotPresent" - } - ], - "restartPolicy": "Always", - "dnsPolicy": "ClusterFirst" - } - } - } -} -``` - -## Updating replication controller pods - -See [Rolling Updates](/docs/tasks/run-application/rolling-update-replication-controller/). - -## Resizing a replication controller - -To increase or decrease the number of pods under a replication controller's -control, use the `kubectl scale` command: - - $ kubectl scale rc NAME --replicas=COUNT \ - [--current-replicas=COUNT] \ - [--resource-version=VERSION] - -Tip: You can use the `rc` alias in your commands in place of -`replicationcontroller`. - -Required fields are: - -* `NAME`: The name of the replication controller to update. -* `--replicas=COUNT`: The desired number of replicas. - -Optional fields are: - -* `--current-replicas=COUNT`: A precondition for current size. If specified, - the resize will only take place if the current number of replicas matches - this value. -* `--resource-version=VERSION`: A precondition for resource version. If - specified, the resize will only take place if the current replication - controller version matches this value. Versions are specified in the - `labels` field of the replication controller's configuration file, as a - key:value pair with a key of `version`. For example, - `--resource-version test` matches: - - "labels": { - "version": "test" - } - -## Viewing replication controllers - -To list replication controllers on a cluster, use the `kubectl get` command: - -```shell -$ kubectl get rc -``` - -A successful get command returns all replication controllers on the cluster in -the specified or default namespace. For example: - -```shell -NAME DESIRED CURRENT READY AGE -frontend 2 2 2 1h -``` - -You can also use `kubectl get rc NAME` to return information about a specific -replication controller. - -To view detailed information about a specific replication controller, use the -`kubectl describe` command: - -```shell -$ kubectl describe rc NAME -``` - -A successful describe request returns details about the replication controller -including number and status of pods managed, and recent events: - -```conf -Name: frontend -Namespace: default -Image(s): gcr.io/google_samples/gb-frontend:v3 -Selector: name=frontend -Labels: name=frontend -Replicas: 2 current / 2 desired -Pods Status: 2 Running / 0 Waiting / 0 Succeeded / 0 Failed -No volumes. -Events: - FirstSeen LastSeen Count From SubobjectPath Reason Message - Fri, 06 Nov 2015 16:52:50 -0800 Fri, 06 Nov 2015 16:52:50 -0800 1 {replication-controller } SuccessfulCreate Created pod: frontend-gyx2h - Fri, 06 Nov 2015 16:52:50 -0800 Fri, 06 Nov 2015 16:52:50 -0800 1 {replication-controller } SuccessfulCreate Created pod: frontend-vc9w4 -``` - -## Deleting replication controllers - -To delete a replication controller as well as the pods that it controls, use -`kubectl delete`: - -```shell -$ kubectl delete rc NAME -``` - -By default, `kubectl delete rc` will resize the controller to zero (effectively -deleting all pods) before deleting it. - -To delete a replication controller without deleting its pods, use -`kubectl delete` and specify `--cascade=false`: - -```shell -$ kubectl delete rc NAME --cascade=false -``` - -A successful delete request returns the name of the deleted resource.