1、安装nfs服务。直接给命令
yum install nfs-utils
vim /etc/exports
/data/k8s/ 172.16.1.0/24(sync,rw,no_root_squash)
systemctl start nfs; systemctl start rpcbind
systemctl enable nfs
测试:
yum install nfs-utils
showmount -e 172.16.1.131
2、nfs 可以直接作为存储卷使用,下面是一个生产环境部署的YAML配置文件。在此示例中,redis在容器中的持久化数据保存在/data目录下;存储卷使用nfs,nfs的服务地址为:192.168.8.150,存储路径为:/k8s-nfs/redis/data。容器通过volumeMounts.name的值确定所使用的存储卷。生产中一般挂载日志以及一些永久存储的文件使用
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: redis
spec:
selector:
matchLabels:
app: redis
revisionHistoryLimit: 2
template:
metadata:
labels:
app: redis
spec:
containers:
- image: redis
name: redis
imagePullPolicy: IfNotPresent
ports:
- containerPort: 6379
name: redis6379
env:
- name: ALLOW\_EMPTY\_PASSWORD
value: "yes"
- name: REDIS\_PASSWORD
value: "redis"
volumeMounts:
- name: redis-persistent-storage
mountPath: /data
volumes:
- name: redis-persistent-storage
nfs:
path: /data/k8s
server: 172.16.1.131
3、nfs作为在Kubernetes当前版本的中,可以创建类型为nfs的持久化存储卷,用于为PersistentVolumClaim提供存储卷。在下面的PersistenVolume YAML配置文件中,定义了一个名为nfs-pv的持久化存储卷,此存储卷提供了5G的存储空间,只能由一个PersistentVolumClaim进行可读可写操作。此持久化存储卷使用的nfs服务器地址为192.168.5.150,存储的路径为/tmp。
这里简单提供下使用方法。具体可以查看我的博客中动态pv和静态PV的区别和使用
[root@VM_0_48_centos prometheus]# cat mypv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv001
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
nfs:
path: /data/k8s
server: 172.19.0.14
[root@VM_0_48_centos prometheus]# cat mypvc.yaml ###会根据大小和类型自动匹配到上面的PV
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
namespace: kube-system
name: prometheus-claim
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
[root@VM_0_48_centos prometheus]# kubectl get pv,pvc -n kube-system
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pv001 10Gi RWX Retain Bound kube-system/prometheus-claim 17m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/prometheus-claim Bound pv001 10Gi RWX
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: prometheus
namespace``: kube-system
labels:
k8s-app: prometheus
kubernetes.io/cluster-service:
"true"
addonmanager.kubernetes.io/mode: Reconcile
version: v2.2.1
spec:
serviceName:
"prometheus"
replicas: 1
podManagementPolicy:
"Parallel"
updateStrategy:
type:
"RollingUpdate"
selector:
matchLabels:
k8s-app: prometheus
template:
metadata:
labels:
k8s-app: prometheus
annotations:
scheduler.alpha.kubernetes.io/critical-pod:
''
spec:
priorityClassName: system-cluster-critical
serviceAccountName: prometheus
initContainers:
- name:
"init-chown-data"
image:
"busybox:latest"
imagePullPolicy:
"IfNotPresent"
command: [``"chown"``,
"-R"``,
"65534:65534"``,
"/data"``]
volumeMounts:
- name: prometheus-data
mountPath: /data
subPath:
""
containers:
- name: prometheus-server-configmap-reload
image:
"jimmidyson/configmap-reload:v0.1"
imagePullPolicy:
"IfNotPresent"
args:
- --volume-dir=/etc/config
- --webhook-url=http:``//localhost:9090/-/reload
volumeMounts:
- name: config-volume
mountPath: /etc/config
readOnly:
true
resources:
limits:
cpu: 10m
memory: 10Mi
requests:
cpu: 10m
memory: 10Mi
- name: prometheus-server
image:
"prom/prometheus:v2.2.1"
imagePullPolicy:
"IfNotPresent"
args:
- --config.file=/etc/config/prometheus.yml
- --storage.tsdb.path=/data
- --web.console.libraries=/etc/prometheus/console_libraries
- --web.console.templates=/etc/prometheus/consoles
- --web.enable-lifecycle
ports:
- containerPort: 9090
readinessProbe:
httpGet:
path: /-/ready
port: 9090
initialDelaySeconds: 30
timeoutSeconds: 30
livenessProbe:
httpGet:
path: /-/healthy
port: 9090
initialDelaySeconds: 30
timeoutSeconds: 30
# based on 10 running nodes with 30 pods each
resources:
limits:
cpu: 200m
memory: 1000Mi
requests:
cpu: 200m
memory: 1000Mi
volumeMounts:
- name: config-volume
mountPath: /etc/config
- name: prometheus-data
mountPath: /data
subPath:
""
terminationGracePeriodSeconds: 300
volumes:
- name: config-volume
configMap:
name: prometheus-config
- name: prometheus-data
persistentVolumeClaim: #申明使用静态PVC永久化存储
claimName: prometheus-claim
手机扫一扫
移动阅读更方便
你可能感兴趣的文章