일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Docker
- ChatGPT
- Tunneling
- cloud controller manager
- ssh
- argocd
- ssafy #싸피 #ssafy 12기 #싸피 12기 #ssafy 합격 #싸피 합격 #합격 후기
- sshtunneling
- Certbot
- RDS
- 인프런강의
- 인프런
- elasticahe
- datagrip
- redis oss
- vue3
- 워커노드
- helm
- AWS
- k8s
- jnlp
- multibranch
- EC2
- helm-chart
- kaniko
- ElastiCache
- 쿠버네티스
- ingress-nginx
- Kubernetes
- port forawrding
- Today
- Total
목록2025/05 (7)
처누

쿠버네티스에서 젠킨스 파드를 배포했고, 커스텀 pvc/pv 생성하여 볼륨 마운트를 해줬다.jenkins-values.yamlapiVersion: v1kind: Namespacemetadata: name: jenkins---apiVersion: apps/v1kind: Deploymentmetadata: name: jenkins namespace: jenkinsspec: replicas: 1 selector: matchLabels: app: jenkins template: metadata: labels: app: jenkins spec: imagePullSecrets: - name: docker-hub nodeSelect..

이번 프로젝트는 MSA환경이기 때문에 각 브랜치 별로 jenkins 파이프라인을 작성하기로 계획했다.특정 브랜치에서 특정 이벤트가 발생했을 때, 해당 브랜치에 대해서만 CI/CD가 될 수 있도록 시도해보자!0. 사전 설정플러그인 설치MultiBranch Action Triggers PluginMultibranch Scan Webhook TriggerPipeline: Multibranch with defaultsJenkins URL 변경Jenkins 관리 - 시스템 - Jenkins Location에서 URL 변경해주자.기본값은 http://url/jenkins로 돼있을텐데 Ingress에서 설정한 Jenkins host로 변경하면된다.GitLab Server 수정Jenkins 관리 - 시스템 - GitL..

Jenkins 설치 전 고려했던 사항워커 노드 설정할 때 최적화 중 아래와 같이 kubelet/config.yaml 설정을 했다./var/lib/kubelet/config.yaml아래 내용 추가cpuManagerPolicy: staticreservedSystemCPUs: "0"해당 설정은 Jenkins Pod에 고정된 CPU(Core-Pinning)를 적용하기 위해 설정했다. 이 설정은 Guaranteed QoS 클래스 + static policy 조건을 만족해야 작동한다. 즉, Jenkins Pod를 Guaranteed 클래스로 만들고, 고정 CPU 코어를 할당해야 kubelet이 core pinning을 해준다.근데 여기서 고민이 생겼다!Jenkins는 일시적인 부하가 생기게 되는데 고정된 CPU를 ..

마스터 노드 구축 및 워커 노드 조인 후 도메인 연결을 위해서 ELB가 필요하여 Ingress-nginx를 설치하고 아래 명령어를 통해 EXTERNAL-IP에 ELB가 생성이 되는지 확인해봤다. kubectl get svc -n ingress-nginxNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEingress-nginx-controller LoadBalancer 80:31608/TCP,443:30432/TCP 39singress-nginx-controller-admission C..
워커 노드는 마스터 노드와 설정 방법이 비슷하다!1. 시스템 초기 설정# 스왑 비활성화sudo swapoff -asudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab# iptables가 브릿지 트래픽을 확인하도록 설정cat 2. 컨테이너 런타임 설정(containerd 사용)# 필요한 패키지 설치sudo apt updatesudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release# Docker 공식 GPG 키 추가curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyring..
인스턴스들의 보안 그룹에서 인바운드 규칙을 설정해주어야 한다.Calico를 사용하기로 했기 때문에 아래와 같이 설정을 해주었다.모든 노드 공통프로토콜포트출발지(CIDR)설명TCP6443모든 IPKubernetes API 서버 (kubectl 등 클라이언트가 접근)TCP2379-2380서브넷 IPv4 CIDRetcd 통신TCP10250서브넷 IPv4 CIDRKubelet API (metrics-server, kubectl logs 등)TCP10255서브넷 IPv4 CIDR(선택) Kubelet 읽기 전용 포트 (보안상 권장 안됨)TCP30000-32767모든 IPNodePort 서비스용 포트 (외부에서 접근) 마스터 노드에 필요한 포트프로토콜포트출발지(CIDR)설명TCP10251서브넷 IPv4 CID..

쿠버네티스로 "운영할 가치가 있는" 최소한의 프로젝트 볼륨아래 조건 중 하나 이상이면 쿠버네티스는 충분히 쓸 가치가 있다.서비스가 3개 이상 (ex. 프론트엔드, 백엔드, DB, 메시징 서버 분리)릴리즈 주기가 빠름 (ex. 주 1회 이상 배포)버전 롤백이 필요함 (ex. 장애 시 빠르게 롤백하고 싶음)트래픽이 가변적임 (ex. 새벽엔 10 req/sec, 낮엔 1000 req/sec)장애가 발생했을 때 자동 복구가 필요함 (ex. 노드 다운 시 Pod 재스케줄링)모든 걸 코드로 관리하고 싶음 (IaC: Infrastructure as Code)단순 서버 1~2개, 변경 거의 없음, 트래픽 일정 → 쿠버네티스 필요 없음. (EC2 + Docker Compose가 더 낫다.)현재 가지고 있는 서버는m6i...