在一些特殊的情况下,导致了 nfs-server 的 service 资源没有被正确的创建,这的确会阻塞安装的继续进行。下面是手动创建这一资源的操作步骤:
- 首先,需要查询到 rainbondvolumerwx 这个 storageclass 的 uid
kubectl get sc rainbondvolumerwx -n rbd-system -o yaml | grep uid
uid: 5cc5173b-e031-4894-99e9-2d1191814629
- 其次,创建一个 nfs-provisioner-service.yaml 配置文件,用于定义这个资,内容如下:
apiVersion: v1
kind: Service
metadata:
labels:
belongTo: rainbond-operator
creator: Rainbond
name: nfs-provisioner
manager: manager
operation: Update
name: nfs-provisioner
namespace: rbd-system
ownerReferences:
- apiVersion: rainbond.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: RainbondVolume
name: rainbondvolumerwx
uid: <此处填写上一步获取的 uid >
resourceVersion: "837"
selfLink: /api/v1/namespaces/rbd-system/services/nfs-provisioner
uid: f98d2472-75fd-4c89-b127-69ecc4940342
spec:
clusterIP: 10.43.0.139
ports:
- name: nfs
port: 2049
protocol: TCP
targetPort: nfs
- name: nfs-udp
port: 2049
protocol: UDP
targetPort: nfs-udp
- name: nlockmgr
port: 32803
protocol: TCP
targetPort: nlockmgr
- name: nlockmgr-udp
port: 32803
protocol: UDP
targetPort: nlockmgr-udp
- name: mountd
port: 20048
protocol: TCP
targetPort: mountd
- name: mountd-udp
port: 20048
protocol: UDP
targetPort: mountd-udp
- name: rquotad
port: 875
protocol: TCP
targetPort: rquotad
- name: rquotad-udp
port: 875
protocol: UDP
targetPort: rquotad-udp
- name: rpcbind
port: 111
protocol: TCP
targetPort: rpcbind
- name: rpcbind-udp
port: 111
protocol: UDP
targetPort: rpcbind-udp
- name: statd
port: 662
protocol: TCP
targetPort: statd
- name: statd-udp
port: 662
protocol: UDP
targetPort: statd-udp
selector:
belongTo: rainbond-operator
creator: Rainbond
name: nfs-provisioner
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
kubectl apply -f nfs-provisioner-service.yaml
kubectl get service nfs-provisioner -n rbd-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nfs-provisioner ClusterIP 10.43.0.139 <none> 2049/TCP,2049/UDP,32803/TCP,32803/UDP,20048/TCP,20048/UDP,875/TCP,875/UDP,111/TCP,111/UDP,662/TCP,662/UDP 5d12h
理论上讲,安装流程会自动进行下去,但如果发现 rbd-system 命名空间下,存在 pod 处于 pending 状态过久,那么就手动杀掉那些 pod 使之重启即可。操作命令略。