
LoadBalancer ● aws / gcp 같은 public cloud 에서는 기본적으로 쿠버네티스에서 loadbalancer 지원하지만, 로컬에 설치된 쿠버네티스는 오픈소스 프로젝트인 metal lb 를 설치해야 쿠버네티스에서 로드밸런서 타입을 사용 가능 ◎ nginx 10 개를 외부에서 접속 가능하도록 생성 ● deployment.yaml # template 밑은 pod 를 만드는 것 [vagrant@ms backup]$ cat deployment.yml apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 10 selector: matchLabels: app: nginx minRead..

● 어플리케이션 배포시 주로 디플로이먼트 형태로 배포 및 관리 >> deployment 가 replicaset 을 만들고 관리를 한다 # deployment object 가 relicaset object 를 대신한다 [ rolling update / rollback 지원 ] >> 자동으로 관리가 되기 때문에 사용자가 직접 관리하면 안된다 https://kubernetes.io/ko/docs/concepts/workloads/controllers/deployment/ 디플로이먼트 디플로이먼트(Deployment) 는 파드와 레플리카셋(ReplicaSet)에 대한 선언적 업데이트를 제공한다. 디플로이먼트에서 의도하는 상태 를 설명하고, 디플로이먼트 컨트롤러(Controller)는 현재 상태에서 의 kuber..

● resource - 볼륨 / 오브젝트 / 컨트롤러 ● 오브젝트 - 클러스트에 바라는 것 ● 컨트롤러 - 오브젝트가 유지되게 하는 것 오브젝트 순서 : cluster - node - namespace - repicaset - pod ● ns.yml [vagrant@ms work]$ cat ns.yml apiVersion: v1 kind: Namespace metadata: name: myns ● ns.yml 에 있는 namespace 를 찾아서 삭제해준다 >> 파일 안에 있는 리소스를 모두 찾아서 삭제 [vagrant@ms work]$ kubectl delete -f ns.yml namespace "myns" deleted # resource = 오브젝트 / 컨트롤러 등 kubectl api-resou..

▶ client 확인사항 >> kubelet / containerd / kube-proxy 3가지 ○ iptables 체크 [ 복잡하다 / kube-proxy 가 자동으로 관리를 해준다 ] [vagrant@wk2 ~]$ sudo iptables -t nat -L -n ● wide 로 가로로 자세하게 확인하여 잘 작동되는지 확인 [vagrant@ms ~]$ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES apache-replica-2fc6d 1/1 Running 1 (9h ago) 15h 10.244.1.11 wk1.example.com apache-replica-8qs4p 1/1 Ru..

▶ 레플리카셋 ▷ 파드 집합의 실행을 안정적으로 유지하는 것 ● 실습 진행 >> 이전의 쓰던 걸 모두 삭제할 때 사용한다 ○ ns 꼭 확인하고 써야한다 kubectl delete all --all --namespace myns ○ 하지만 모두 지워진 건 아니다 >> 기본으로 쓰고 있는 것이 있다 [vagrant@ms work]$ kubectl get sa NAME SECRETS AGE default 0 111m ● replica.yml 파일 생성 >> kubectl api-resources 에서 참조하면서 yaml 파일 생성한다 kubectl api-resources | grep ReplicaSet >> template 은 pod 를 찍어낸다고 생각 >> pod 정보를 적는다 # apps 는 그룹명처럼 ..

○ yaml 파일 생성하기 전에 편리한 설정 확인 [vagrant@ms work]$ cat $HOME/.vimrc autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab autoindent ○ pod version 확인 [vagrant@ms ~]$ kubectl api-resources | grep -i -w pod pods po v1 true Pod ○ kind 는 대문자로 등록되어 있다 >> yaml 에는 kind 로 적었다 [vagrant@ms ~]$ kubectl api-resources | head -n 1 NAME SHORTNAMES APIVERSION NAMESPACED KIND ● apache.yml 파일 생성 # kubernetes 는 syn..
● containerd : runc 를 생성하고 제어 ● docker engine : 도커 이미지를 관리하고 컨테이너 실행 ● 쿠버네티스는 OCI 만 준수하면 다양하게 사용할 수 있다 ● CRI ( container runtime interface ) # 쿠버네티스 버전이 올라가면서 docker 가 빠졌다 ( 도커가 CRI 를 준수 안됨 ) # 컨테이너d 내부에서도 버전이 바뀌면서 더 단순화 되었다 # 쿠버네티스가 1.24 에서 1.29로 올라가면서 cri-dockerd 를 개발했다 ( cri-dockerd는 CRI 준수 ) # 도커의 생태환경이 podman 보다 더 낫기 때문에 docker 를 다시 쓸 수 있게 됐다 ## podman : docker 대체할 수 있고 컨테이너 실행 관리 가능 ● 쿠버네티..

● vagrant 는 kubernetes-admin 이므로, root 는 불가능 ( root 도 설정하면 가능 하다 ) [vagrant@ms ~]$ kubectl config view apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://192.168.98.10:6443 name: kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preference..
● Ready 상태라고 해서 끝이 아닌, 더 확인해 봐야 한다 [vagrant@ms ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ms.example.com Ready control-plane 41m v1.29.2 wk1.example.com Ready 40m v1.29.2 wk2.example.com Ready 40m v1.29.2 ● pods 확인을 해봐야 한다 >> kube-system 안에 있는 pods 들이 모두 Running 이 되어야 정상 작동한다 [vagrant@ms ~]$ kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE coredns-76f75df574-dnn6l 1/1 Runn..

▩ kubectl 이 다운로드가 안되었다 [vagrant@ms ~]$ sudo find / -name kubectl [vagrant@ms ~]$ ▷install_cluster.sh 에서 kubernetes.repo 부분이 작동이 안된듯 하다 더보기 ### bash script for install kubernetes cluster #Set the time zone to local time and set the exact time timedatectl set-timezone Asia/Seoul yum install -y yum-utils modprobe overlay modprobe br_netfilter yum install -y iproute-tc cat 불가능 ▶ repo 가 바뀌었다 ( 최신버전 )..