본문 바로가기

전체 글330

[Go/Homebrew] Go로 간단한 Homebrew 패키지 만들기 # 목표 1. Go 써보기 2. Homebrew 패키지 만들어보기 -> 매우 간단한 커맨드라인 툴 만들어서 homebrew에 올려보기 # 결과물 brew tap suminhong/tap brew install gohonglab gohonglab 그냥 내 블로그 주소들 보여주는 커맨드라인 툴이다. # 순서 1. go project 만들기 2. build파일 release에 올리기 3. Homebrew Fomula 작성 4. 테스트 # 해보자! 🚀 1. go project 만들기 참고 - https://github.com/suminhong/gohonglab 적절한 레포지토리를 만들고, 해당 폴더에 진입 후 아래 명령어로 go project 초기화를 시켜준다. (본인이 원하는 이름으로 초기화하면 됨) go m.. 2024. 4. 10.
[k8s/ingress-nginx/aws] Chart: Add a TargetGroupBinding 결론 : 너무 user specific하다고 close 됨. >> 내가 별도로 차트 올려둠 (ingress-nginx-4.10.0 기반, https://artifacthub.io/packages/helm/suminhong/ingress-nginx-external-lb) https://github.com/kubernetes/ingress-nginx/pull/11198 Chart: Add a TargetGroupBinding object to the ingress-nginx helm chart template. by suminhong · Pull Request #11198 · kubernet What this PR does / why we need it: Add a TargetGroupBinding obje.. 2024. 4. 4.
[Django] admin에 keycloak login 붙이기 # 이미 존재하는 것 장고 프로젝트 (with django-admin-interface) 연동할 키클락 # 원하는 것 장고 어드민의 기본 로그인 화면은 아래와 같다. (admin_interface를 사용하는 경우) LOG IN 버튼 밑에 Keycloak용 로그인 버튼을 만들고, 키클락 유저로 로그인 가능하도록 만들겠다. # 시작! 🚀 1) social auth 세팅 social-auth-app-django 설치 pip install social-auth-app-django settings.py에 social_django 추가 # settings.py INSTALLED_APPS = [ ... 'social_django', # 추가 ] migration 수행 python manage.py migrate 여기.. 2024. 3. 30.
[Grafana Mimir] Mimir Helm 설치/셋업 도중 트러블슈팅 # Ref https://wlsdn3004.tistory.com/50 Grafana Mimir란? 개념부터 설치까지 Prometheus는 쿠버네티스 환경에서 많이 사용하는 인기 있는 오픈소스 모니터링 도구이다. 하지만 몇 가지 치명적인 단점이 있다. 확장 및 고가용성 문제 프로메테우스는 단일 서버로 동작하게 구 wlsdn3004.tistory.com Mimir가 뭔지와 컴포넌트에 대한 자세한 설명은 위를 확인하자. 나는 Mimir를 설치하고, Prometheus 연동 중 트슛 과정만 설명한다. # 권한 설정 먼저 일단 mimir의 데이터는 s3에 담을 것이다. iam policy는 아래처럼 구성하면 된다. { "Statement": [ { "Action": [ "s3:ListBucket", "s3:Put.. 2024. 3. 28.
[EKS/Access Configuration] Managed Node Group > Karpenter Migration 시 aws-auth 문제 해결 # 이슈 발생 원래 Managed EC2 Node Group으로 EKS를 구성해 두었다가, Karpenter PoC를 마치고 모두 넘어가려고 준비중이었다. 따라서 Managed Node Group (이하 node group) & Karpenter가 모두 떠 있었고, node group은 노드를 0으로만 유지중이었다. 이제 모든 클러스터가 카펜터로 잘 동작중이기 때문에, node group은 이제 지워야지! 하고 dev 클러스터부터 전부 지움. 그러자 ... 갑자기 카펜터로 뜬 노드들이 전부 죽기 시작했다. # 뭔지 모르겠지만 일단 롤백 아무리 생각해도 node group이랑 카펜터에 연관 관계가 있을 것 같지 않았다. 근데 롤백하니까 (node group 살리니까) 카펜터 노드들도 다시 살아나기 시작했다.. 2024. 3. 28.
[kubernetes/GUI] OpenLens 로 쉽게 port-forward 하기 먼저 OpenLens에 대해서는 아래 글에서 확인하자. https://honglab.tistory.com/279 [kubernetes/GUI] OpenLens 사용하기 (MAC) # 설치 (in MAC) brew install --cask openlens # 사용 # 쉘 접근 기능 extension 설치 @alebcay/openlens-node-pod-menu 입력 후 인스톨 끝 honglab.tistory.com 쿠버네티스에 떠있는 pod에 포트포워딩하는 (기본)방법은 아래 도큐를 확인하자 https://kubernetes.io/ko/docs/tasks/access-application-cluster/port-forward-access-application-cluster/ 포트 포워딩을 사용해서 클러스.. 2024. 3. 28.
[AD/AWS Directory Service/Terraform] Admin User 비밀번호 만료 우선 내 환경은 AWS Directory Service - Microsoft AD 를 사용해 AD를 구축해둔 상태이다. 해당 AD를 컨트롤하기 위해 Controller 서버도 띄워두었고, User를 쉽게 만들기 위해 Terraform 에서 ldap Provider를 사용해 붙고 있었다. 그런데 어느 날, Error: error binding: LDAP Result Code 49 "Invalid Credentials": 80090308: LdapErr: DSID-0C090569, comment: AcceptSecurityContext error, data 532, v4563 라는 에러가 뜨면서 plan이 실패했다. Controller 서버에 RDP 접속도 안되었다. 근데 이 때 나온 에러는 비밀번호가 만료.. 2024. 3. 21.
[Karpenter] Disruption budget (중단 제어) 사용하기 (v0.34.0~) (feat. karpenter upgrade) https://aws.amazon.com/ko/about-aws/whats-new/2024/02/disruption-controls-karpenter/ Karpenter에 대한 중단 제어 기능 발표 오늘 v0.34.0 릴리스부터 오픈 소스 Karpenter 프로젝트를 사용하는 Amazon Elastic Kubernetes Service(EKS) 고객에게 Kubernetes 클러스터의 Amazon EC2 인스턴스에 획기적인 변경이 적용되는 방법과 시기를 제어할 aws.amazon.com https://karpenter.sh/v0.34/concepts/disruption/ Disruption Understand different ways Karpenter disrupts nodes karpenter.sh k.. 2024. 3. 9.
[Terraform Associate (003)] 2024-02-17 합격 후기 https://www.credly.com/badges/797fde64-28d6-4dd8-b59d-2ff7a1ab2309/public_url HashiCorp Certified: Terraform Associate (003) was issued by HashiCorp to Sumin Hong.Earners of the HashiCorp Certified: Terraform Associate certification know the basic concepts, skills, and use cases associated with open source HashiCorp Terraform. They understand and can utilize Terraform according to the certificat.. 2024. 2. 18.
[CKAD] 2024-02-12 합격 후기 2월 12일에 CKAD를 땄다. 사실 시험을 산 건 작년 5월인데, 그냥 쭉 미루다가 ... (ㅋㅋ) 4월부터 자격증 만료기간이 2년으로 줄어든다는 소식을 듣고 호다닥 땄다 작년에 CKA를 땄던 기억도 남아있고, 업무상으로도 쿠버네티스를 계속 다뤄왔기에 큰 공부 없이 금방 땄다. 뭄샤드 CKAD 강의도 작년에 사뒀었는데, 강의는 하나도 안듣고 kodekloud 실습만 쭉 풀고 갔다 ㅋㅋ kodekloud mock exam이 진짜 짱인 것 같다. killer는 환경 익숙해지려고 조금만 풀어봤다. 너무 어려워서 거기에 스트레스를 많이 받진 않았다. 좀 짜증났던건, psi browser의 키보드 세션? 이 심하게 끊겼다. nginx 이 단어 하나 치는데도 몇 번이나 세션이 끊겨서 직접 마우스로 화면을 클릭해줘.. 2024. 2. 13.
[k8s/EKS] Fargate와 Daemonset # Fargate를 쓰는 이유 karpenter pod를 띄우기 위해서. (karpenter pod는 karpenter가 띄운 노드에 뜰 수 없다.) 별도 ec2 node group을 만들수도 있지만, 우리의 궁국적인 목적은 ec2 node group을 없애고 스팟으로만 운영하는 것이기 때문에 karpenter용 fargate를 띄움 참고로 pod 하나당 fargate 하나가 뜸 # Daemonset 노드의 백그라운드에서 항상 실행되며 여러 작업을 수행 → 노드별로 파드가 하나씩 떠야 함. 이 때, fargate도 결국 노드의 한 종류인데 fargate에도 떠야하느냐? → 아니다. fargate는 hsot가 없기 때문에 데몬셋이 지원되지 않는다. 따라서 데몬셋들은 fargate가 아닌, ec2 노드들에만.. 2024. 2. 9.
[EKS/Terraform] Secondary IP 줄이기 with Terraform # 현상 18개 파드가 존재하는 10.10.0.218 노드가 있다. 그러나 해당 노드엔 2개 eni / eni포함 총 60개의 ip가 붙어있다.... 다른 노드들도 사용하는 파드들에 비해 상당히 많은 ip들을 갖고 있었고, 이로 인해 서브넷에 가용 ip가 부족해졌다. # 분석 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI Elastic network interfaces - Amazon Elastic Compute Cloud For EC2 instances in an IPv6-only subnet, if you attach a secondary network interface to the instanc.. 2024. 2. 6.
[Active Directory] AD Controller 서버 설정하기 # AD Controller 서버? 사실 공식적인 이름인지 아닌지는 모르겠다. 어디선가에선 manage 서버라고 부를 것 같다. 요지는, Managed AD를 사용하는 경우 (ex, AWS Directory Service - Microsoft AD) 해당 AD 서버에 직접 접근이 불가하다. 이 때 AD를 컨트롤하기 위한 목적 (user, computer, gpo관리 등) 으로 별도 윈도우 서버를 띄우게 된다 This PC 우클릭 > Properties Change settings 클릭 Change > Computer Name 변경 후 OK (꼭 CONTROLLER가 아니어도 상관 없다.) 도메인 관리자 자격으로 Change를 해줘야 한다. ID : Admin@{domain} PW : directory 생.. 2024. 2. 1.
[Active Directory] LDAP userAccountControl 속성값 https://learn.microsoft.com/ko-kr/troubleshoot/windows-server/identity/useraccountcontrol-manipulate-account-properties UserAccountControl 속성 플래그 - Windows Server UserAccountControl 특성을 사용하여 사용자 계정 속성을 조작하는 방법에 대한 정보를 설명합니다. learn.microsoft.com 속성 플래그 10진수 값 SCRIPT 1 ACCOUNTDISABLE 2 HOMEDIR_REQUIRED 8 LOCKOUT 16 PASSWD_NOTREQD 32 PASSWD_CANT_CHANGE 64 ENCRYPTED_TEXT_PWD_ALLOWED 128 TEMP_DUPLICA.. 2024. 2. 1.
[Terraform] AD User 만들기 # 사용한 프로바이더 https://registry.terraform.io/providers/l-with/ldap/latest/docs Terraform Registry registry.terraform.io terraform { required_providers { ldap = { source = "l-with/ldap" version = ">= 0.4" } } } locals { ad_server_ip = "1.1.1.1" ad_domain = "honglab.com" ad_admin_pw = "" } provider "ldap" { host = local.ad_server_ip port = 389 tls = false bind_user = "Admin@${local.ds_domain}" bind_p.. 2024. 1. 31.