본문 바로가기

Cloud/Kubernetes

Kubernetes Service Option - 1 - 이 글은 CNI를 Calico를 사용하는 가정하에 작성되었습니다. 클라우드 전환을 하다보면 문제가 되는 부분 중 하나가 바로 네트워크이다. 레거시 코드들은 개발자들의 생각보다 종속성을 많이 가지고 있는데 자주 나를 힘들게 하는건 IP이다. 파드가 기동될 때 마다 변경되는 파드 아이피, SRC/DST의 관리 등... 머리아프게 하는 것들이 많다. 자주 사용하는 옵션들을 천천히 정리해보려고 한다. ExtrnalTrafficPolicy (Local/Cluster) 서비스 타입 중 NodePort와 LoadBalancer는 ExternalTrafficPolicy 옵션에서 Local/Cluster를 선택할 수 있다(기본값은 Cluster). 해당 타입은 src가 클러스터 IP로 찍히는데 access log를 ..
R Studio YAML (Deployment, Template) 노션에만 정리해두었는데, 블로그 관리 안한지 너무 오래되서 같이 기재한다. 1. Deployment kind: Deployment apiVersion: apps/v1 metadata: name: rstudio-deploy labels: app: rstudio spec: replicas: 1 selector: matchLabels: app: rstudio template: metadata: labels: app: rstudio spec: volumes: - name: rstudio persistentVolumeClaim: claimName: rstudio containers: - resources: {} name: rstudio env: - name: PASSWORD value: [password] - n..
쿠버네티스 인 액션 스터디 - 12장 책이 집에 있어서 원문 PDF로 공부공부... 12. Securing the Kubernetes API server - Understanding authentication - What ServiceAccounts are and why they're used - Understanding the role-based access control (RBAC) plugin - Using Roles and RoleBindings - Using ClusterRoles and ClusterRoleBindings - Understanding the default roles and bindings 12.1 Understanding authentication Kubernetes의 API 서버는 인증 플러그인을 사용하여 클라이..
쿠버네티스 인 액션 스터디 - 0 새해라고 해이해져서 억지로 뭐라도 시작하게 되었다. 그 중 첫번째가 스터디인데, 나는 정상적인 스터디를 한 적이 없다.. ^_ㅠ.. 알고리즘 스터디는 나름 좀 열심히 했네... 코로나 시국이라 온라인으로 진행되어 이번에는 제대로 할 수 있겠지하고 생각하고 있다. 아래 책을 이용하여 쿠버네티스 스터디를 진행하는데, 이미 반절정도 진행 된 스터디에 참여하는거라 앞 부분은 혼자서 독학해야 한다. 내용은 3부부터 진행된다. 나는 12장, 16장 발표 준비를 하게 되었다. 3부. 쿠버네티스 심화 11장. 쿠버네티스 내부 이해 12장. 쿠버네티스 API 서버 보안 13장. 클러스터 노드와 네트워크 보안 14장. 파드의 컴퓨팅 리소스 관리 15장. 파드와 클러스터 노드의 오토스케일링 16장. 고급 스케줄링 17장. ..
Kubectl 이미지를 통해 Kube cluster에 접근하는 Pod kind: Pod apiVersion: v1 metadata: name: kubectl labels: app: kubectl spec: restartPolicy: Never affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/master operator: Exists containers: - resources: {} name: kubectl securityContext: privileged: true volumeMounts: - name: kube-config mountPath: /root/.kube/ t..
[metallb] prometheus 수집 값 보기 PaaS 플랫폼에서 로드밸런서 서비스를 지원하기 위해 metallb를 사용하고 있다. metallb를 사용하지 않으면 노드포트 혹은 클러스터 아이피로밖에 사용하지 못한다. 각각 클러스터 아이피는 내부 통신만 가능하고, 노드 포트는 보안적인 면에서 좋은 방법이 아니다. layer 2 모드밖에 사용해보지 못했지만 어느 정도 써봤고 모니터링이 필요한 부분이 있어 해당 포스팅을 작성하게 되었다. 버전은 kube 1.17.6, metallb 0.8.2 기준이다. 1. prometheus 옵션 metallb pod는 metallb-controller pod(deployment)와 speaker(daemonset) pod로 구분된다. 각각의 yaml을 보면 prometheus scrape 옵션이 있다. 7472 포트..
Grafana 메일 연동하기 전제 조건 (1) kubernetes 위에 grafana가 올라가 있음 (2) grafana의 설정은 configmap을 통해 관리되어야 함 일단 난 gmail로 갈 수 있도록 했다. gmail에서 쪼끔 헤맸는데 이거만 해주면 된다. 보안에서 2단계 인증해주고 앱 비밀번호 하나 만들어준다. 이러면 구글 세팅은 끝!!! 이거 아니고서야 자꾸 이런 에러 난다. ssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials - gsmtp) 그리고 grafana-config에 다음과 같은 내용 등록해준다. [smtp] enabled = true host = smtp.gmail.com:587 user = 구글메일 pa..