Kubernetes

Kubernetes (kubectl을 사용해 POD 만들기)

law and security 2024. 9. 26. 13:15

 

 

kubectl을 사용해 POD 만들기

 

 

 

< yaml 파일을 사용해 POD만들기> - 수동으로 파드 생성

 

[root@k8smaster ~]# cd ~/lab/03
[root@k8smaster 03]# kubectl create -f guestbook-manual.yaml

 

 

 

 

 [root@k8smaster 03]# kubectl get pods
 [root@k8smaster 03]# kubectl get rs

 

 

< 실행중인 POD전체의 정의검색>

 

 

생성된 pod의 내용을 볼 수 있다. 

 

 

# kubectl get po guestbook-manual -o yaml
 # kubectl get po guestbook-manual -o json

 

 

(p.47) 그림 설명    - k8s.pdf

 

POD를 기준으로 쿠버네티스의 여러 컴포넌트들이 어떻게 상호 작용하는지에 대한 설명 그림 

 

1. pod : 쿠버네티스의 최소 배포 단위  / 컨테이너를 가지고 있으며 2개이상의 컨테이너도 가능.

 

2. pod generator : 파드생성에 관여하는 컴포넌트들 

                              1)  deploy : deployment(배포). 자동 롤백 , 업데이트 기능 

                              2)  rs : ReplicaSet. 파드의 복제 개수를 보장.

                              3)  rc : ReplicationController. 파드 복제(구형) 

                              4)  sts: StatefulSet . 상태가 있는 파드. 영속적이니 스토리지를 가진 파드 ( ex. 데이터베이스 )

                              5) ds : DaemonSet. 각 노드마다 하나의 pod가 실행되도록 보장

                              6) job : 단기적으로 실행되는 작업에 대한 관리. 작업 완료 -> pod종료 

                              7) cronjob: 주기적으로 실행되는 작업을 스케쥴링하고 관리함.

                              8) hpa: Horizontal Pod Autoscaler. 파드의 수를 자동 조정

 

3. Configuration

  pod에 대한 설정 제공

1) secret: 비밀번호, API 키, 토큰 등 관리 

2) cm: ConfigMap. 환경설정파일. 명령행 매개변수 등과 같은 암호화가 필요없는 정보를 제공 

 

4. Network Exposition

: 외부 네트워크와 pod간의 통신 설정 

1) svc: Service. ip단위의 NAT. 외부로 부터 들어오는 요청을 가상네트워크 속에 존재하는 파드로 분기하는 것 

    ->  endpoint(파드의 ip주소 + 포트) 를 제공

2) ing: ingress. URI 단위의 서비스 . HTTP나 HTTPS의 라우팅을 통해 미리 생성된 여러 서비스들로 분기시키는 역할

 

5. Resoure Mgt : 시스템 자원 관리

 limits: cpu, 메모리 같은 리소스 자원의 상한선을 제한

quota: 네임스페이스의 리소스 사용 총량 제한.

 

 

6. Storage: 저장소 관리 

--> 쿠버네티스에서 영구적 스토리지 볼륨 관리

pv: PersisitentVolum  클러스터에서 사용할 수 있는 스토리지 리소스를 정의함 

pvc :  PersisitentVolumClaim  스토리지 요청 

sc : StorageClass 스토리지 유형 정의. 스토리지의 동적 할당을 처리

 

7. IAM(Identitiy and Access Management)

  : 접근 권한 정책 생성 및 사용자의 접근 권한 관리 

role : ( 네임스페이스 내) 권한 정의 

ClusterRoleBinding 클러스터 전체에서 권한 부여 . 

rb: RoleBinding. 특정 네임스페이스에 대한 권한 부여 

cr: ClusterRole 클러스터 수준의 리소스 권한 정의