1、K8S高可用集群的搭建方法
如何搭建Kubernetes高可用参见本人的《在ubuntu上通过kubeadm部署K8S(v1.13.4)高可用集群》一文。搭建好的集群类似如下:
2、NFS 服务器的安装配置
NFS是一种网络文件存储系统,该技术在Linux系统下通过配置实现,私有云K8S集群要对容器存储持久化,这是一种相对配置简单的存储技术。NFS服务器的安装配置方法可参考本人的《ubuntu 18.04下 NFS 服务安装和配置方法》一文。本文后续介绍功能采用以下节点作演示:NFS服务器ip为192.168.232.105,属于k8s的ubuntu-k8s-worker2节点;NFS客户端ip为192.168.232.101,属于k8s的ubuntu-k8s-master1节点。
3、动态创建 PV 方式使用 NFS
直接挂载 NFS和PV & PVC 方式使用 NFS可以参考csdn上哎_小羊_168的博文《
Kubernetes 集群使用 NFS 网络文件存储》一文,详细地址为:https://blog.youkuaiyun.com/aixiaoyang168/article/details/83988253
以下只补充较原文更简便一些的动态创建PV方法,下面示例中namespace名是health-report,你可以根据自己的实际情况进行修改(如default)。
1)在NFS服务器上创建数据存储目录
在NFS服务器上(ubuntu-k8s-worker2)创建/data/k8s
$ mkdir -p /data/k8s
# 修改配置
$ vim /etc/exports
/data/k8s *(rw,sync,insecure,no_subtree_check,no_root_squash)
# 使配置生效
$ exportfs -r
# 服务端查看下是否生效
$ showmount -e localhost
Export list for localhost:
/data/k8s *
/data/share 192.168.232.0/24
2)创建StorageClass
创建NFS-Client Provisioner 的yaml配置文件,注意修改其中NFS_SERVER和NFS_PATH值。下面示例中namespace名是health-report,你可以根据自己的实际情况进行修改(如default)。
$ vim nfs-client.yaml
kind: ServiceAccount
apiVersion: v1
metadata:
name: nfs-client-provisioner
namespace: health-report
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: nfs-client-provisioner-runner
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]