no image
82일차) 2025-04-23(헬름 - 프로메테우스, 헬름 차트)
https://artifacthub.io/실습)릴리스를 통해 그라파나 - 프로메테우스를 구성하고 그라파나 대시보드에 접속해서 잘 되는지 확인 pro라는 별칭으로 레포 추가 root@master:~# helm repo add pro https://prometheus-community.github.io/helm-chartsroot@master:~# helm search repo stackroot@master:~# helm install pro pro/kube-prometheus-stackroot@master:~# kubectl get pod -o wide Grafana 접속을 위한 포트포워딩root@master:~# export POD_NAME=$(kubectl get pod -l "app.kubernete..
2025.04.23
no image
81일차) 2025-04-22(쿠버네티스 스케줄링 정책 - Node Selector, Affinity, taints & tolerations, 헬름 - nginx, apache, wp/db)
Node Selector노드에 key:value 형태의 label을 붙여놓고 파드를 띄울때 특정 라벨값을 충족하는 노드를 선택하는 기능라벨링 임의 지정root@master:~# kubectl label node worker-1 gpu=falseroot@master:~# kubectl label node worker-2 gpu=true라벨링 확인kubectl get nodes --show-labelsroot@master:~/mani# mkdir selectorroot@master:~/mani# cd /selectorroot@master:~/man/selectori# vi selector.yml apiVersion: apps/v1kind: Deploymentmetadata: name: my-depspec:..
2025.04.22
no image
79일차) 2025-04-18(HPA, 헬스체크, HAProxy)
HPA(Horizontal Pod Autoscaler)# 간단하게 쓰고싶다면 스케일업이 유리, 보통은 스케일아웃 가장 많이 사용기존 상위 리소스까지 전부 삭제kubectl delete deploy,rs,pod,svc --allroot@master:~# cd mani/ root@master:~/mani# mkdir hparoot@master:~/mani# cd hpa/ 리소스를 제한할 파드 매니페스트vi res.ymlapiVersion: v1kind: Podmetadata: name: live-pod labels: app: live-nginxspec: containers: - name: nginx image: nginx:latest resources: requests: ..
2025.04.18
no image
78일차) 2025-04-17(컨테이너의 헬스체크-readinessProbe, 리소스-StatefulSet, DaemonSet)
컨테이너의 헬스체크livenessProbelivenessProbe가 실패시 컨테이너를 재시작, 컨테이너에 이상이 있다고 간주readinessProbe실패해도 정상동작하지만, 서비스에서 해당 파드로 트래픽을 인가하지 않음보통 livenessProbe보다 readinessProbe를 많이 사용기존 상위 리소스까지 전부 삭제kubectl delete deploy --allkubectl delete rs --allkubectl delete pod --allhttpGet을 통한 proberoot@master:~/mani# mkdir probe root@master:~/mani# cd probevi pod.ymlapiVersion: v1kind: Podmetadata: name: nginx-pod labels:..
2025.04.17
no image
77일차) 2025-04-16(RBAC, 3A, Dynamic Provisioner)
RBAC (Role Based Access Control, 역할기반접근제어)AAA인증(Authentication) - 내가 누구다(로그인, 사용자를 식별)인가(authorization) - 나는 이러이러한 행동을 할 수 있다어카운트(Accounting) - 계정 사용 기록k8s Role(AWS에서는 Policy와 비슷)을 생성 후 해당 Role을 SA(Service Account)한테 부여(RoleBinding)해줌Role - RoleBinding - SA, 3개의 리소스를 만들어야한다.AWSPolicy(정책)을 생성한 다음, 특정한 역할(Role)에 부여하여 해당 역할을 사용자나 리소스한테 부여K8s Role의 종류Role = 특정 네임스페이스에 대한 권한.RoleBinding = Role를 SA와 묶..
2025.04.16
no image
76일차) 2025-04-15(쿠버네티스 - pv, StorageClass, ConfigMap, Secret, wp/mysql/3tier)
PV(Persistent Volume)영구적인 볼륨, 물리적인 자원도커에서 -v 같은 옵션을 통해 컨테이너의 데이터를 영구적으로 호스트에 백업함, 왜냐하면 컨테이너가 삭제되면 내부의 데이터는 사라지기 때문, 컨테이너의 데이터는 영구적이지 않음 PV로 사용할 공간을 NFS로 미리 정의 해놓자 !master 노드에 NFS-server를 설치하고, worker 노드들을 NFS-client로 구성마스터에 nfs-server 설치root@master:~# apt-get install -y nfs-kernel-server root@master:~# mkdir /sharedroot@master:~# chmod 777 -R /sharedroot@master:~# vi /etc/exports/shared *(rw,syn..
2025.04.15
no image
75일차) 2025-04-14(쿠버네티스 리소스 - service/metallb, ingress)
5. Service작은 로드밸런서, 주로 pod 같은 리소스들을 대표 (부하분산 + 접속지점)= pod들을 주로 외부에 '서비스'하는 리소스 5-1. ClusterIP5-2. NodePort5-3. LoadBalancerService 리소스의 한 종류(=type), 각 클러스터 관리자의 도움이 필요함EKS 같은 클라우드 서비스 제공자의 경우, Service 타입을 LoadBalancer로 명시하기만 해도 이미 기능이 구현되어 있기에 자동으로 LB가 생성(AWS EKS에서 Service 타입을 LoadBalancer로 생성하면 실제 NLB나 CLB(기본값)가 생성) 근데 우리는 온프레미스에 클러스터를 구축했기때문에 그 기능이 존재하지 않음. Bare-metal 환경에 직접 구축을 했기때문에 metalLB라..
2025.04.14
no image
74일차) 2025-04-11(쿠버네티스 리소스-pod, replicaset, deploymnet, namespace, service)
리소스1. Pod쿠버네티스 기본단위, 최소단위label리소스를 특정하기 위한 꼬리표ex. 만약에 내가 똑같은 pod를 3개 띄웠다면, pod들의 이름은 다르기때문에 대상을 한꺼번에 특정하기 어렵다. 하지만 똑같은 label을 달아준다면 해당 레이블로 3개의 파드를 동시에 특정 가능하다. 쿠버네티스에서는 보통 label을 통해 리소스를 식별하는 편이다.root@master:~# vi test-pod.ymlapiVersion: v1kind: Podmetadata: name: test-pod labels: app: my-webspec: containers: - image: public.ecr.aws/docker/library/nginx:alpine name: test-pod-conroot@m..
2025.04.11
no image
73일차) 2025-04-10(쿠버네티스-k8s-tem, k8s 컴포넌트, 매니페스트)
docker swarm - 다수의 호스트(manger, worker), 여러종류의 컨테이너오케스트레이션 - 여러개의 컨테이너를 관리하는 기술(스케일링, 헬스체크, 트래픽제어=배포)쿠버네티스컨테이너 오케스트레이션 툴, CNCF(Cloud Native Computing Foundation)의 오픈소스 컨테이너 오케스트레이션 플랫폼kubeadm을 통한 온프레미스 클러스터 구성1. docker 설치 - 이미지빌드를 하기 위한 도구로 사용하기 위해서도커 설치curl -fsSL https://get.docker.com -o get-docker.shchmod +x get-docker.sh./get-docker.sh도커 재시작 스크립트 스케쥴링sudo tee /root/check_ip_and_restart_docker..
2025.04.10