美文网首页Kubernetes
Kubernetes 配置Pod和容器(六)使用卷配置Pod存储

Kubernetes 配置Pod和容器(六)使用卷配置Pod存储

作者: YiQinGuo | 来源:发表于2017-06-01 16:16 被阅读873次

    这个章节展示了如何使用卷配置pod存储。

    容器文件系统只要容器存在才能生效,所以当一个容器终端并重新启动时对于文件系统所做的修改将会丢失。对于单独容器的一致性存储可以使用volume。这对于有状态应用尤为重要,例如key-value存储和数据库。例如redis是一个key-value的内存存储。

    给pod配置卷

    在本次实验,新建一个运行一个容器的pod。这个pod有一个类型为empytDir的卷,持续pod的整个生命周期,即使是容器终端并重启。这里是这个pod的配置文件:

    apiVersion: v1
    kind: Pod
    metadata:
      name: redis
    spec:
      containers:
      - name: redis
        image: redis
        volumeMounts:
        - name: redis-storage
          mountPath: /data/redis
      volumes:
      - name: redis-storage
        emptyDir: {}
    

    1.新建pod:

     kubectl create -f http://k8s.io/docs/tasks/configure-pod-container/pod-redis.yaml
    

    2.验证pod的容器是否运行,并查看pod的改变:

     kubectl get --watch pod redis
    

    输出大概是这样子:

    NAME      READY     STATUS    RESTARTS   AGE
     redis     1/1       Running   0          13s
    

    3.在别的终端,使用shell进入运行的容器内部:

    kubectl exec -it redis -- /bin/bash
    

    4.在shell里进入/data/redis目录里面,并新建一个文件:

    root@redis:/data/redis# echo Hello > test-file
    

    5.在shell里查看运行的进程列表:

    root@redis:/data/redis# ps aux
    

    输出类似于下面:

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
     redis        1  0.1  0.1  33308  3828 ?        Ssl  00:46   0:00 redis-server *:6379
     root        12  0.0  0.0  20228  3020 ?        Ss   00:47   0:00 /bin/bash
     root        15  0.0  0.0  17500  2072 ?        R+   00:48   0:00 ps aux
    

    6.在shell里杀掉redis进程:

    root@redis:/data/redis# kill <pid>
    

    pid是redis的进程id。

    7.在原来的终端查看redis pod的变化。最后你可以看到类似于下面的内容:

    NAME      READY     STATUS     RESTARTS   AGE
     redis     1/1       Running    0          13s
     redis     0/1       Completed  0         6m
     redis     1/1       Running    1         6m
    

    在此刻,容器中断并重启。这是因为redis pod的重启策略(restartPolicy)是Always。

    1.使用shell进入重新启动的容器:

    kubectl exec -it redis -- /bin/bash
    

    2.进入/data/redis目录并且看到test-file还在这里。

    相关文章

      网友评论

        本文标题:Kubernetes 配置Pod和容器(六)使用卷配置Pod存储

        本文链接:https://www.haomeiwen.com/subject/tbsefxtx.html