전체 글 139

쿠버네티스 완벽 가이드 2장 : 쿠버네티스 특징 간단히 알아보기

쿠버네티스란? 컨테이너화된 애플리케이션 배포, 확장 등을 자동화하여 관리하기 위한 플랫폼 비슷한 컨테이너 오케스트레이션 엔진에는 docker swarm, Apache Mesos 등이 있지만, 쿠버네티스가 사실상 표준적으로 많이 쓰인다. 쿠버네티스에서 사용가능한 컨테이너 런타임은 Docker, Containerd, cri-o 등이 있다. 쿠버네티스를 통해 할 수 있는 것들 1. 선언적 코드를 사용한 관리(IaC) YAML 또는 JSON 형식으로 작성한 선언적 코드(menifest)를 통해 배포하는 컨테이너로 주변 리소스를 관리 -> IaC(Infrastructure as Code) 구현 apiVersion: apps/v1 kind: Deployment metadata: labels: app: sample ..

k8s 2023.02.02

쿠버네티스 완벽 가이드 1장 : Docker

Docker란? 컨톄이너를 실행하기 위한 실행 환경(컨테이너 런타임) 및 툴킷이다. 쿠버네티스의 경우 도커 이외의 컨테이너 런타임도 지원 Docker Container란? 도커 이미지를 기반으로 실행되는 프로세스 장점 1. 이식성이 높다. 도커 이미지 -> 환경의 영향을 받지 않고 다양한 환경에서 컨테이너를 기동 가능 BORA(Build Once Run Anywhere) 콘셉트 장점 2. 가상머신에 비해 가볍다. '가상머신에 비해 가볍다.' , '시작과 중지가 빠르다.' 등의 장점이 있다. 가상머신 -> 하이퍼 바이저를 이용하여 게스트 OS를 동작시킴 도커 컨테이너 -> 호스트 머신의 커널을 이용하면서 네임스페이스 분리와 cgroups를 이요한 제어를 통해 독립적은 OS와 같은 환경을 만듦 따라서 게스트..

k8s 2023.01.19

Kubernetes Resource Summary (2)

1. Service Service 정의 Pod에서 실행되고 있는 어플리케이션을 네트워크에 노출시키기 위한 리소스 Kubernetes 리소스들이 어플리케이션과 또는 다른 외부 어플리케이션이나 사용자가 어플리케이션에 연결할 수 있도록 하는 리소스 Pod는 쿠버네티스에서 어플리케이션을 구동중인 상태를 유지하기 위한 일회성 리소스로써 언제든 Pod가 재생성되어 IP주소가 변경될 수 있기 때문에 고정적인 IP를 가지는 Service 리소스를 사용하여 클러스터 내/외부와 어플리케이션간에 네트워크 통신이 가능하도록 한다. Service 에서 반드시 정의되어야 할 포트 targetPort : Pod의 어플리케이션쪽에서 열려있는 포트를 의미(파드의 인바운드), Service로 들어온 트래픽은 어플리케이션이 동작중인 파드..

k8s 2022.10.25

Kubernetes Resource Summary (1)

1) Pod - 쿠버네티스에서 생성하고 관리할 수 있는 가장 작은 배포 단위 - 한 개 이상의 컨테이너 그룹으로, 공유 스토리지와 네트워크 자원을 포함하여 가지고 있다. - Recreation : Pod에 문제가 발생할 경우, 쿠버네티스 컨트롤러에 의해 재성성되는 특징(Controller의 Auto Healing) - Stateless : Pod의 이름, IP 등의 상태가 일정하지 않고 재생성시 변하게 되는 특징 2) Replicaset - 정의된 Pod 개수에 대한 가용성을 보증하는 리소스 - Replicaset에 의해 생성된 Pod의 집합이 항상 안정적으로 실행되도록 유지하는 리소스 다음은 Replicaset 예시 yaml 이다. apiVersion: apps/v1 kind: ReplicaSet me..

k8s 2022.10.24

CKA 준비 (30) Network Policy

https://www.youtube.com/watch?v=hvhqrzoTfIY&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=35 이론) * Network policy 란? - Pod에 대한 접근제어 방화벽 역할 - 특정 pod에 들어올 수 있는 Inbound traffic 과 Pod에서 나가는 Outbound traffic을 제한할 수 있다. 문제) Create a new NetworkPolicy named allow-port-from-namespace in the existing namespace devops. Ensure that the new NetworkPolicy allows Pods in namespace migops to connect to port 80..

k8s 2022.09.25

CKA 준비 (29) Kube-DNS

다음 강의 영상을 참고하였습니다. https://www.youtube.com/watch?v=foZaiibzFZ4&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=34 이론) Core DNS - worker node 에서 어플리케이션 디플로이먼트에 의해 파드 2개가 동작중일 때 각각의 Pod는 IP 주로를 가지고 있다. - Service를 생성하여 ClusterIP에 각각 파드의 IP 주소(endpoint)를 묶어줄 수 있다. - Service ClusterIP는 개별적으로 IP주소가 할당된다. - Core DNS 는 생성한 Service의 이름과 ClusterIP의 IP 주소 맵핑 정보를 가지고 있게된다. - Core DNS 기본적으로 이중화 되어있다. - Service..

k8s 2022.08.30

CKA 준비 (28) ServiceAccount Cluster Role binding

이 게시물은 아래 강의를 참고 하였습니다. 참고 강의 https://www.youtube.com/watch?v=KdATmTulf7s&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=1 문제) - Create a new ClusterRole named deployment-clusterrole, which only allows to create the following resource types: Deployment StatefulSet DaemonSet - Create a new ServiceAccount named cicd-token in the existing in the existing namespace apps. - Bind the new Cluster Role d..

k8s 2022.08.17

CKA 준비 (27) ServiceAccount Role binding

이 게시물은 아래 강의를 참고 하였습니다. 참고 강의 https://www.youtube.com/watch?v=KdATmTulf7s&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=1 이론) - 모든 동작중인 컨테이너에는 ServiceAccount가 부여되어있다. - 기본적으로는 default 계정을 사용한다. - 주로 모니터링 컨테이너 또는 관리 컨테이너에 제한된 권한을 부여할 때 사용한다. 1) ServiceAccount 를 생성한다. 2) pod를 생성할 때 생성한 ServiceAccount 를 부여한다. 3) Role을 생성한다.(권한 설정) 4) Rolebinding을 한다. 문제) Cluster: kubectl config use-context k8s Crea..

k8s 2022.08.17

CKA 준비 (26) User Cluster Role Binding

이 게시물은 아래 강의를 참고 하였습니다. 참고 강의 https://www.youtube.com/watch?v=KdATmTulf7s&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=1 이론) Role -> 특정 namespace에서만 작업할 수 있도록 제한된 권한 부여 (namespace 를 지정하지 않을 경우 default namespace에서만 해당 role 이 부여된다.) ClusterRole - 클러스터 단위로 Role 을 설정한다. - 설정하게 되면 클러스터내의 namespace에 대해 Role 이 설정되어 권한을 부여 받는다. 문제) Create a new ClusterRole named app-clusterrole which only allows to get..

k8s 2022.08.01

CKA 준비 (25) User Role Binding

이 게시물은 아래 강의를 참고 하였습니다. 참고 강의 https://www.youtube.com/watch?v=KdATmTulf7s&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=1 이론) - 쿠버네티스에서 모든 리소스의 접근은 API를 통해서 진행된다. - 허가받은 유저의 요청에 대해서만 실행을 해주게 된다. -> 인증이 필요함 -> 쿠버네티스 계정이 따로 존재 - 인증서를 가지고 쿠버네티스 명령어를 요청하게 된다. - 유저마다 할당된 권한이 존재한다. - Service Account 는 특정 파드가 쿠버네티스 클러스터나 파드의 정보를 요청할 때, 즉 파드가 kubectl 명령어를 실행할 때 사용하게 된다. - Role base 의 RBAC을 사용한다. 사전 준비) ..

k8s 2022.07.26