전체 글 794

pkos 스터디 3주차 2편 - 도커 레지스트리 harbor

3주차 2편에서는 gitops시스템에서 도커 이미지를 저장하는 harbor를 다룹니다. 📘 harbor란? harbor는 도커 이미지를 저장하는 레지스트리입니다. harbor의 특징은 도커 이미지 보안관리 기능이 다루기 쉽습니다. 도커 이미지 취약점 검사, 접근권한 설정, 이미지 서명 등을 지원합니다. 도커 이미지 이외에 helm 차트 관리 기능도 지원합니다. harbor는 gitops시스템에서 도커 이미지 관리를 담당합니다. 📘설치하지 않고 harbor 체험하는 방법 감사하게도 harbor는 데모 사이트를 운영하고 있습니다. 누구나 데모 사이트에 들어가서 harbor를 체험할 수 있습니다. 링크: https://demo.goharbor.io 📘설치 harbor설치는 yaml, helm으로 설치할 수 있..

연재 시리즈 2023.03.25

pkos 스터디 3주차 1편 - gitops란?

3주차 주제는 쿠버네티스 gitops입니다. 내용이 길어 3편의 글로 나누어 정리합니다. 1편에서는 gitops가 무엇인지 설명합니다. gitops란? gitops 사전적 정의보다는 저의 생각을 공유하려고 합니다😁. gitops는 2가지 의미가 있다고 생각합니다. 1. git에 있는 내용을 목적지에 반영 첫 번째는 git에 있는 내용을 목적지에 반영하는 것인데요. 목적지는 애플리케이션(백엔드, 프론트 등)이 될 수도 있고 서버, 플랫폼 등이 될 수 있습니다. 사용자는 목적지에 반영할 내용을 먼저 git에 저장한 후 목적지에 반영해야 합니다. 2. git활용 gitops는 단순히 목적지에 반영할 내용만 있는것이 아니라고 생각합니다. 형상관리를 하기 위한 branch전략, pull request와 revie..

연재 시리즈 2023.03.25

Gitlab도 Github처럼 code-server를 지원하구나..

code-server가 점점 웹서비스에 도입되는 것 같네요! github에 이어서 gitlab도 code-server가 도입되었네요. github은 웹상에서 repo코드를 편집할 수 있는 Codespaces라는 기능을 제공합니다. 기술문서를 아직 자세히 보지 않았지만 code-server를 사용하는 것으로 알고 있습니다. Codespace는 한달에 사용시간이 정해져있어서, 정해시간을 초과하면 가격을 지불해야합니다. gitlab도 WEB IDE를 누르면 code-server가 실행됩니다.

엘라스틱서치 allocation장애 해결

장애접수 6시쯤 퇴근하려는 찰나 특정 엘라스틱서치에서 로그인이 안된다는 접수가 들어왔습니다. 처음에는 단순한 에러라고 생각했는데 시간이 지나갈수록 아니라는 것을 느꼈습니다. 증상 엘라스틱서치과 키바나는 쿠버네티스로 실행되고 있었습니다. probe검사를 통과하고 있어서 겉보기에 정상이었습니다. 신기하게도 엘라스틱서치는 로그인이 되는데 키바나는 로그인이 실패하는 것입니다. 🤔🤔🤔 같은 계정/비밀번호를 사용하는데 키바나만 실패하는 것이 너무 신기한 상황이었죠. 1차 장애복구 시도 계정/비밀번호 불일치 때문에 생긴 에러가 아니라는 것은 금방 알게되었습니다. 계정/비밀번호가 틀리면 invalid username/password라는 에러가 발생하는데, 에러 메세지는 "Oops. Error" 였습니다. 처음에는 단순..

회고모음 2023.03.20

pkos 스터디 2주차 2편 - AWS VPC CNI

이 글은 쿠버네티스에서 AWS VPC CNI 동작과정을 설명합니다. 몇 가지 선수지식이 필요합니다. 네트워크 인터페이스 iptables route table arp 프로토콜 AWS VPC 쿠버네티스 AWS VPC CNI란? AWS에서 쿠버네티스 설치를 하면, 네트워크 설정과 동작은 AWS 네트워크 환경에 영향을 받습니다. 그래서 AWS와 쿠버네티스 사이 적절한 중계자가 필요합니다. 그 역할을 수행하는 모듈이 AWS VPC CNI입니다. kops AWS VPC CNI 스터디에서 사용하는 kops 클러스터는 AWS VCP CNI를 지원합니다. AWS VPC CNI설치는 kops클러스터 생성할 때 networking인자로 설정합니다. kops create cluster \ --zones $ZONES \ --n..

연재 시리즈 2023.03.18

pkos 스터디 2주차 1편 - AWS volume 사용 원리

이 글은 쿠버네티스에서 AWS volume을 사용하는 원리와 방법을 설명합니다. 저는 kops를 이용하여 쿠버네티스를 설치했습니다. 동작원리 커스텀 쿠버네티스 controller을 만들어 AWS volume을 생성/수정/삭제를 관리합니다. 예를 들어 AWS EBS Controller는 pod가 AWS EBS volume가 생성 요청하면, AWS API를 사용하여 volume을 생성합니다. AWS volume이 생성되면, kubelet이 pod에 AWS volume을 연결합니다. 각 노드에 EBS daemonset pod가 kubelet과 함께 AWS volume을 pod에 연결합니다. 위 그림은 놀랍게도 chatgpt가 그려준 겁니다. mermaid라는 언어를 사용해서 chatgpt에게 관계도를 그려달라..

연재 시리즈 2023.03.18

기존 리소스가 있는 상태에서 helm release하면?

주제 기존 쿠버네티스 리소스가 있는 상태에서 똑같은 이름(.metatdata.name)으로 helm release를 하면 에러가 발생합니다. 에러 메세지는 아래와 같습니다. 왜 이 에러가 발생할까요? 예제코드: https://github.com/sungwook-practice/helm-release-error-case helm install helm-test ./charts 에러 메세지 키워드 exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; a..