#kubernetes #raspberry-pi #persistent-volumes #persistent-volume-claims
Вопрос:
У меня есть кластер Raspberry Pi, состоящий из 1-главных 20-узлов:
- 192.168.0.92 (Мастер)
- 192.168.0.112 (Узел с USB-накопителем)
Я смонтировал USB-накопитель /media/hdd
и установил на него ярлык - purpose=volume
.
Используя следующее, я смог настроить сервер NFS:
apiVersion: v1
kind: Namespace
metadata:
name: storage
labels:
app: storage
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-pv
namespace: storage
spec:
capacity:
storage: 3.5Ti
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /media/hdd
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: purpose
operator: In
values:
- volume
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: local-claim
namespace: storage
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-storage
resources:
requests:
storage: 3Ti
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-server
namespace: storage
labels:
app: nfs-server
spec:
replicas: 1
selector:
matchLabels:
app: nfs-server
template:
metadata:
labels:
app: nfs-server
name: nfs-server
spec:
containers:
- name: nfs-server
image: itsthenetwork/nfs-server-alpine:11-arm
env:
- name: SHARED_DIRECTORY
value: /exports
ports:
- name: nfs
containerPort: 2049
- name: mountd
containerPort: 20048
- name: rpcbind
containerPort: 111
securityContext:
privileged: true
volumeMounts:
- mountPath: /exports
name: mypvc
volumes:
- name: mypvc
persistentVolumeClaim:
claimName: local-claim
nodeSelector:
purpose: volume
---
kind: Service
apiVersion: v1
metadata:
name: nfs-server
namespace: storage
spec:
ports:
- name: nfs
port: 2049
- name: mountd
port: 20048
- name: rpcbind
port: 111
clusterIP: 10.96.0.11
selector:
app: nfs-server
И я даже смог сделать постоянный объем с помощью этого:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-nfs-volume
labels:
directory: mysql
spec:
capacity:
storage: 200Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: slow
nfs:
path: /mysql
server: 10.244.19.5
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-nfs-claim
spec:
storageClassName: slow
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
selector:
matchLabels:
directory: mysql
Но когда я пытаюсь использовать громкость вот так:
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-nfs-claim
Я получаю ошибку «Транспортный протокол версии NFS не поддерживается».
Комментарии:
1. Какую версию Kubernetes вы использовали? Пожалуйста, предоставьте свои журналы. Вы видели эту статью ? Пожалуйста, дайте мне знать, работает ли для вас какое-либо из этих решений.
2. На самом деле это было очень полезно. Вы должны включить 3 шага статьи в качестве ответа, чтобы я мог принять его.
Ответ №1:
При обнаружении mount.nfs: requested NFS version or transport protocol is not supported
ошибки есть три основные причины:
- Службы NFS не запущены на сервере NFS
- Утилиты NFS не установлены на клиенте
- Служба NFS зависла на сервере NFS
В соответствии с этой статьей есть три решения для решения проблемы с вашей ошибкой.
Первый:
Войдите на сервер NFS и проверьте состояние служб NFS. Если следующая команда service nfs status
возвращает информацию о том, что службы NFS остановлены на сервере — просто запустите их использование service nfs start
. Для подключения общего ресурса NFS на клиенте используйте ту же команду.
Второй:
Если после первой попытки решения ваша проблема не будет решена
попробуйте установить пакет nfs-utils на свой сервер.
Третий:
Откройте файл
/etc/sysconfig/nfs
и попробуйте проверить следующие параметры
# Turn off v4 protocol support
#RPCNFSDARGS="-N 4"
# Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
Удаление хэша из
RPCNFSDARGS
строк отключит поддержку определенных версий. Таким образом, клиенты с указанными версиями NFS не смогут подключиться к серверу NFS для подключения общего ресурса. Если у вас что-либо из этого включено, попробуйте отключить его и установить на клиенте после перезапуска службы сервера NFS.
Комментарии:
1. Привет @Proximo. Подумайте о том, чтобы принять ответ, если он решит вашу проблему.