3.1 KiB
| assignees | |
|---|---|
|
- TOC {:toc}
A pod is a group of containers that are scheduled onto the same host. Pods serve as units of scheduling, deployment, and horizontal scaling/replication. Pods share fate, and share some resources, such as storage volumes and IP addresses.
Creating a pod
Single-container pods can be created with the run command. The
pod's properties are specified with flags on the command line.
The run command creates a Deployment to monitor the pod(s).
The Deployment watches for failed pods and will start up new pods as required
to maintain the specified number.
Note: If you don't want a Deployment to monitor your pod (e.g. your pod
is writing non-persistent data which won't survive a restart, or your pod is
intended to be very short-lived), you can
create a pod directly with the create command.
To create a pod using the run command:
$ kubectl run NAME
--image=image
[--port=port]
[--replicas=replicas]
[--labels=key=value,key=value,...]
Where:
-
kubectl runcreates 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/v1to create replication controllers. Seekubectl runfor more details. -
NAME(required) is the name of the container to create. This value is also applied as the name of the Deployment, and as the prefix of the pod name. For example:$ kubectl run example --image=nginx deployment "example" created $ kubectl get pods -l run=example NAME READY STATUS RESTARTS AGE example-1934187764-scau1 1/1 Running 0 13s -
--image=IMAGE(required) is the Docker container image to use for this container. -
--port=PORTis the port to expose on the container. -
--replicas=NUMis the number of replicated pods to create. If not specified, one pod will be created. -
--labels=key=valuespecifies one or more labels to attach to the pod. In addition to any labels specified here,runattaches a label of the formatrun=NAME. This is used by the Deployment to target the pods created by the command.
There are additional flags that can be specified. For a complete list, run:
$ kubectl run --help
Viewing a pod
{% include_relative _viewing-a-pod.md %}
Deleting a pod
If your pod was created using the run command, kubernetes creates a
Deployment
to manage the pod. Pods managed by a Deployment are rescheduled if
they go away, including being deleted by kubectl delete pod. To permanently
delete the pod, delete its Deployment.
First, find the Deployment's name:
$ kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
example 1 1 1 1 1m
Then, delete the Deployment:
$ kubectl delete deployment DEPLOYMENT_NAME