external cluster로 설정하고 CephCluster 에 대한 health 는 성공적인데, 이후 CephBlockPool 생성 시 아래와 같은 오류가 발생하였다.
E | ceph-block-pool-controller: failed to reconcile. failed to fetch ceph version from cephcluster "...": attempt to determine ceph version for the current cluster image timed out
ceph version 을 가져오지 못한 것으로 보이는데... monitoring을 활성화해야 이를 해결할 수 있었다. 그런데 단순히 활성화 만으로는 안되구... 버그인지 모르겠는데 rolebinding도 해 주어야 한다.
먼저 아래와 같이 Role 을 생성한다. rook-ceph namespace 에 있는 role 을 복사한 것인데, 한 가지 다른 것은 servicemonitors 를 추가하였다.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
operator: rook
storage-backend: ceph
name: rook-ceph-system
namespace: (EXTERNAL_CLUSTER_NAMESPACE)
rules:
- apiGroups:
- ""
resources:
- pods
- configmaps
- services
- servicemonitors
verbs:
- get
- list
- watch
- patch
- create
- update
- delete
- apiGroups:
- apps
- extensions
resources:
- daemonsets
- statefulsets
- deployments
verbs:
- get
- list
- watch
- create
- update
- delete
- apiGroups:
- batch
resources:
- cronjobs
verbs:
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
operator: rook
storage-backend: ceph
name: rook-ceph-system
namespace: (EXTERNAL_CLUSTER_NAMESPACE)
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: rook-ceph-system
subjects:
- kind: ServiceAccount
name: rook-ceph-system
namespace: rook-ceph
그리고 CephCluster 에서는 아래와 같이 모니터링을 활성화 하고 mgr 노드들의 IP를 입력한다.
spec:
monitoring:
enabled: true
externalMgrEndpoints:
- ip: MGR IP
- ip: MGR IP
이후
I | ceph-block-pool-controller: creating pool "..." in namespace "..."
I | cephclient: creating replicated pool ... succeeded
이와 같이 성공하였다.
반응형
'개발 및 운영 > Kubernetes' 카테고리의 다른 글
rook-ceph 에서 Proxmox ceph 을 external cluster 으로 사용할 때 문제 (0) | 2022.08.10 |
---|---|
kata-containers 설치 (0) | 2022.06.21 |
rados gw s3 사용시 metadata 이름에 따른 403 SignatureDoesNotMatch 문제 (0) | 2022.01.07 |
gitlab-ce kubernetes 자동 백업 (0) | 2021.09.02 |
Kubernetes 노드가 죽은 후에 재-스케쥴링 되지 않음 (0) | 2021.08.21 |
댓글