Pod 的简单使用

在 Kubernetes 系统中对长时间运行容器的要求是:其主程序需要一直在前台执行。

对于无法改造为前台执行的应用,也可以使用开源工具 Supervisor 辅助进行前台运行的功能。Supervisor 提供了一种可以同时启动多个后台应用,并保持 Supervisor 自身在前台执行的机制,可以满足 Kubernetes 对容器的启动要求。

关于 Supervisor 的安装和使用,请参考官网 http://supervisord.org 的文档说明。

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

单个容器

simple-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80
$ kubectl create -f simple-pod.yaml 
pod/nginx created

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

多个容器

web-redis-pod.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"

属于同一个 Pod 的多个容器应用之间相互访问时仅需要通过 localhost 就可以通信,使得这一组容器被“绑定”在了一个环境中。

最后更新于