본문 바로가기

개발 및 운영/Kubernetes17

[rook-ceph] external cluster 사용 시 attempt to determine ceph version for the current cluster image timed out 오류 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도 해 주어야 한.. 2022. 1. 11.
rados gw s3 사용시 metadata 이름에 따른 403 SignatureDoesNotMatch 문제 EXTERNAL ----- nginx-ingress ----- RadosGW S3 Server 위와 같은 구성으로 운영을 하던 중 Nexus 에서 S3 를 사용하는데 npm login 등의 작업이 안되는 일이 발생하였다. 패킷 덤프 떠서 원인을 파악해 보았더니 PutObject 를 할 때 "x-amz-meta-blobstore.temporary-blob" 라는 메타데이터 헤더가 들어가는데 SignedHeaders 에는 x-amz-meta-blobstore.temporary-blob 가 있는데 실제 Header 에는 존재하지 않아서 그런 것이었다. 처음엔 Nexus이나 AWS-SDK 문제인가... 했는데 여기선 저 헤더를 보내는데, 이상하게 rados gw 쪽에서 저 헤더를 받지 않았다. 원인은 nginx.. 2022. 1. 7.
gitlab-ce kubernetes 자동 백업 Gitlab Backup 설정은 아래 링크를 참고한다: - https://docs.gitlab.com/ee/raketasks/backup_restore.html S3 API를 지원하기 때문에 S3에 백업하거나, On-premise라면 NAS에 minio설치해서 S3 API로 백업할 수도 있다. gitlab을 Kubernetes에서 사용 할 경우 crontab을 사용할 수 없어 기본적으론 수동으로 gitlab 파드 안에 들어가서 gitlab-backup create 명령을 수행해주어야 한다. 하지만 이건 번거로우니... Kubernetes의 CronJob을 통해 이를 자동화한다. 주의 사항 gitlab이 statefulset 으로 만들어 져야 한다. deployment 으로 만드는 경우 pod이름이 ran.. 2021. 9. 2.
Kubernetes 노드가 죽은 후에 재-스케쥴링 되지 않음 Node 하나가 예기치 않게 종료되었는데 거기서 돌던 Pod들이 rescheduling되지 않았다. Node는 NotReady 상태, 파드들은 대부분 Terminating 상태에서 멈춰있었다. https://github.com/kubernetes/kubernetes/issues/55713#issuecomment-844035331 Pods are not moved when Node in NotReady state · Issue #55713 · kubernetes/kubernetes Is this a BUG REPORT or FEATURE REQUEST?: Uncomment only one, leave it on its own line: /kind bug What happened: To simulate a .. 2021. 8. 21.
Calico iBGP에서 vxlan.calico의 IP가 NextHop으로 뜨는 경우 Kubernetes Node를 Calico를 통해 ToR (Top-of-rack Router)와 연결했을 때 주기적으로 Pod IP Cidr 들이 Node IP로 변경되었다가 vxlan.calico의 IP로 변경되었다가.. 하는 까닭에 Kubernetes Cluster 밖에서 Pod IP에 직접적으로 접근이 되지 않는 경우가 있었다. 이에 대한 해결방안은 github.com/projectcalico/libcalico-go/pull/1266 Maintaining original next hop on specific bgppeer by gunboe · Pull Request #1266 · projectcalico/libcalico-go Description An option to keep the origin.. 2020. 11. 29.
ceph mon_dns_srv_name 작성방법 github.com/ceph/ceph/blob/703524119a118108156f984370c8f70ef23cdcf3/src/mon/MonMap.cc init_with_dns_srv 함수 참고 ceph.conf에서 [global] mon_dns_srv_name = msgr1_mon.rook-ceph.svc.cluster.local auth_client_required = cephx auth_cluster_required = cephx auth_service_required = cephx [client.admin] keyring = ... 이런식으로 이상한.. 법칙이 있다. 위처럼 하면 실제로는 _msgr1._tcp.rook-ceph.svc.cluster.local 이름으로 SRV Record를 찾는다... 2020. 11. 19.