• 【k8s】Volume-nfs


    环境

    1. kubernetes 1.20.6
    2. Spring Boot 2.5.0-RC1

    目标

    nfs 是一种网络文件存储,可以不和节点绑定,也可以在 node 节点之外,只要网络可达就可以。

    示例

    设置 nfs 环境

    每个 node 上都需要安装 nfs-utils 工具包 yum install -y nfs-utils

    以下的操作都在 master(192.168.56.101) 节点上操作

    nfs 配置文件

    [root@master ~]# cat /etc/exports.d/k8s.exports
    /opt/nfs    *(rw)
    

    启动 nfs 服务

    [root@master ~]# systemctl start nfs-server
    [root@master ~]# systemctl status nfs-server
    ● nfs-server.service - NFS server and services
       Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
      Drop-In: /run/systemd/generator/nfs-server.service.d
               └─order-with-mounts.conf
       Active: active (exited) since Tue 2021-05-18 23:04:29 HKT; 7s ago
      Process: 9589 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
      Process: 9574 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
      Process: 9573 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
     Main PID: 9574 (code=exited, status=0/SUCCESS)
        Tasks: 0
       Memory: 0B
       CGroup: /system.slice/nfs-server.service
    
    May 18 23:04:28 master systemd[1]: Starting NFS server and services...
    May 18 23:04:29 master systemd[1]: Started NFS server and services.
    

    Pod.yaml

    apiVersion: v1
    kind: Pod
    metadata:
      name: spring-k8s
    spec:
      containers:
        - name: spring-k8s
          image: jiangbo920827/spring-k8s:liveness
          volumeMounts:
            - mountPath: /opt/volume/nfs
              name: v1
          ports:
            - containerPort: 8080
      volumes:
        - name: v1
          nfs:
            path: /opt/nfs
            server: 192.168.56.101
    

    查看

    [root@master nfs]# kubectl get pod -o wide
    NAME         READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES
    spring-k8s   1/1     Running   0          103s   10.244.1.14   node1   <none>           <none>
    [root@master nfs]# kubectl exec spring-k8s -- sh -c "echo 'jiangbo'>/opt/volume/nfs/name.txt"
    [root@master nfs]# cat /opt/nfs/name.txt
    jiangbo
    

    容器被调度到了 node1 节点,但是还是可以向 master 节点的 nfs 目录写入。

    总结

    nfs 可以定义一个网络文件存储,无论 Pod 被调度到哪个节点,都可以进行读写。

    附录

  • 相关阅读:
    两个链表的第一个公共节点(Python and C++解法)
    第一个只出现一次的字符(Python and C++解法)
    丑数(Python and C++解法)
    最长不含重复字符的子字符串(Python and C++解法)
    礼物的最大值(Python and C++解法)
    把数字翻译成字符串(Python and C++解法)
    连续子数组的最大和(Python and C++解法)
    最小的k个数(Python and C++解法)
    数组中出现次数超过一半的数字(Python and C++解法)
    字符串的排列(Python and C++解法)
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14956966.html
Copyright © 2020-2023  润新知