k8s volumes.provisioner怎么配置
时间: 2024-06-01 10:13:03 浏览: 155
您可以在kubernetes的yaml文件中,针对不同的存储类型设置不同的provisioner。例如,针对NFS类型的存储,可以设置为:
volumes:
- name: nfs nfs: server: nfs.example.com path: /share
persistentVolumeClaim: claimName: myclaim nfs: path: /share server: nfs.example.com
而针对AWS EBS类型的存储,则需要设置为:
volumes:
- name: ebs
awsElasticBlockStore:
volumeID:
fsType: ext4 readOnly: false
persistentVolumeClaim:
claimName: ebs
awsElasticBlockStore:
volumeID:
希望对您有所帮助。
相关问题
Failed to list *v1.StorageClass: storageclasses.storage.k8s.io is forbidden: User "system:serviceaccount:default:nfs-client-provisioner" cannot list resource "storageclasses" in API group "storage.k8s.io" at the cluster scope: RBAC: clusterrole.rbac.authorization.k8s.io "nfs-client-provisioner-role" not found的yaml怎么写
您可以尝试创建一个新的 ClusterRole 来授权您的 ServiceAccount 访问存储类资源。具体操作步骤如下:
- 创建一个新的 ClusterRole,例如:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: nfs-client-provisioner-role
rules:
- apiGroups: [""]
resources: ["persistentvolumes", "persistentvolumeclaims", "services"]
verbs: ["get", "list", "watch", "create", "update", "delete"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- 授权给您的 ServiceAccount,例如:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: nfs-client-provisioner-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: nfs-client-provisioner-role
subjects:
- kind: ServiceAccount
name: nfs-client-provisioner
namespace: default
- 检查您的 ServiceAccount 是否已经获得了新的权限,例如:
kubectl auth can-i list storageclasses --as=system:serviceaccount:default:nfs-client-provisioner
如果返回结果为 yes
,则说明您的 ServiceAccount 已经获得了访问存储类资源的权限。
registry.cn-beijing.aliyuncs.com/mydlq/nfs-subdir-external-provisioner:v4.0.0的k8s的yaml怎么写
下面是一个基本的 Kubernetes YAML 文件示例,可用于部署容器镜像 registry.cn-beijing.aliyuncs.com/mydlq/nfs-subdir-external-provisioner:v4.0.0
:
apiVersion: v1
kind: ServiceAccount
metadata:
name: nfs-subdir-external-provisioner
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: nfs-subdir-external-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"]
- apiGroups: [""]
resources: ["events"]
verbs: ["create", "update", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: run-nfs-subdir-external-provisioner
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: nfs-subdir-external-provisioner-runner
subjects:
- kind: ServiceAccount
name: nfs-subdir-external-provisioner
namespace: default
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-subdir-external-provisioner
spec:
replicas: 1
selector:
matchLabels:
app: nfs-subdir-external-provisioner
template:
metadata:
labels:
app: nfs-subdir-external-provisioner
spec:
serviceAccountName: nfs-subdir-external-provisioner
containers:
- name: nfs-subdir-external-provisioner
image: registry.cn-beijing.aliyuncs.com/mydlq/nfs-subdir-external-provisioner:v4.0.0
env:
- name: PROVISIONER_NAME
value: nfs-subdir-external-provisioner
- name: NFS_SERVER
value: your.nfs.server.ip
- name: NFS_PATH
value: /path/to/nfs/share
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes
volumes:
- name: nfs-client-root
nfs:
server: your.nfs.server.ip
path: /path/to/nfs/share
注意替换 NFS_SERVER
和 NFS_PATH
的值为你的 NFS 服务器的 IP 地址和共享路径。同时,需要根据实际情况修改应用的名称、命名空间和其他配置。
相关推荐














