# Pod 的简单使用

> 在 Kubernetes 系统中对**长时间运行容器**的要求是：<mark style="color:orange;">**其主程序需要一直在前台执行。**</mark>
>
> 对于无法改造为前台执行的应用，也可以使用开源工具 **Supervisor** 辅助进行前台运行的功能。Supervisor 提供了一种可以同时启动多个后台应用，并保持 Supervisor 自身在前台执行的机制，可以满足 Kubernetes 对容器的启动要求。
>
> 关于 Supervisor 的安装和使用，请参考官网 <http://supervisord.org> 的文档说明。

**Pod 可以由 1 个或多个容器组合而成。**

## **单个容器**

{% code title="simple-pod.yaml" %}

```yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80
```

{% endcode %}

```properties
$ kubectl create -f simple-pod.yaml 
pod/nginx created

$ kubectl get pods nginx
NAME    READY   STATUS             RESTARTS   AGE
nginx   0/1     ImagePullBackOff   0          35s
```

## **多个容器**

{% code title="web-redis-pod.yaml" %}

```yaml
apiVersion: v1
kind: Pod
metadata:
  name: web-redis-pod
  labels:
    name: web-redis-pod
spec:
  containers:
  - name: web
    image: web-redis:1.0
    ports:
      - containerPort: 8890
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
  - name: redis
    image: redis:7.0.12
    ports:
      - containerPort: 6379
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
```

{% endcode %}

{% hint style="info" %}

#### <mark style="color:blue;">**属于同一个 Pod 的多个容器应用之间相互访问时仅需要通过 localhost 就可以通信**</mark>，使得这一组容器被“绑定”在了一个环境中。

{% endhint %}
