Cloud Engineering Log
-
도커 환경에서 개발하다 보면, 이전 버전 이미지, 테스트용 컨테이너 등등이 공간을 많이 잡아먹고 있는 경우가 있다. 일일이 삭제하거나, 스크립트로 안전하게 삭제할 수 있겠지만, 시원하게 미사용 상태인 데이터를 싹 날리는 프루닝(pruning) 커맨드도 이용할 수 있다. 단, 세심하게 관리해야 하는 환경에서는 조심하자! (복구불가능) > 미사용 (unused) 상태인 image, container 청소하기 docker system prune -a > 사용하지 않는 volume 청소하기 docker volume prune
docker 청소하기도커 환경에서 개발하다 보면, 이전 버전 이미지, 테스트용 컨테이너 등등이 공간을 많이 잡아먹고 있는 경우가 있다. 일일이 삭제하거나, 스크립트로 안전하게 삭제할 수 있겠지만, 시원하게 미사용 상태인 데이터를 싹 날리는 프루닝(pruning) 커맨드도 이용할 수 있다. 단, 세심하게 관리해야 하는 환경에서는 조심하자! (복구불가능) > 미사용 (unused) 상태인 image, container 청소하기 docker system prune -a > 사용하지 않는 volume 청소하기 docker volume prune
2023.01.16 -
지금 팀에서, 모종의 이유로 베어메탈 노드에서 docker를 운용하고, 동시에 그 노드를 이용해 오픈스택 -> 쿠버네티스 가상화까지 하고 있다. 하지만 주로 쿠버네티스에서 모니터링을 체크하고, 운용하다 보니, 가끔 docker가 말썽인 경우에 캐치하기가 어려운 문제가 있었다. 그래서 아래 코드로 도커의 소켓 (/var/run/docker.sock)을 프록시로 로그를 확인하도록 하고 있었는데, 아무래도 로그가 실시간으로 너무 많이 찍혀서 솔직히 트레이싱하기 힘들다. curl --unix-socket /var/run/docker.sock http://localhost/events 그래서 고안한 것은, docker.sock을 이용해 모니터링하는 pod를 쿠버네티스에서 띄우는 방식이다. apiVersion: v..
외부 docker.sock을 kubernetes에서 모니터링하는 방법지금 팀에서, 모종의 이유로 베어메탈 노드에서 docker를 운용하고, 동시에 그 노드를 이용해 오픈스택 -> 쿠버네티스 가상화까지 하고 있다. 하지만 주로 쿠버네티스에서 모니터링을 체크하고, 운용하다 보니, 가끔 docker가 말썽인 경우에 캐치하기가 어려운 문제가 있었다. 그래서 아래 코드로 도커의 소켓 (/var/run/docker.sock)을 프록시로 로그를 확인하도록 하고 있었는데, 아무래도 로그가 실시간으로 너무 많이 찍혀서 솔직히 트레이싱하기 힘들다. curl --unix-socket /var/run/docker.sock http://localhost/events 그래서 고안한 것은, docker.sock을 이용해 모니터링하는 pod를 쿠버네티스에서 띄우는 방식이다. apiVersion: v..
2022.10.26 -
1. Ingress Controller는 L7 Layer에서 Application의 Service Proxy 부분을 관리하는 역할이다. 2. Istio는 Ingress Controller의 역할을 좀 더 세분화해서, Service Mesh라는 개념으로 정의한다. 2-1. 기존의 Ingress Controller를 Istio Ingress Gateway가 수행하는데, 이 때 Proxy에 보안 관리 기능인 Gateway를 먼저 거치도록 구성한다. 즉, 특정 Pod에 접근하기 위한 접근제어가 가능해진다.
[migration] nginx ingress controller -> istio service mesh1. Ingress Controller는 L7 Layer에서 Application의 Service Proxy 부분을 관리하는 역할이다. 2. Istio는 Ingress Controller의 역할을 좀 더 세분화해서, Service Mesh라는 개념으로 정의한다. 2-1. 기존의 Ingress Controller를 Istio Ingress Gateway가 수행하는데, 이 때 Proxy에 보안 관리 기능인 Gateway를 먼저 거치도록 구성한다. 즉, 특정 Pod에 접근하기 위한 접근제어가 가능해진다.
2022.09.02 -
rook cluster는 위와 같이 설정했을 때, 테스트 단계에서 ssl true + self-signed-cert으로 구성된다. 그리고 ssl: false인 경우는 rook-ceph-mgr-dashboard (dashboard enabled인 경우 생성되는 service)의 port가 7000 (http-dashboard)이고, ssl: true인 경우는 port가 8443 (https-dashboard)로 기본값이 구성되어 있다. 그리고 문제는 ssl이 true이고, service가 8443으로 표시되는데 (operator log 확인) 정작 이 dashboard를 관리하는 mgr module에서는 요렇게 뜬다. 관련 ceph의 issue로는 최근 계속 보고되고 있는 것 같다. https://gith..
rook-ceph dashboard의 service ssl + x509 certification 관련 에러rook cluster는 위와 같이 설정했을 때, 테스트 단계에서 ssl true + self-signed-cert으로 구성된다. 그리고 ssl: false인 경우는 rook-ceph-mgr-dashboard (dashboard enabled인 경우 생성되는 service)의 port가 7000 (http-dashboard)이고, ssl: true인 경우는 port가 8443 (https-dashboard)로 기본값이 구성되어 있다. 그리고 문제는 ssl이 true이고, service가 8443으로 표시되는데 (operator log 확인) 정작 이 dashboard를 관리하는 mgr module에서는 요렇게 뜬다. 관련 ceph의 issue로는 최근 계속 보고되고 있는 것 같다. https://gith..
2022.09.01 -
- https://kubernetes.io/docs/reference/access-authn-authz/authentication/ 를 참고/번역/재정리합니다 - *작성기준일: 2022/08/04 *Users in Kubernetes 1. 모든 쿠베 클러스터는 두 종류의 User로 나뉜다. Service Account (쿠베 관리O -> API로 만듦) 특정 Namespace에 Binding API Server에 의해 자동 생성 or API call을 통해 수동으로 생성 Secret으로 Credential을 저장 Normal User (쿠베가 관리X -> API로 만들 수 없음) Private Key 클러스터의 인증 기관(CA)이 서명한 유효한 인증서를 제시 CommonName(Hostname)에서 Us..
Kubernetes Authentication- https://kubernetes.io/docs/reference/access-authn-authz/authentication/ 를 참고/번역/재정리합니다 - *작성기준일: 2022/08/04 *Users in Kubernetes 1. 모든 쿠베 클러스터는 두 종류의 User로 나뉜다. Service Account (쿠베 관리O -> API로 만듦) 특정 Namespace에 Binding API Server에 의해 자동 생성 or API call을 통해 수동으로 생성 Secret으로 Credential을 저장 Normal User (쿠베가 관리X -> API로 만들 수 없음) Private Key 클러스터의 인증 기관(CA)이 서명한 유효한 인증서를 제시 CommonName(Hostname)에서 Us..
2022.08.04 -
Rook-Ceph은 CRD가 오고가는만큼, 모두 삭제하지 않으면 보통 namespace 삭제 단계에서 클러스터 freeze가 발생하더라. 그래서 보통 rook filesystem 자체를 초기화하는 업데이트를 할 때에는 클러스터를 날리고 다시 설정하는 비효율 끝판왕을 수행하느라 클러스터 재할당, 설정 다 다시하고... 이러는 복잡함을 겪었다. 그래서 일단 rokk-ceph teardown document를 중심으로 manulally 삭제를 잘 할 수 있는지 해보려 한다. 1. cephcluster CRD를 삭제준비상태로 patch kubectl -n rook-ceph patch cephcluster rook-ceph --type merge -p '{"spec":{"cleanupPolicy":{"confir..
Rook-Ceph Teardown 정석으로 수행하기Rook-Ceph은 CRD가 오고가는만큼, 모두 삭제하지 않으면 보통 namespace 삭제 단계에서 클러스터 freeze가 발생하더라. 그래서 보통 rook filesystem 자체를 초기화하는 업데이트를 할 때에는 클러스터를 날리고 다시 설정하는 비효율 끝판왕을 수행하느라 클러스터 재할당, 설정 다 다시하고... 이러는 복잡함을 겪었다. 그래서 일단 rokk-ceph teardown document를 중심으로 manulally 삭제를 잘 할 수 있는지 해보려 한다. 1. cephcluster CRD를 삭제준비상태로 patch kubectl -n rook-ceph patch cephcluster rook-ceph --type merge -p '{"spec":{"cleanupPolicy":{"confir..
2022.05.26 -
ceph-OSD란? Object Storage Daemon, 데이터 저장하는 곳으로, OSD Pod가 없으면 Rook-Ceph을 통해 PVC가 Bound되지 않음 https://rook.io/docs/rook/v1.9/ceph-common-issues.html#pvcs-stay-in-pending-state 문제 관련 참고사항 1. Official Doc에서의 Issue https://rook.io/docs/rook/v1.9/ceph-common-issues.html#osd-pods-are-not-created-on-my-devices Ceph Docs Ceph Common Issues Many of these problem cases are hard to summarize down to a short ..
rook-ceph trouble shooting: OSD가 생성되지 않아요 (RKE)ceph-OSD란? Object Storage Daemon, 데이터 저장하는 곳으로, OSD Pod가 없으면 Rook-Ceph을 통해 PVC가 Bound되지 않음 https://rook.io/docs/rook/v1.9/ceph-common-issues.html#pvcs-stay-in-pending-state 문제 관련 참고사항 1. Official Doc에서의 Issue https://rook.io/docs/rook/v1.9/ceph-common-issues.html#osd-pods-are-not-created-on-my-devices Ceph Docs Ceph Common Issues Many of these problem cases are hard to summarize down to a short ..
2022.05.24 -
쿠버네티스 클러스터 리소스 모니터링을 위한 Grafana는 보통 Prometheus와 같이 간다. 설치방법이 다양한데, 제일 편한 건 helm chart를 통해 설치하는 것. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update \ && helm upgrade --install kube-stack-prometheus prometheus-community/kube-prometheus-stack \ -n prom-monitoring --create-namespace \ --set prometheus-node-exporter.hostRootFsMount.enabled=false \..
kubernetes helm을 통해 prometheus chart 및 grafana 연동 (1/2)쿠버네티스 클러스터 리소스 모니터링을 위한 Grafana는 보통 Prometheus와 같이 간다. 설치방법이 다양한데, 제일 편한 건 helm chart를 통해 설치하는 것. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update \ && helm upgrade --install kube-stack-prometheus prometheus-community/kube-prometheus-stack \ -n prom-monitoring --create-namespace \ --set prometheus-node-exporter.hostRootFsMount.enabled=false \..
2022.05.19