2015-07-12 00:04:52 -04:00
<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->
<!-- BEGIN STRIP_FOR_RELEASE -->
2015-07-16 13:02:26 -04:00
< img src = "http://kubernetes.io/img/warning.png" alt = "WARNING"
width="25" height="25">
< img src = "http://kubernetes.io/img/warning.png" alt = "WARNING"
width="25" height="25">
< img src = "http://kubernetes.io/img/warning.png" alt = "WARNING"
width="25" height="25">
< img src = "http://kubernetes.io/img/warning.png" alt = "WARNING"
width="25" height="25">
< img src = "http://kubernetes.io/img/warning.png" alt = "WARNING"
width="25" height="25">
< h2 > PLEASE NOTE: This document applies to the HEAD of the source tree< / h2 >
If you are using a released version of Kubernetes, you should
refer to the docs that go with that version.
2015-12-14 13:37:38 -05:00
<!-- TAG RELEASE_LINK, added by the munger automatically -->
2015-07-16 13:02:26 -04:00
< strong >
2015-11-03 13:17:57 -05:00
The latest release of this document can be found
[here ](http://releases.k8s.io/release-1.1/docs/user-guide/quick-start.md ).
2015-07-16 13:02:26 -04:00
Documentation for other releases can be found at
[releases.k8s.io ](http://releases.k8s.io ).
< / strong >
--
2015-07-13 18:15:35 -04:00
2015-07-12 00:04:52 -04:00
<!-- END STRIP_FOR_RELEASE -->
<!-- END MUNGE: UNVERSIONED_WARNING -->
2015-07-17 18:35:41 -04:00
2015-07-10 14:22:56 -04:00
# Kubernetes User Guide: Managing Applications: Quick start
2015-07-14 02:40:25 -04:00
**Table of Contents**
<!-- BEGIN MUNGE: GENERATED_TOC -->
2015-07-17 12:20:19 -04:00
2015-07-16 20:56:56 -04:00
- [Kubernetes User Guide: Managing Applications: Quick start ](#kubernetes-user-guide-managing-applications-quick-start )
2015-07-14 02:40:25 -04:00
- [Launching a simple application ](#launching-a-simple-application )
- [Exposing your application to the Internet ](#exposing-your-application-to-the-internet )
- [Killing the application ](#killing-the-application )
2015-07-15 14:26:51 -04:00
- [What's next? ](#whats-next )
2015-07-14 02:40:25 -04:00
<!-- END MUNGE: GENERATED_TOC -->
2015-07-14 18:27:01 -04:00
This guide will help you get oriented to Kubernetes and running your first containers on the cluster. If you are already familiar with the docker-cli, you can also checkout the docker-cli to kubectl migration guide [here ](docker-cli-to-kubectl.md ).
2015-07-10 14:22:56 -04:00
## Launching a simple application
Once your application is packaged into a container and pushed to an image registry, you’ re ready to deploy it to Kubernetes.
2015-07-13 20:13:09 -04:00
For example, [nginx ](http://wiki.nginx.org/Main ) is a popular HTTP server, with a [pre-built container on Docker hub ](https://registry.hub.docker.com/_/nginx/ ). The [`kubectl run` ](kubectl/kubectl_run.md ) command below will create two nginx replicas, listening on port 80.
2015-07-10 14:22:56 -04:00
2015-07-18 20:18:40 -04:00
```console
2015-07-10 14:22:56 -04:00
$ kubectl run my-nginx --image=nginx --replicas=2 --port=80
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
my-nginx my-nginx nginx run=my-nginx 2
```
You can see that they are running by:
2015-07-16 22:01:02 -04:00
2015-07-18 20:18:40 -04:00
```console
2015-07-10 14:22:56 -04:00
$ kubectl get po
NAME READY STATUS RESTARTS AGE
my-nginx-l8n3i 1/1 Running 0 29m
my-nginx-q7jo3 1/1 Running 0 29m
```
Kubernetes will ensure that your application keeps running, by automatically restarting containers that fail, spreading containers across nodes, and recreating containers on new nodes when nodes fail.
2015-07-17 18:35:41 -04:00
2015-07-10 14:22:56 -04:00
## Exposing your application to the Internet
2015-07-17 18:35:41 -04:00
2015-07-10 14:22:56 -04:00
Through integration with some cloud providers (for example Google Compute Engine and AWS EC2), Kubernetes enables you to request that it provision a public IP address for your application. To do this run:
2015-07-18 20:18:40 -04:00
```console
2015-07-10 14:22:56 -04:00
$ kubectl expose rc my-nginx --port=80 --type=LoadBalancer
2015-10-26 20:47:18 -04:00
service "my-nginx" exposed
2015-07-10 14:22:56 -04:00
```
To find the public IP address assigned to your application, execute:
2015-07-18 20:18:40 -04:00
```console
2015-08-08 00:08:43 -04:00
$ kubectl get svc my-nginx
NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE
my-nginx 10.179.240.1 25.1.2.3 80/TCP run=nginx 8d
2015-07-10 14:22:56 -04:00
```
2015-08-08 00:08:43 -04:00
You may need to wait for a minute or two for the external ip address to be provisioned.
2015-07-16 05:03:32 -04:00
In order to access your nginx landing page, you also have to make sure that traffic from external IPs is allowed. Do this by opening a [firewall to allow traffic on port 80 ](services-firewalls.md ).
2015-07-10 14:22:56 -04:00
2016-02-12 10:05:22 -05:00
If you're running on AWS, Kubernetes creates an ELB for you. ELBs use host
names, not IPs, so you will have to do `kubectl describe svc my-nginx` and look
for the `LoadBalancer Ingress` host name. Traffic from external IPs is allowed
automatically.
2015-07-10 14:22:56 -04:00
## Killing the application
To kill the application and delete its containers and public IP address, do:
2015-07-18 20:18:40 -04:00
```console
2015-07-10 14:22:56 -04:00
$ kubectl delete rc my-nginx
replicationcontrollers/my-nginx
$ kubectl delete svc my-nginx
services/my-nginx
```
2015-07-14 02:40:25 -04:00
## What's next?
[Learn about how to configure common container parameters, such as commands and environment variables. ](configuring-containers.md )
2015-07-10 14:22:56 -04:00
2015-07-13 20:13:09 -04:00
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
2015-07-10 14:22:56 -04:00
[]()
2015-07-13 20:13:09 -04:00
<!-- END MUNGE: GENERATED_ANALYTICS -->